====== 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 [[http://www.slackware.com/~mozes|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 /usr/man seja no formato gzip antes de você fazer o pacote: gzip -9 /tmp/build/usr/man/man?/*.? Crie o diretório install, 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 [[http://slack-desc.sourceforge.net|esta ferramenta]]), criar um arquivo chamado [[slack-desc]] e preencha com o seguinte conteúdo: |-----handy-ruler------------------------------------------------------| appname: appname (Short description of the application) appname: 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 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 Sim
Quando solicitado a redefinir as permissões, clicar em Não // 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 ====== Ajustes Específicos ===== **Info para Perl**: pacotes perl vem com /usr/lib64/perl5/perllocal.pod e você provavelmente não quer sobrescrever a versão local. Em vez disso você pode mover o arquivo para a raíz do seu pacote root/tmp e usar o doinst.sh para adicionar a nova informação ao pacote antigo com algo como: ( cat /tmp/perllocal.pod >> /usr/lib64/perl5/perllocal.pod ) ====== 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 [[wiki:user:arfon | arfon]] \\ {{tag>howtos software makepkg package_management author_slackwiki}}