Criando um pacote DEB



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 DEBIANe 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: miscPriority: 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 pastaDEBIAN. 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

este arquivo deve ter permissão de execução para dar esta permissão digite como root:

chmod +x /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

5 comentários :

  1. Tem como criar o DEB do LibreOffice.

    ResponderExcluir
  2. mas a ideia é ele instalar automaticamente como a gente instala o chrome, quando faz o download do DEB.

    ResponderExcluir
  3. Dá pra automatizar sim a instalação, vc pode, por exemplo, baixar os arquivos do LibreOffice, criar toda a estrutura de um pacote DEB, por os DEBs de instalação baixados, em uma pasta, e criar um script postinst, como mostrado no post acima, neste script vocẽ deve por os comandos de instalação do DEB, seguindo a ordem de instalação proposta no próprio site do LibreOffice, dá pra fazer.
    Não sei porque os caras do LibreOffice mesmo não fazem isto, assim facilitaria.

    ResponderExcluir
  4. kkkk concordo contigo, até mesmo criei um script para automatizar essas coisas. Depois eu te passo pra vc me ajudar nesse script, pois ele não funciona no LE 4.0

    ResponderExcluir
  5. Certo, fique a vontade, caso queira enviar por e-mail: miguelsilva_25_@hotmail.com

    ResponderExcluir