Установите «рекомендуемый» пакет, когда пользователь запрашивает соответствующее действие

10

Предположим, что я создаю приложение для пакета DEB, который имеет в качестве рекомендуемой зависимости пакет, назовем его package1.

Таким образом, package1, если он установлен, может предоставить дополнительную функциональность моей программе, но не напрямую связан с базовой функциональностью моей программы (поэтому это рекомендуемый пакет)

Таким образом, пользователь не выбирает изначально для установки рекомендуемого пакета (в Ubuntu Software Center вы можете выбрать, пометив / отключив установку или не устанавливать рекомендуемые пакеты), но в будущем, используя мое приложение, он запрашивает соответствующую функциональность.

Каков наилучший способ сказать ему, что должен быть установлен дополнительный пакет, чтобы эта функциональность работала? Какую программу я могу использовать для установки этого пакета непосредственно из моей программы с диалогом, показывающим, как происходит процесс установки?

Я хочу сделать это с помощью способа по умолчанию и, предпочтительно, независимо от среды рабочего стола Linux.

Короче говоря, я хочу, чтобы установить пакет из моей программы, не открыв Ubuntu Software Center (через URL-адрес apt: //), ни делая это в фоновом режиме.

В идеале это будет диалог, подобный тому, который используется диспетчером обновлений (или для тех, кто помнит, из диспетчера пакетов Synaptic).

PS: Я бы предпочел что-то, что можно было бы реализовать с помощью C ++!

    
задан hytromo 11.08.2012 в 20:50
источник

3 ответа

1

Это старый вопрос, но я нашел ответ, который равен apturl .

Он работает следующим образом:

apturl apt:packagename , и это именно то, что мне нужно и что использует nautilus!

Важно отметить, что он доступен предварительно для многих дистрибутивов Linux:)

    
ответ дан hytromo 29.12.2012 в 22:51
источник
9

Если вы используете python, python-aptdaemon-gtk - это, вероятно, путь. Для хорошего примера, как это сделать, посмотрите на /usr/share/doc/python-aptdaemon.gtk3widgets/examples/gtk3-demo.py.gz

Вы получаете хорошие запросы на установку, например:

ВслучаеиспользованияC++вымоглибыиспользоватьинтерфейсD-BusAptDaemon,ноянезнаюниодногопримера,ивынеполучилибыбесплатныевиджеты.

APID-BusAptDaemonописанздесь: Ссылка

Я не могу найти много способов обучения C ++ DBus в Интернете, поэтому лучший вариант - это, вероятно, документация и примеры в libdbus-c ++ - doc .

    
ответ дан andrewsomething 15.08.2012 в 22:57
5

Вы можете взять пример на проигрывателе тотемов, когда он предложит пользователю установить отсутствующие кодеки или когда вы открываете параметры общего доступа к каталогу в nautilus с помощью щелчка правой кнопкой мыши, он предлагает установить samba.

Я думаю, что они используют пакет sessioninstaller для этого. См. man session-installer и Ссылка

Вы также можете использовать команду xdg-open apt://package : она откроет менеджер пакетов по умолчанию с возможностью установки вашего пакета (программный центр ubuntu в последних выпусках).

    
ответ дан Marc M 14.08.2012 в 09:26