Criação de Pacotes no Slackware com Scripts SlackBuild
1. O Conceito do SlackBuild
Um arquivo .SlackBuild é um script que automatiza o processo de criação de pacotes. Ele realiza as seguintes tarefas de forma sequencial:- Descompacta o código fonte.
- Configura as flags de compilação.
- Compila o software.
- Instala-o em um diretório temporário (o "root" do pacote).
- Cria o pacote final comprimido (geralmente .txz).
2. Estrutura Necessária
Para criar um pacote, você deve organizar seus arquivos em uma pasta específica contendo:
- nome-do-programa.SlackBuild: O script de automação.
- slack-desc: Um arquivo de texto com a descrição do pacote.
- nome-do-programa-versao.tar.gz: O código fonte original.
3. Passo a Passo Prático
A. Preparando o slack-desc
Este arquivo é essencial para que o pkgtool mostre o que o pacote faz. Ele deve seguir um formato rígido de 11 linhas de texto após o prefixo:
# CURSOR: |-----handy-ruler------------------------------------------------------|
nome-do-programa: nome-do-programa (Breve descrição)
nome-do-programa:
nome-do-programa: Uma descrição mais detalhada do seu software aqui.
nome-do-programa: Tente não ultrapassar o limite da régua acima.
nome-do-programa:
nome-do-programa:
nome-do-programa:
nome-do-programa:
nome-do-programa:
nome-do-programa:
nome-do-programa:
B. Escrevendo o SlackBuild (Exemplo Básico)
Abaixo, um modelo simplificado do que acontece dentro do script Bash:
#!/bin/bash
# Definição de variáveis
PRGNAM=meu-app
VERSION=1.0.0
BUILD=${BUILD:-1}
TAG=${TAG:-_custom}
ARCH=${ARCH:-x86_64}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
# Limpeza e preparação
rm -rf $PKG $TMP/$PRGNAM-$VERSION
mkdir -p $TMP $PKG
cd $TMP
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
# Compilação
CFLAGS="-O2 -fPIC" ./configure --prefix=/usr --sysconfdir=/etc
make
make install DESTDIR=$PKG
# Adicionando a descrição
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
# Criação do pacote
cd $PKG
/sbin/makepkg -l y -c n $CWD/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.txz
C. Executando e Instalando
Dê permissão de execução ao script:
chmod +x meu-app.SlackBuild
Execute o script como root para gerar o pacote:
./meu-app.SlackBuild
O arquivo .txz será gerado no diretório atual. Instale-o com:
installpkg meu-app-1.0.0-x86_64-1_custom.txz
4. Dicas de Ouro
- SlackBuilds.org (SBo): Não reinvente a roda. Quase todo software possui um template pronto no SlackBuilds.org. Você pode baixar o script de lá e apenas fornecer o código fonte.
- Arquitetura: Use
ARCH=x86_64para sistemas 64 bits ouARCH=i686para 32 bits. - Limpeza: Sempre verifique o diretório
/tmppara garantir que arquivos residuais de compilações falhas não interfiram na nova build.
Guia de criação de pacotes - Slackware Linux