Допустим, я создаю приложение для пакета DEB, который имеет рекомендованную зависимость от пакета, назовем его package1.
Таким образом, пакет1, если он установлен, может предоставить дополнительную функциональность моей программе, но не имеет прямого отношения к основным функциям моей программы (поэтому это рекомендуемый пакет)
Таким образом, пользователь изначально не выбирает установку рекомендованного пакета (в Ubuntu Software Center вы можете выбрать, отметив / убрав галочку для установки или не устанавливать рекомендуемые пакеты), но в будущем, при использовании моего приложения, он запрашивает соответствующая функциональность.
Как лучше всего сказать ему, что для работы этой функции необходимо установить дополнительный пакет? Какую программу я могу использовать, чтобы установить этот пакет прямо из моей программы с диалоговым окном, показывающим, как идет процесс установки?
Я хочу сделать это по умолчанию и, желательно, независимо от среды рабочего стола Linux.
Короче говоря, я хочу, чтобы способ установки пакета из моей программы не открывался Ubuntu Software Center (через URL apt: //) и не выполнялся в фоновом режиме.
В идеале это должен быть диалог, подобный тому, который используется диспетчером обновлений (или, для тех, которые помнят, из диспетчера пакетов Synaptic).
PS: Я бы предпочел что-то, что могло бы быть реализовано с использованием C ++!
источник
Вы можете взять пример проигрывателя тотема, когда он предлагает пользователю установить отсутствующие кодеки, или когда вы открываете параметры общего доступа к каталогу в nautilus с помощью щелчка правой кнопкой мыши, он предлагает установить samba.
Я думаю, что они используют
sessioninstaller
пакет, чтобы сделать это. Смотритеman session-installer
и https://launchpad.net/sessioninstallerВы также можете использовать команду
xdg-open apt://package
: она откроет менеджер пакетов по умолчанию с возможностью установки вашего пакета (центр программного обеспечения Ubuntu в последних выпусках).источник
Это старый вопрос, но я нашел ответ, который есть
apturl
.Это работает следующим образом:
apturl apt:packagename
и это именно то, что мне нужно, и что использует наутилус!Важно отметить, что он предустановлен на многих дистрибутивах Linux :)
источник