jump to navigation

Criar pacotes .deb na unha! 19/Mar/2008

Posted by alfakini in debian.
Tags:
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

:)

Comentários»

1. Cássio Oliveira - 24/Nov/2008

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