Passo 6 - Depois de criado o diretório DEBIAN e o arquivo de controle necessário, podemos agora começar a criar dentro do diretório base (pacteste) a estrutura de diretório exatamente igual à que desejamos após a instalação do pacote.
Opaaa...!!!, Neste ponto podem surgir algumas dúvidas, mas basta entender a idéia principal que tudo ficará claro, veja:
Conforme mencionado no passo 1, o objetivo deste pacote ao ser instalado é colocar o arquivo script-raf, dentro do diretório /usr/lib/cups/filter.
Como devo proceder?
A resposta é simples, basta criar esta estrutura de diretório (/usr/lib/cups/filter) dentro do diretório base e colocar o arquivo desejado no local onde ele deverá ser copiado após a instalação.
Lembrando que o diretório base "representa" o diretório raiz (/) do sistema.
Na prática eu entraria no diretório base e criaria o diretório usr, dentro de usr eu criaria o lib, dentro de lib o cups, dentro cups o diretório filter, e finalmente dentro de filter eu colocaria o arquivo script-raf.
Ou simplesmente, entre no diretório base e digite o seguinte comando:
# mkdir -p usr/lib/cups/filter
OBS: Note que na frente do usr não tem o /.
No momento da instalação do pacote ele fará automaticamente a seguinte verificação partindo da raiz (/) do sistema:
Tem diretório usr na raiz (/)?
Se sim, então entre no diretório usr;
Senão, crie o diretório usr e entre;
Dentro de usr, tem o diretório lib?
Se sim, então entre no diretório lib;
Senão, crie o diretório lib e entre;
Dentro de lib, tem o diretório cups?
Se sim, então entre no diretório cups;
Senão, crie o diretório cups e entre;
Dentro de cups, tem o diretório filter?
Se sim, então entre no diretório filter;
Senão, crie o diretório filter e entre;
Dentro do diretório filter, tem o arquivo script-raf?
Se sim, sobrescreva o arquivo;
Senão, copie o arquivo script-raf para este diretório.
[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.