Вот в чем вопрос!
Хорошо, если не считать глупостей, я действительно вынужден принять трудное решение. Мое приложение написано на C ++ и позволяет другим сценариям вызывать методы через XML-RPC. Одним из таких сценариев является расширение Nautilus, написанное на Python. Расширение упаковывается вместе с остальной частью приложения и при установке копируется в соответствующее место (/usr/share/nautilus-python/extensions
).
Теперь проблема в том, что расширение Nautilus требует, чтобы для работы был установлен пакет python-nautilus . Поэтому у меня есть три варианта:
Сделать пакет python-nautilus
зависимым. Эта опция гарантирует, что любой, кто установит мой пакет, сможет использовать расширение Nautilus. Однако эта опция не будет привлекательной для пользователей XFCE или KDE - тонна зависимостей python-nautilus
будет установлена на их машинах и займет много места - даже если они никогда не используют Nautilus.
Поместите пакет python-nautilus
в поле suggests:
или recommends:
. Эта опция предоставляет конечному пользователю способ избежать установки пакета python-nautilus
(предоставив аргумент --no-install-suggests
или --no-install-recommends
для apt-get
). Однако это не будет работать, когда пользователь устанавливает пакет в Центре программного обеспечения. (Я всегда путаюсь с тем, какие из этих двух полей установлены по умолчанию.)
Запросить пользователя, когда приложение установлено или впервые запущено. Эта опция более сложна, чем другие, но предлагает лучший компромисс между тем, чтобы пользователю было легко установить python-nautilus
(не вдаваясь в технические пояснения), и не устанавливая ее, когда пользователь не нуждается в ней (или хочет ее) , Я думаю, что лучший способ реализовать это - это простая подсказка, которая вызывает apt-get
, если пользователь хочет установить пакет.
Не устанавливать пакет вообще. Эта опция гарантирует, что никто не установил python-nautilus
на свою машину, если он этого не хочет. Однако это также означает, что мое расширение Nautilus просто не будет работать на компьютере конечного пользователя, если они не установят пакет вручную.
Какой из этих вариантов кажется лучшим выбором? Я пропустил все плюсы и минусы для каждого из вариантов?
Зависит от того, насколько важно расширение Nautilus для вашего приложения:
python-nautilus
зависимостью Recommends
Suggests
Вместо использования Suggests
, я бы предпочел сделайте расширение своим собственным пакетом. Таким образом, пользователю проще узнать, что ему нужно установить, если он хочет использовать расширение.
тонна зависимостей python-nautilus будет установлена на их машины
blockquote>Вы знаете, я подумал: «Давайте посмотрим, является ли это Африканская или европейская тонна "и ...
python-nautilus Depends: libc6 Depends: libglib2.0-0 Depends: libgtk-3-0 Depends: libnautilus-extension1a Depends: libpython2.7 Depends: python-gi Depends: gir1.2-nautilus-3.0
В XFCE / Xubuntu и LXDE / Lubuntu :
The following extra packages will be installed: gir1.2-nautilus-3.0 The following NEW packages will be installed: gir1.2-nautilus-3.0 python-nautilus 0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded. Need to get 25.2 kB of archives. After this operation, 410 kB of additional disk space will be used.В [ 1120] KDE / Kubuntu :
The following extra packages will be installed: gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-gtk-3.0 gir1.2-nautilus-3.0 gir1.2-pango-1.0 libgtk-3-0 libgtk-3-bin libgtk-3-common libnautilus-extension1a Suggested packages: librsvg2-common gvfs The following NEW packages will be installed: gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-gtk-3.0 gir1.2-nautilus-3.0 gir1.2-pango-1.0 libgtk-3-0 libgtk-3-bin libgtk-3-common libnautilus-extension1a python-nautilus 0 upgraded, 11 newly installed, 0 to remove and 2 not upgraded. Need to get 2,835 kB of archives. After this operation, 8,672 kB of additional disk space will be used.Итак, почти ничего для XFCE / LXDE и 8,5 МБ - не конец света - для KDE .
Я рекомендую сделать
python-nautilus
a ... рекомендует. Который будет установлен какapt-get
/ Synaptic / Software Center в качестве зависимости, если не указано иное.Для тех немногих, кто отказывается использовать
apt-get
, но знает разницу между рекомендациями и зависимостями и не хочет рекомендовать, свойствоAPT::Install-Recommends=0
будет поддерживаться как Synaptic, так и Software Center. Свойство может быть установлено графически из настроек Synaptic или вручную через/etc/apt/apt.conf.d/
.