Saltar para o conteúdo

Empacotamento Debian básico

Fonte: Wikiversidade

Os pacotes são as peças que formam todas as distribuições Linux e podem conter programas, bibliotecas de sistema ou mesmo coisas como papéis de parede e ícones. Alguns pacotes dependem de outros (um certo programa pode precisar de uma biblioteca que faz parte de outro pacote por exemplo), as chamadas dependências. Outros pacotes recomendam a instalação de pacotes adicionais para ampliar as funcionalidades de um pacote instalado.

Os pacotes existentes nas distribuições são criados por colaboradores. Neste tutorial abordaremos apenas o empacotamento com extensão .deb estes que são os utilizados para a distribuição de software nas distribuições Debian.

Configurando ambiente para empacotamento

[editar | editar código-fonte]

Para empacotarmos qualquer software devemos saber quais são suas dependências. A melhor forma para esse procedimento é criar um ambiente "limpo" ou uma instalação Debian nova. Um detalhe importante neste caso é que devemos empacotar nosso software na distribuição conhecida com "unstable". A política de atualizações do Debian permite que novos pacotes sejam lançados apenas na distribuição instável. Após alguns meses de avaliação o pacote é passado para a distribuição de testes e só depois para a versão estável do Debian.

Para a criação do ambiente Debian ou também chamado de jaula podemos criar uma máquina virtual ou usar usar a ferramenta chamada "debootstrap" [1] . Esta ferramenta cria uma nova instalação do Debian em um subdiretório de uma distribuição Debian já instalada.

Para configurar uma jaula basta utilizar os seguintes comandos:

apt-get install debootstrap
debootstrap sid /jaula­sid http://ftp.br.debian.org/debian
chroot /jaula­sid
echo proc /proc proc defaults 0 0 >> /etc/fstab
mount /proc

Configurando o bashrc

[editar | editar código-fonte]

Após entrar na instalação Debina por meio do chroot ,podemos adicionar algumas configurações no bashrc para facilitar o trabalho e empacotamento. Este arquivo define alguns comandos a serem executados após a criação de uma sessão no terminal e pode ser encontrado em /etc/bash.bashrc. Segue a configuração do bashrc[2]:

alias ls='ls --color=auto'
alias tree='tree -aC'
alias debuildsa='dpkg-buildpackage -sa -ksua_chave_gpg'
alias uscan='uscan --verbose --report'
alias apt-cache='LANG=C apt-cache'
alias man='LANG=C man'
export DEBFULLNAME="seu_nome_completo_sem_acentos/cedilha"
export DEBEMAIL="seu_e-mail"
export EDITOR=vim
export QUILT_PATCHES=debian/patches
export QUILT_DIFF_ARGS="--no-timestamps --no-index -pab"
export QUILT_REFRESH_ARGS="--no-timestamps --no-index -pab"
export PS1='JAULA-SID-\u@\h:\w\$ '

Estes comandos configuram alguns parâmetros para as configurações de pacotes, como o e-mail do desenvolvedor e o nome do mesmo. Além disso define parâmetros para o desenvolvimento de patches, tópico que não será abordado neste tutorial. Para que as alterações sejam concluídas, devemos executar o comando:

source /etc/bash.bashrc

Pacotes necessários

[editar | editar código-fonte]

Apenas dois pacotes são necessários para a construção de pacotes Debian. O primeiro deles é o build-essential, este pacote tem dependências básicas assumidas na construção de pacotes, além de ferramentas para a construção dos mesmos, como o dpkg-dev. Outro pacote necessário é o devscripts, que possui muitos scripts importantes para o empacotamento.[3]

Abaixo um comando para instalação mais completa, com ferramentas necessárias para edição de texto, construção de patches e teste de pacotes. Após a instalação uma reconfiguração do locales para internacionalização e a limpeza dos arquivos temporários de instalação.

apt-get install blhc devscripts dh-make dput-ng locales vim quilt renameutils spell tree build-essential
dpkg-reconfigure locales tzdata
apt-get clean

Construindo pacotes

[editar | editar código-fonte]

Para a construção de pacotes devemos entender o fluxo de trabalho geral:

  • WEB/UPSTREAM/MIRROR -----> SOURCE -----> BINÁRIO
  1. O primeiro passo é obter o pacote do upstream ou de um mirror Debian .
  2. Após a obtenção do pacote e descompactação do mesmo, devemos nos certificar que ele esta no formato nome_do_pacote-versão.tar.{bz2,gz,xz} .
  3. Gerar o diretório debian com o dh_make:
    dh_make -f ../<fonte>.tar.gz -c <licença>
    
  4. Verificar licenças dos arquivos.
  5. Modificar os arquivos necessários para o empacotamento. Os principais estão listados abaixo:
    • control – meta-dados acerca do pacote (dependências, etc)
    • rules – especifica como compilar o pacote
    • copyright – informação de copyright para o pacote
    • changelog – história do pacote Debian
  6. Construir pacote e verificar os erros do lintian:
    debuild -us -uc
    
  1. https://wiki.debian.org/Debootstrap
  2. http://eriberto.pro.br/wiki/index.php?title=Algumas_coisas_sobre_Debian...
  3. https://www.debian.org/doc/manuals/packaging-tutorial/packaging-tutorial.pt.pdf