Como construir um pacote TGZ do zero

Este artigo mostra como construir um pacote TGZ somente com as ferramentas básicas que vem com qualquer distribuição Linux. Você poderá tornar o seu programa ou script num pacote para Slackware fácil de ser distribuído e instalado.

[ Hits: 25.487 ]

Por: Perfil removido em 12/10/2005


Como fazer



1. Primeiramente, crie uma pasta que será a sua "área de trabalho". Isto é necessário, pois haverá uma hora em que você terá que compactar todo o conteúdo da pasta.

2. Crie uma sub-pasta chamada "install" (sem as aspas)

3. Nesta pasta, crie um arquivo chamado "slack-desc" (sem as aspas), que deve conter um texto com o seguinte formato:

    # HOW TO EDIT THIS FILE:
    # The "handy ruler" below makes it easier to edit a package description.  Line
    # up the first '|' above the ':' following the base package name, and the '|'
    # on the right side marks the last column you can put a character in.  You must
    # make exactly 11 lines for the formatting to be correct.  It's also
    # customary to leave one space after the ':'.

      
                        |-----handy-ruler------------------------------------------------------|
    <nome do programa>: <título do pacote> (<frase descritiva>)
    <nome do programa>: <em branco>
    <nome do programa>: <descrição>
    <nome do programa>: <descrição>
    <nome do programa>: <descrição>
    <nome do programa>: <descrição>
    <nome do programa>: <descrição>
    <nome do programa>: <descrição>
    <nome do programa>: <descrição>
    <nome do programa>: <descrição>
    <nome do programa>: <descrição>

Este é um modelo que é usado na maioria dos pacotes, você não precisa usá-lo, na verdade você pode colocar qualquer coisa, mas deve seguir três regras:
  • Cada linha não pode ter mais de 80 caracteres de largura;
  • Não pode ter mais de 11 linhas;
  • Deve estar no formato UTF-8.

4. Caso seu programa precise executar instruções externas para funcionar corretamente, como criar links ou setar permissões, você pode criar um shell script chamado "doinst.sh" dentro da pasta "install", que pode conter os comandos que você quiser, podendo até usar o dialog para executar algumas configurações, já que o script é executado após todos os arquivos serem copiados para os seus respectivos lugares.

5. Caso o seu programa dependa de outros pacotes, você pode colocar um arquivo com o nome "slack-required" no diretório "install" que contenha algo como:

<nome do pacote de que depende> >= <versão>

Onde este >= diz que a versão do <pacote> deve ser maior ou igual a <versão>. Pode ser também < ou >. Apesar de não fazer tanta diferença, já que o instalador não verifica isso.

6. ATENÇÃO: ESTA PARTE É OBRIGATÓRIA. Crie na raiz da pasta onde você está construindo o pacote uma estrutura com pastas e sub-pastas igual a do Linux, mas coloque apenas as pastas que receberão conteúdo. Por exemplo, se você tiver um arquivo chamado teletubbies.conf :-), que deve ficar em /etc/default e um teletubbies-bin :-D, que deverá ficar em /usr/bin, você deverá criar a seguinte estrutura:
/etc
   /default
      teletubbies.conf
/usr
   /bin
      teletubbies-bin

7. Para finalizar o pacote, volte um nível acima da pasta onde você estava trabalhando e dê o comando:

tar -cvfz <nome da pasta de trabalho> <nome do pacote>.tgz

Sendo que <nome do pacote> pode seguir o padrão:

<nome do programa>-<versão>-<arquitetura>-<release>

Onde:
  • <nome do programa> nome do seu programa
  • <versão> a versão no padrão xx.xx.xx
  • <arquitetura> a arquitetura para qual o pacote foi feito. Pode ser i386, i486, i586, i686, ppc. Por exemplo: Se os binários estiverem compilados para a arquitetura 386 ou compatível, coloque i386. Caso seja algo que não precise de compilação especial para uma determinada arquitetura, como a maioria dos scripts, usa-se noarch (abreviatura de "no architeture", "sem arquitetura" em português).
  • <release> o número da revisão (a revisão é feita para consertar pequenas coisas, como links quebrados, erros de digitação, etc, que não são o suficiente para que se precise fazer toda uma nova versão).

Página anterior     Próxima página

Páginas do artigo
   1. Prefácio
   2. Como fazer
   3. Conclusão
Outros artigos deste autor

Configurando uma pasta compartilhada para os usuários do seu Linux

Principais Ambientes Gráficos

Instalando o OSS4 no Ubuntu 11.04

Aprendendo a modelar forms no Kylix

PLC no Linux alguém já pensou nisso?

Leitura recomendada

Software envelhece?

Otimizando o Sabayon Linux (inclusive o Firefox)

SIGE Plus, uma derivação do código do Siages descontinuado pela Solis

Vyatta, o concorrente livre dos roteadores Cisco

Montado diferentes tipos de imagens no Linux

  
Comentários
[1] Comentário enviado por kaink em 13/10/2005 - 10:16h

meu ficou muito bom !! Parabens gostei pra caramba fiquei com mais vontade de estudar linux !!!fui

[2] Comentário enviado por removido em 13/10/2005 - 13:00h

Muito legal cara!
Faz tempo que procuro algo do tipo.

Mas ainda me resta uma dúvida. Vamos supor que, por exemplo, Eu vá no site http://www.php.net e baixe o código-fonte do PHP. Depois disso eu compile o código-fonte do PHP e instale-o na máquina.
Agora preciso configurar outro servidor, e o PHP tem que ser instalado identico ao 1° servidor.
É possível eu criar um pacote TGZ da minha instalação do PHP e instala-lo em outros servidores utilizando somente o installpkg??

(Desculpem a ignorância)
:o)

[3] Comentário enviado por lordello em 13/10/2005 - 16:58h

Cara, nada contra, mas já existe um artigo meu sobre isso.

Criando pacotes no Slackware
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=632

Está fatando muita informação no seu artigo, tipo, as pessoas vão copiar os arquivos manualmente? Existe também uma forma de automatizar o processo usando os tais Slackbuilds, são scripts bash que o Patrick cria para automatizar o processo. Os Slackbuilds podem ser enconrtados na árvore "source" dos ftps ou nos CDs.
Até mais.

[4] Comentário enviado por molder em 13/10/2005 - 19:53h

Boa noite,

Muito bom esse artigo, parabéns !!!

[5] Comentário enviado por vitor_samuel em 24/10/2005 - 19:26h

esse artigo é massa e muito util, ainda não testei, mais assim que testar vou deixcar um novo comentario.

[6] Comentário enviado por Daemonio em 02/09/2006 - 13:13h

maurowil , sim, você pode fazer isto. Há um programa que se chama checkinstall. Antes de você executar o "make install", ele transforma os arquivos em pacotes deb,tgz ou rpm. Aí você só executa um installpkg e o pacote é instalado.


Contribuir com comentário