[Ubuntu-BR] Construindo pacotes deb que instalem dependências e sejam manipuláveis pela interface gráfica
luciano de souza
luchyanus em gmail.com
Terça Outubro 29 11:33:01 UTC 2013
Caros,
O meu elevado número de perguntas é sinal de grande dinamismo no
aprendizado do Ubuntu e, do mesmo modo, grande entusiasmo pela
acessibilidade que se descortinou a partir do Ubuntu 13.04. Então, se
exceder-me em consultas, desculpem-me!
Gostaria de aprender a construir pacotes deb. Os primeiros resultados
foram muito bons.
A título de experiência, resolvi criar o pacote "myaudio.deb" que
instalaria uma porção de programas de áudio. então, fiz o seguinte:
1. Criei a pasta "myaudio";
2. Dentro dela, criei a pasta "DEBIAN";
3. Dentro da pasta "DEBIAN", criei o arquivo "control" com o seguinte conteúdo:
Package: myaudio
Priority: optional
Version: 1.0
Architecture: all
Maintainer: Luciano de Souza
Depends: ubuntu-restricted-extras, mplayer, lame, sox, banshee,
soundconvert, audacity, ffmpeg
Description: Instala ferramentas de áudio como Audacity, Soundconvert,
além de codecs para múltiplos formatos.
Então, voltei para a pasta que contém a pasta "myaudio" e digitei o
seguinte comando:
$ dpkg-deb -b myaudio
Sucesso absoluto. Foi gerado o pacote "myaudio.deb". Então, é hora de
instalá-lo:
$ sudo dpkg -i myaudio.deb
Eis o momento em que o sucesso ruiu. O dpkg informou que não
instalaria o pacote porque este dependia de ubuntu-restricted-extras,
mplayer, lame, sox, banshee,
soundconvert, audacity, ffmpeg, e nenhum destes pacotes estava instalado.
Fiz uma rápida pesquisa no google e concluí que este comportamento é
normal. De fato, o dpkg não resolve as dependências, isto é, instala o
próprio pacote se não houver nenhuma dependência, mas nada além disso.
Não há dúvidas de que esta é uma limitação extrema, visto que o único
motivo pelo qual queria criar o pacote "myaudio" era o fato de poder
instalar dependências.
Sim, se eu desenvolver algum programa, de certo, o que sei já é
suficiente para fazer um pacote deb para o meu programa, desde que
inclua no pacote todas as dependências de que necessita para sua
execução.
Mas a este ponto, questiono o porquê existe o campo "Dependes" se o
dpkg não providenciará a sua instalação prévia.
Talvez a resposta seja a de que o dpkg não resolve dependências, mas o
APT o faz. Se isso for verdade, então, o comando que deveria invocar
para instalar o meu pacote não seria "dpkg -i myaudio.deb", mas alguma
linha de comando do "apt-get". Tentei:
$ sudo apt-get install myaudio
Mesmo estando na pasta em que o deb se encontra, o APT tenta encontrar
o pacote em algum repositório.
Mas a pergunta que se poderia fazer é a seguinte: "Luciano, este seu
pacote 'myaudio' não faz nada, além de instalar dependências. Não há
um só arquivo que mova para algum diretório. Neste caso, não seria
melhor fazer um shellscript com o seguinte comando: 'apt-get install
ubuntu-restricted-extras, mplayer, lame, sox, banshee,
soundconvert, audacity, ffmpeg'".
Sim, esta é uma alternativa. Mas não é aquilo que pretendo. Gostaria
que o destinatário de meu pacote, em nenhum momento, interagisse com o
terminal. Se as dependências estiverem em um deb, quando clicar sobre
ele, estará diante da Central de Programas, mas a Central de
Programas, pelo que entendi, também não providenciará a instalação das
dependências.
Então, a minha pergunta é: como posso construir um pacote deb que
instale todas as dependências em que o usuário interaja apenas com a
interface gráfica, isto é, sem a necessidade de digitação de comandos?
Luciano
More information about the ubuntu-br
mailing list