# Arch Build System (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Cet article ou section a besoin d'être traduit(e).

Notes: Cet article ne respecte pas la structure de sa version anglophone, merci de le réécrire en conséquence. Vous pouvez aussi ajouter à la version anglophone les informations à-jour et dignes d’intérêt qui ne seraient portées que par la version francophone. Voir Archwiki:Translation_Team_(Français) (Discuss in Talk:Arch Build System (Français)#)

Related articles

- Arch package guidelines (Français)
- Arch User Repository (Français)
- Creating packages
- Kernel Compilation with ABS
- makepkg (Français)
- Official repositories (Français)
- pacman (Français)
- PKGBUILD (Français)
- Patching in ABS

Cet article fournit un aperçu d'Arch Build System (ABS) avec une procédure pas à pas pour les débutants. Il n'a pas pour objectif d'être un guide de référence complet.

## Qu'est-ce qu'Arch Build System ?

Arch Build System est comme un système de ports (ports-like) qui permet de compiler et d’empaqueter des logiciels à partir de leur code source. Alors que Pacman est l'outil d'Arch spécialisé dans la gestion des paquets binaires (y compris les paquets construits avec 'ABS'), 'ABS' est un ensemble d'outils qui permet de compiler des sources en paquets installables `.pkg.tar.zst`.

### Qu'est-ce qu'un système dit ports-like

Ports est un système utilisé dans les systèmes *BSD qui automatise le processus de constructions des logiciels à partir du code source. Le système utilise un port pour télécharger, extraire, patcher, compiler et installer un logiciel donné.

### ABS est un concept similaire

ABS est une arborescence qui peut être récupérée à l'aide de SVN. Cette arborescence représente les paquets officiels d'Arch, mais elle ne les contient pas. Les sous-répertoires de l'arborescence ne contiennent ni le paquet logiciel ni les sources, mais simplement un fichier PKGBUILD et quelques fois d'autres fichiers. En exécutant la commande makepkg à l'intérieur d'un répertoire contenant un PKGBUILD, le logiciel sera compilé puis empaqueté, et Pacman pourra être utilisé pour installer le paquet créé.

### Aperçu d'ABS

ABS est devenu un terme général qui regroupe un ensemble de composants. Ce n'est plus un outil en lui-même.

L'arbre SVN
  L'arborescence qui contient toutes les recettes qui permettent de créer les paquets officiels. Disponible sur ce dépôt svn et ce dépôt git.

PKGBUILD
  La recette du paquet, qui contient un lien vers le code source du logiciel, ainsi qu'un ensemble d’instructions qui permettent de créer le paquet.

makepkg
  L'outil en ligne de commande qui lit le PKGBUILD, télécharge les sources puis les compile pour créer un paquet `.pkg.tar.zst`.

Pacman
  Le gestionnaire de paquets, qui satisfait les dépendances nécessaires à la création du paquet. Il permet aussi d'installer ou de désinstaller les paquets créés.

Attention: Les PKGBUILDs officiels partent du principe que les paquets sont compilés dans un environnement «propre». Construire des paquets dans un environnement "sale" peut faire échouer la procédure ou causer un comportement indésirable lors de l'exécution du logiciel.

#### L'arbre SVN

Les dépôts officiels core, extra, et testing sont dans le dépôt SVN nommé packages. Les dépôts community et multilib sont dans le dépôt SVN nommé community.

Tous les paquets ont leur propre sous-répertoire. À l'intérieur se trouve les répertoires suivants :

- `repos` : contient les fichiers utilisés dans les paquets officiels.
- `trunk` : contient les fichiers utilisés par les développeurs avant qu'ils ne soient copiés dans `repos`.

Par exemple, l'arbre du paquet acl ressemble à ceci:

    acl
    acl/repos
    acl/repos/core-i686
    acl/repos/core-i686/PKGBUILD
    acl/repos/core-x86_64
    acl/repos/core-x86_64/PKGBUILD
    acl/trunk
    acl/trunk/PKGBUILD

## Pourquoi voudrais-je utiliser ABS ?

ABS peut être utilisé pour :

- Compiler ou recompiler un paquet (une mise à jour de bibliothèque par exemple)
- Personnaliser un paquet (par exemple en modifiant les options de compilation)
- Recompiler le système en entier pour gagner des millisecondes à l'exécution.

ABS n'est pas nécessaire pour utiliser Arch Linux, mais est utile pour automatiser certaines tâches de compilation.

## Comment utiliser ABS ?

Pour récupérer le PKGBUILD d'un paquet officiel et ses fichiers associés, vous pouvez utiliser `svn` ou `git`.

### En utilisant Git

Tout d'abord, vous devez installer le paquet asp.

Si vous désirez simplement récupérer le répertoire sans vous soucier du dépôt Git, vous pouvez utiliser la commande suivante :

    asp export nomdupaquet

Cela va créer un répertoire nomdupaquet avec les fichiers sources à l'instant T, mais il ne sera pas possible d'utiliser la commande `git` dans ce répertoire.

Pour récupérer le dépôt SVN vers Git d'un paquet, utilisez :

    asp checkout nomdupaquet

Cela va cloner le dépôt Git du paquet nomdupaquet à l'intérieur d'un répertoire éponyme.

Pour mettre à jour le dépôt, utilisez la série de commandes suivantes à l'intérieur du répertoire nomdupaquet :

    asp update
    git pull

De plus, il est possible d'utiliser n'importe quelle commande `git`. Par exemple, pour récupérer une ancienne version du paquet:

    git log # Pour voir l'historique des changements et l'ID du commit
    git checkout idducommit # Pour restaurer les fichiers tels qu'ils l'étaient à l'ID de commit donné

### Construire le paquet

Pour configurer `makepkg`, lisez makepkg (Français)#Configuration.

Pour utiliser `makepkg`, lisez makepkg (Français)#Utilisation.

## Trucs et astuces

### Préserver les paquets modifiés

Lors d'une mise à jour du système, Pacman va remplacer les paquets modifiés par les paquets officiels si une mise à jour est disponible. Si vous désirez conserver vos paquets modifiés, suivez les instructions suivantes :

Insérez le tableau `groups` dans le PKGBUILD, et par exemple ajoutez le paquet dans un groupe nommé `abs`.

    PKGBUILD

    groups=('abs')

Maintenant, ajoutez ce groupe dans la section `IgnoreGroup` du fichier `/etc/pacman.conf` :

    /etc/pacman.conf

    IgnoreGroup = abs

Si une nouvelle version officielle du paquet est disponible, un message d'avertissement apparaîtra lors de la mise à jour du système, et les paquets modifiés devront être recompilés pour éviter une mise à jour partielle.

Categories:

- About Arch (Français)
- Package development (Français)
- Package management (Français)

Hidden category:

- Pages or sections flagged with Template:Translateme