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:

2. Estrutura Necessária

Para criar um pacote, você deve organizar seus arquivos em uma pasta específica contendo:

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

Guia de criação de pacotes - Slackware Linux