ABS

De ArchwikiFR

ABS pour Arch Build System, est un système équivalent au système de ports qu'on trouve notamment dans les systèmes *BSD. Il regroupe un ensemble d'outils ainsi qu'une arborescence contenant pour chaque paquet officiel le nécessaire pour le compiler et l'installer.

Sommaire

Vue d'ensemble

ABS est lié aux éléments suivants :

  • PKGBUILD : Script de description pour télécharger les sources et construire un paquet.
  • makepkg : Commande automatisant le processus de téléchargement / compilation / construction / installation d'un paquet.
  • pacman : le gestionnaire de paquets d'Arch.

ABS peut être utilisé pour :

  • compiler ou recompiler un paquet (une mise à jour de lib par exemple)
  • personnaliser un paquet (p. ex. en modifiant les options de compilation)
  • recompiler le système en entier pour gagner des millisecondes à l'exécution.
  • etc…

Installation

Pour utiliser ABS, il vous faut l'installer :

pacman -S abs

Par défaut, ABS crée son arborescence sous /var/abs, il est toutefois possible de modifier la configuration soit en modifiant le fichier /etc/abs.conf, soit en créant un fichier $HOME/.abs.conf.

Configuration

La syntaxe du fichier de configuration est celle de bash, parmi les variables de configurations, les plus importantes étant :

  • ABSROOT : localisation de l'arborescence ABS
  • REPOS : liste des dépôt à télécharger si aucun paramètre n'est fourni à abs.

Synchronisation de l'arborescence

Un appel à abs synchronise l'arborescence (par défaut sous /var/abs).

Les répertoires correspondent au dépôts, sous chaque dépôt, on trouve un répertoire par paquet :

/var/abs
|- core
|   |- acl
|   |- attr
|   |- autoconf
|   |- automake
...
|- extra
|   |- a2ps
|   |- a52dec
|   |- aalib
|   |- abcde
...
...

Le répertoire local/ servant en théorie à vos futures modifications.

Exemple

On va prendre comme exemple l'application xdialog qui, pour contenter les utilisateurs d'xmms est compilée avec le support de gtk, mais en version 1 !

Note: XDialog ne dépend maintenant que de Gtk 2, ce qui rend l'exemple obsolète, ceci dit, la démarche reste la même.

Tout d'abord, assurons-nous d'avoir la dernière version du répertoire ABS concernant xdialog :

$ pacman -Sdp --print-format '%r/%n' xdialog
community/xdialog

Si vous n'avez pas modifié le répertoire $ABSROOT, cette commande est à lancer en root :

abs community/xdialog

Au cas où, on va copier ce répertoire pour travailler dessus :

mkdir -p ~/abs
cp -r /var/abs/community/xdialog ~/abs
cd ~/abs/xdialog

On suppose que vous avez lu la page concernant les PKGBUILD.
Pour compiler xdialog avec le support de gtk2, il suffit de modifier le PKGBUILD pour y supprimer le paquet gtk de la ligne :

depends=('sh')

et rajouter --with-gtk2 à ./configure :

./configure --prefix=/usr \
  --mandir=${pkgdir}/usr/share/man \
  --with-gtk2

Il ne reste plus qu'à lancer :

makepkg -si

pour compiler et installer le nouveau paquet.


Note: yaourt ou srcpac permettent d'automatiser la récupération des sources et la modification d'un paquet.
Outils personnels
Autres langues