HowTo Slackware

Creare un pacchetto Slackware con SlackBuild

Guida pratica per costruire un pacchetto .txz in modo pulito e ripetibile.

Uno SlackBuild ben fatto rende l'installazione ripetibile, disinstallabile e condivisibile. Evita installazioni "a mano" sparse in /usr/local senza controllo.

1. Struttura tipica

nomeprogramma/
  nomeprogramma.SlackBuild
  slack-desc
  doinst.sh        # opzionale
  nomeprogramma.info  # opzionale / stile SBo
  sorgenti/ oppure URL

2. Variabili base nello SlackBuild

PRGNAM=mioprogramma
VERSION=${VERSION:-1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_vl}
ARCH=${ARCH:-x86_64}
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

Usare variabili standard semplifica rebuild, upgrade e manutenzione.

3. Schema di lavoro consigliato

  1. Pulisci directory temporanee
  2. Estrai sorgenti
  3. Configura/compila
  4. Installa in $PKG (mai direttamente nel sistema)
  5. Aggiungi slack-desc e permessi corretti
  6. Crea pacchetto con makepkg

4. Esempio minimale di SlackBuild

#!/bin/sh
set -e

PRGNAM=helloapp
VERSION=${VERSION:-1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_vl}
ARCH=${ARCH:-x86_64}
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xf /path/to/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION

./configure --prefix=/usr
make
make install DESTDIR=$PKG

mkdir -p $PKG/install
cp /path/to/slack-desc $PKG/install/slack-desc

find $PKG -type f -perm 777 -exec chmod 755 {} \;
chown -R root:root $PKG

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz

5. File slack-desc

Descrive il pacchetto nel formato Slackware (11 righe, prefisso nomepacchetto). Mantieni testo chiaro e breve.

helloapp: helloapp (utility di esempio)
helloapp:
helloapp: Utility di esempio per mostrare la struttura di uno SlackBuild.
helloapp: Pacchetto creato per Slackware.
helloapp:
helloapp:
helloapp:
helloapp:
helloapp:
helloapp:
helloapp:

6. Buone pratiche

Non eseguire make install senza DESTDIR durante il packaging: sporchi il sistema e il pacchetto risultante sara' incompleto.

7. Installazione e test pacchetto

installpkg /tmp/helloapp-1.0-x86_64-1_vl.txz
upgradepkg --install-new /tmp/helloapp-1.0-x86_64-1_vl.txz
removepkg helloapp

8. Debug rapido

sh -x ./helloapp.SlackBuild
tree /tmp/SBo/package-helloapp   # se tree installato
less /var/log/packages/helloapp-*

Checklist finale

[ ] Script pulisce TMP/PKG
[ ] Build ripetibile
[ ] make install usa DESTDIR=$PKG
[ ] slack-desc presente
[ ] makepkg crea .txz con naming corretto
[ ] Pacchetto testato con installpkg/removepkg

Torna alla sezione HowTo Linux