[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Essa é uma revisão anterior do documento!


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

 pt-br:howtos:slackware_admin:building_a_package ()
Esta tradução é mais antiga que a página original e pode estar desatualizada. Veja o que foi mudado.