Digamos que estou construindo um aplicativo para um pacote DEB, que tem como dependência recomendada um pacote, vamos chamá-lo de pacote1.
Portanto, o package1, se instalado, pode fornecer funcionalidade extra ao meu programa, mas não diretamente relacionado à funcionalidade básica do meu programa (é por isso que é um pacote recomendado)
Portanto, o usuário não escolhe inicialmente instalar o pacote recomendado (no Ubuntu Software Center, você pode escolher marcando / desmarcando para instalar ou não instalar os pacotes recomendados), mas no futuro, enquanto estiver usando meu aplicativo, ele solicita a funcionalidade correspondente.
Qual é a melhor maneira de dizer a ele que um pacote extra deve ser instalado para que essa funcionalidade funcione? Qual programa posso usar para instalar este pacote diretamente do meu programa com uma caixa de diálogo indicando como está o processo de instalação?
Quero fazer isso da maneira padrão e, de preferência, da maneira que seja independente do Linux Desktop Environment.
Em resumo, eu quero uma maneira de instalar um pacote do meu programa nem abrindo o Ubuntu Software Center (via uma URL apt: //) nem fazendo isso em segundo plano.
Idealmente, seria uma caixa de diálogo como a que é usada pelo Update Manager (ou, para aqueles que se lembram, pelo Synaptic Package Manager).
PS: Eu preferiria algo que pudesse ser implementado usando C ++!
fonte
Você pode dar um exemplo no totem media player quando solicita que o usuário instale codecs ausentes ou quando você abre as opções de compartilhamento de um diretório no nautilus com o botão direito, ele solicita a instalação do samba.
Eu acho que eles usam o
sessioninstaller
pacote para fazer isso. Consulteman session-installer
e https://launchpad.net/sessioninstallerVocê também pode usar o comando
xdg-open apt://package
: ele abrirá o gerenciador de pacotes padrão com a possibilidade de instalar o seu pacote (ubuntu software center em versões recentes).fonte
Esta é uma pergunta antiga, mas eu encontrei a resposta, que é
apturl
.Funciona da seguinte maneira:
apturl apt:packagename
e é exatamente o que eu preciso e o que o nautilus usa!É importante ressaltar que ele está disponível pré-instalado em muitas distribuições linux :)
fonte