Un script SlackBuild est un 'shell script' (généralement compatible avec le shell bash: Bourne-Again SHell.) dont le rôle est d'automatiser la configuration, la compilation et la création de paquets Slackware (des fichiers *.tgz, *.txz, *.tbz) à partir d'archives du code source.
La méthode générale pour créer un paquet Slackware à partir des sources peut être résumée comme suit, même si certains détails peuvent varier d'un système de construction à l'autre.
slack-desc
, qui décrit le logiciel suivant un format normalisé.make install
(ou dans un outil semblable) est employée par le système d'agencement des paquets. Dans les Makefiles standards GNU, la variable DESTDIR
passée à make install
peut suffire. Dans le cas de Makefiles non-standards et de méthodes de construction de paquets où cette option n'est pas prévue, on devra envisager d'écrire des correctifs au Makefile (ou au fichier équivalent) on devra aussi adapter les réglages de la configuration du système de construction (build system)./usr/
. makepkg
depuis le répertoire temporaire (où se fait l'installation, suivant le présent exemple) pour créer un paquet Slackware qu'on peut ensuite installer en appelant la commande installpkg
.Bien qu'on puisse faire à la main, point par point, ce qui vient d'être décrit, la démarche est ennuyeuse, parfois compliquée, et elle nécessite la saisie au clavier de beaucoup de commandes. L'automatisation de ce travail par un script shell permet à l'utilisateur de partager son script, donc sa démarche, avec l'ensemble de la communauté. De plus il est logique d'utiliser et de modifier des scripts SlackBuilds existants pour la mise à jour d'un programme donné vers une version plus récente.
Un bon tutoriel qui montre comment créer un script SlackBuild est disponible ici, et plus loin vous trouverez quelques exemples ou modèles qui permettent de voir précisément ce qu'on attend d'un script.
Cependant, les logiciels peuvent être écrits dans différents langages de programmation, utiliser différents systèmes de construction, ou peuvent même être écrits tout simplement dans un langage interprété de sorte qu'on ne peut pas vraiment procéder à leur “installation”. Dans ces cas là, un grand nombre d'étapes requises pour l'écriture d'un script SlackBuild différeront de la norme. Le copier-coller de commandes provenant d'autres scripts SlackBuild peut fonctionner, ou pas!
Un bon conseil à donner à quiconque envisage d'écrire un script SlackBuild est d'étudier et comprendre la structure d'un projet avant d'entreprendre l'écriture du script SlackBuild pour ce logiciel. Une bonne compétence dans l'écriture de shell scripts est également un bon atout, puisque en pratique l'écriture de SlackBuilds est faite avec des scripts compatibles avec le shell script 'bash' -Bourne-again shell
-. La façon idéale de commencer à écrire des scripts SlackBuild est de s'exercer avec des projets simples en C employant le système standard GNU Make
.
La présentation de scripts SlackBuild sur un dépôt public comme http://www.slackbuilds.org peut en outre exiger le respect de certaines conventions et normes de codage. Par exemple, ce sera au script de déterminer l'architecture-cible à l'exécution, ce qui est mieux que d'avoir codé “en dur” une architecture de machine dans ce script. Ces standards ont pour but de rendre les scripts SlackBuild aussi portables que possible.
Il existe quelques outils qui peuvent vous aider à la création de scripts SlackBuild. En voici deux exemples.