Criar pacotes .deb na unha! 19/Mar/2008
Posted by alfakini in debian.Tags: .deb
trackback
Criar arquivos .deb é muito simples. Basta você criar uma pasta para o pacote, como por exemplo:
$ mkdir /tmp/meupacote
Esta será a pasta raiz dos arquivos do pacote. Dentro dessa pasta você deve criar a estrutura de diretórios do sistema onde os arquivos serão instalados. Por exemplo, se você quiser instalar um ícone em /usr/share/pixmaps e um shell script em /sbin devem ser criadas as seguintes pastas:
$ /tmp/meupacote/usr/share/pixmaps/
e
$ /tmp/meupacote/sbin/
Dentro dessas pastas devem ser colocados os arquivos que você deseja instalar. Depois disso, deve-se criar uma pasta chamada DEBIAN e dentro dela deve ser adicionado o arquivo control. Esse arquivo é responsável pelo controle da versão do pacote e por verificar as dependências dele.
$ /meupacote/DEBIAN/control
O arquivo control deve conter as seguintes linhas:
Package: nome_do_pacote
Priority: optional
Version: versão_do_pacote
Section: seção_onde_o_pacote_melhor_se_enquadra
Architecture: arquitetura_do_sistema
Maintainer: Nome_do_mantenedor
Essential: pacotes_essenciais
Depends: lista_de_dependências
Pre-Depends: para_casos_especiais
Recommends: pacotes_recomendados_mas_não_criticamente_necessários
Suggests: pacotes_sugeridos
Installed-Size: tamanho_da_instalação
Conflicts: lista_de_pacotes_que_geram_conflito_com_este
Replaces: pacotes_que_criam_conflitos_e_precisam_ser_removidos
Provides: nome
Description: descrição_do_pacote
O campo Priority identifica se o pacote é critico para o funcionamento do sistema. Em Section deve ser colocado o tipo do programa, por exemplo: Editor, Web, Sound, Graphic, etc. Em Architecture vai a arquitetura da máquina para qual o programa foi projetado, coloca-se all para todas as arquiteturas. Essential, Depends, Pre-Depends, Recommends, Suggests deve-se adicionar os pacotes dos quais o programa depende, pacotes sugeridos ou recomendados. Caso não haja dependências, deixe esses campos em branco. Em Conflicts devem ser adicionados os pacotem com os quais o programa não funciona corretamente e em Replaces os pacotes que devem ser removidos para o bom funcionamento do programa. Provide é o nome do grupo que está disponibilizando o pacote. Os demais campos não necessitam de explicação.
Um exemplo do arquivo:
Package: meupacote
Version: 1.0
Section: misc
Priority: optional
Architecture: i386
Essential: no
Depends: libstdc++2.10-glibc2.2, mozilla-firefox (>= 1.5)
Pre-Depends: mozilla-firefox
Recommends: mozilla
Suggests: mozilla-firefox-locate-pt-br
Installed-Size: 512
Maintainer: Meu nome
Conflicts: iceweasel
Replaces: iceweasel
Provides: mozilla
Description: Meu primeiro pacote .deb.
1.2 ADICIONANDO SCRIPTS
Para adicionar um shell script a sua instalação basta criar um arquivo chamado postinst dentro da pasta DEBIAN. Este arquivo será executado após a instalação e pode ser utilizado para a configuração pós-instalação.
$ /tmp/meupacote/DEBIAN/postinst
Para gerar o pacote basta digitar como root:
# dpkg-deb -b /tmp/meupacote/ /tmp/meupacote.deb
ou
# dpkg-deb –build /tmp/meupacote/ /tmp/meupacote.deb
Para instalar o pacote
# dpkg -i meupacote.deb
Olá!
Primeiramente, parabéns pelo artigo. muito interessante, está me ajudando a iniciar neste assunto de criação de pacotes.
Faltou você indicar que o arquivo postinst precisa de permissão de execução:
chmod +x /tmp/meupacote/DEBIAN/postinst