Essa é uma revisão anterior do documento!
Tabela de conteúdos
Construindo um pacote
Este é um esboço para a criação de pacotes do Slackware. Algumas etapas podem não ser necessárias, algumas etapas podem estar ausentes. Use a página de discussão para notas secundárias, como usar slacktrack (quando o DESTDIR falha) e outros utilitários como o checkinstall.
A maneira boa e decente
Configure e compile a fonte como você costuma fazer:
./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc make
Disponibilize um diretório de destino temporário:
mkdir /tmp/build
Instale no diretório temporário:
make install DESTDIR=/tmp/build
Agora, libere libs/bins dentro do diretório temporário:
strip -s /tmp/build/usr/lib/* /tmp/build/usr/bin/*
Você também quer ter certeza de que qualquer coisa em <tt>/usr/man</tt> seja no formato gzip antes de você fazer o pacote:
gzip -9 /tmp/build/usr/man/man?/*.?
Crie o diretório <tt>install</tt>, onde a descrição e o script de instalação serão armazenados:
cd /tmp/build mkdir install cd install
One-liner (para as pessoas do copiar e colar):
cd /tmp/build; mkdir install; cd install
Usar um editor de texto (ou esta ferramenta), criar um arquivo chamado slack-desc e preencha com o seguinte conteúdo:
- slack-desc
|-----handy-ruler------------------------------------------------------| appname: appname (Short description of the application) appname: <this line is generally left blank> appname: Description of application - this description should be fairly appname: in-depth; in other words, make it clear what the package does (and appname: maybe include relevant links and/or instructions if there's room), appname: but don't get too verbose. appname: This file can have a maximum of eleven (11) lines of text preceded by appname: the "appname: " designation. appname: appname: It's a good idea to include a link to the application's homepage too. appname:
A string “appname” deve corresponder exatamente à parte do nome do aplicativo do pacote do Slackware (por exemplo, um pacote intitulado “gaim-1.5-i486-1.tgz” deve ter um arquivo slack-desc com a string <appname> de “gaim:” em vez de “Gaim:” ou “GAIM:” ou outra coisa.
A primeira linha deve mostrar o nome do aplicativo seguido por uma breve descrição (entre parênteses).
Crie o pacote atual:
cd /tmp/build makepkg ../app-version-arch-tag.tgz
(Os traços devem aparecer como acima, portanto, se a versão tiver uma subversão como “1.0 RC2”, certifique-se de usar 1.0_RC2 e não 1.0-RC2. A arquitetura deve ser algo como “i486” por exemplo. A tag deve consistir no número de compilação e seus iniciais, por ex. 1zb para a primeira build de Zaphod Beeblebrox, 2zb para sua segunda build, etc. Pacotes slackware oficiais possuem apenas números como tags.)
Quando solicitado a recriar links simbólicos, clicar em <tt>Sim</tt><br> Quando solicitado a redefinir as permissões, clicar em <tt>Não</tt>
Nota: Usar o makepkg -l y -c n lhe dará o mesmo comportamento que responder sim à questão dos links simbólicos, e não à pergunta de permissões.
Se tudo correu bem, agora você pode instalar o pacote. cd .. installpkg app-version-arch-tag.tgz
O caminho "Eu não tenho tempo"
Felizmente, o Slackware também é bastante flexível. Se você não se importa muito com o que é a fonte (cuidado!) que você está compilando, você pode gravar alguns estágios e fazer algo assim:
./configure --prefix=/usr make install DESTDIR=$(pwd)/PACKAGE cd $(pwd)/PACKAGE makepkg -l y -c n ../app-version-arch-tag.tgz installpkg ../app-version-arch-tag.tgz
Naturalmente, você terá um pacote sem descrição, (provavelmente) páginas man descompactadas e binários não-fixados.
Fontes
* Fonte original: http://www.slackwiki.com/Building_A_Package
* Contribuição de arfon