Passo 4 - O arquivo de controle chamado "control" é de extrema importância para cada pacote deb, pois este traz informações como: nome do pacote, versão do pacote, nome do mantenedor, dependências relacionadas, descrições sobre a finalidade, entre muitas outras características.
Devido à grande importância deste arquivo, vou descrever rapidamente abaixo alguns dos campos que você poderá encontrar ao abrí-lo.
Package: (Obrigatório) - Este campo descreve o nome do pacote binário. O nome do pacote deve ser composto somente por letras minúsculas (a-z), dígitos (0-9), sinais de mais (+) e menos (-), e pontos (.). Deve ser formado por pelo menos dois caracteres e deve começar com um caráter alfanumérico.
Source: Especifica o nome do pacote fonte, mas este campo pode ser omitido de um arquivo de controle do pacote quando o pacote da fonte tem o mesmo nome e versão que o pacote binário.
Version: (Obrigatório) - Neste campo você obrigatoriamente deverá inserir a versão do pacote o qual você esta criando.
Section: (Recomendado) - Este campo especifica uma área de aplicação em que o pacote foi classificado.
Architecture: (Obrigatório) - Especifica a lista arquitetura(s) para a qual, o pacote é destinado. Exemplo de arquiteturas:
Depends: Campo onde são declaradas todas as dependências necessárias para se fazer à instalação do pacote. O pacote não será configurado a menos que todos os pacotes alistados neste campo sejam configurados corretamente.
Installed-Size: Descreve a quantidade total de espaço em disco requerida para instalar o pacote nomeado. O espaço em disco é representado em kilobytes como número decimal simples.
Maintainer: (Obrigatório) - Contém o nome e/ou email do mantenedor do pacote.
Description: (Obrigatório) - Contém a descrição do pacote.
[2] Comentário enviado por tjpp em 08/08/2007 - 09:03h
?comentario=
No final da página 4 tem um erro: se o script-raf existir e for referenciado por outro pacote, ele não será gravado: o dpkg retornará erro, se não for usado o --force-overwrite (você teria que acrescentar o Replaces: no control).
Outro ponto importante é que você não tocou no problema de como explicitar as dependências. Eu achei o tutorial bem legal, mas pacotes criados com ele podem quebrar o sistema ou mesmo não funcionar (já que a dependência não foi instalada). O exemplo que você deu, exceto pelo que eu citei no primeiro parágrafo) vai funcionar, mas pacotes binários, ou para o X, podem dar problemas.
[3] Comentário enviado por tenchi em 08/08/2007 - 10:22h
Legal.
Uma dica para quem não quer criar toda a a árvore de diretórios na mão é o uso da opção DESTDIR= ou PREFIX=, nos programas que usam o autoconf e o cmake.
como em:
$ make install DESTDIR=/tmp/pacote
Se não funcionar, tente
$ make install PREFIX=/tmp/pacote
Fico com uma certa raiva quando nenhum destes funcionam, pois acho que não custa nada o desenvolvedor utilizar uma ferramenta padrão (autotools ou cmake) para facilitar o manuseio do código-fonte do seu programa. Aí tem uns que inventam e criam uns scripts que ninguém entende...
Boa dica mesmo. Usei o ubuntu durante uma época, e precisei muito de um tuto assim, mas não achei. O problema é que nem o próprio checkinstall, que cria um pacote um tanto quanto grosseiro, não é capaz de criar um pacote deb com todos os recursos, ou a maioria destes.
[12] Comentário enviado por Journeyman em 29/01/2009 - 16:57h
Muito boa.
Só um complemento que me foi muito útil.
Dentro da pasta DEBIAN da pra colocar, além do control mais alguns arquivos para função especificas
preinst - shell script para ser executado antes da cópia dos arquivos
postinst - shell script para ser executado DEPOIS da cópia dos arquivos
prerm - shell script para ser executado antes da remoção do pacote
postrm - shell script para ser executado DEPOIS da remoção do pacote
Todos tem que ter chmod +x (permissão de execução)
[16] Comentário enviado por brunojti em 23/09/2009 - 17:10h
Cara, ótimo tutorial.
Eu consegui fazer um .deb pro "DBDesigner" perfeitamente...
porém a instalação do DBDesigner exige que uma biblioteca seja instalada antes, e um arquivo precisa ser executado...
existe uma maneira em que eu consiga automatizar todo o processo pelo .deb?
[21] Comentário enviado por CotidianoLinux em 15/08/2010 - 16:49h
Sou um novato no mundo #Linux, estou usando o Ubuntu 10.04 e estava tentando criar um pacote .deb para um shell script que eu adaptei, o intuito dele é randomizar os papéis de parede. Estou usando .sh juntamente com zenity e estava querendo fazer um pequeno pacote de instalação para divulgar o script para a comunidade Linux. Achei muito bom o seu tutorial, deu pra entender como criar um pacote Debian facilmente. Vlw
[22] Comentário enviado por onjahyr em 07/12/2010 - 20:07h
Ressucitando o tópico, alguém saberia como faço para criar o link no menu do Gnome (Ubuntu 10.10) para, ao clicar, seja solicitado a senha de root e em seguida abrir meu programa, bem como um ícone para este link? Meu programa configura o Grub e é necessário executar como root.