Dépôt local AUR compilé

De ArchwikiFR

Si vous disposez de plusieurs PC sous Arch Linux, qu'ils sont raccordés sur le même réseau local, et qu'en plus ils soient tous avec la même architecture alors vous êtes dans le cas où un dépôt local est intéressant.
Lors d'une mise à jour d'un paquets provenant d'AUR sauvez le paquet compilé dans un répertoire et partagez le avec vos autres PC.

Prérequis

Important : Le PC qui hébergera le dépôt local devra avoir un serveur web local en service. Voir LAMP.

L'utilisation du programme Yaourt est fortement conseillé afin de rendre l'opération de sauvegarde des paquets transparente. Dans la suite de ce document il sera utilisé.
Les programmes pkgcacheclean et xdelta3 permettront respectivement de nettoyer le répertoire dépôt et d'utiliser la fonction delta lors de la reconstruction de la base des programmes disponibles.

Configuration

Sur le PC miroir créer un répertoire cache, qui contiendra les paquets compilés, à la racine du serveur web.

..../http/<nom_du_dépôt>/x86_64
Note : Ce répertoire peut se trouver physiquemement ailleurs et être présent à la racine par un lien symbolique
ln -s <chemin_du_répertoire> .../http/<nom_du_dépôt>/x86_64

Modification du fichier de configuration de Yaourt pour la sauvegarde des paquets construits.

Fichier: /etc/yaourtrc
# Build
EXPORT=1			# Export to 1: EXPORTDIR
#EXPORTSRC=0			# Need EXPORT>0 to be used
EXPORTDIR="<chemin_du_répertoire>"

Ajout du nouveau dépôt dans le fichier de configuration de pacman, sur les autres PC du réseau. À placer en fin de fichier juste avant celui d'AUR Archlinuxfr

Fichier: /etc/pacman.conf
[<nom_du_depot>]
# Dépôt local pour les paquets d'AUR déjà compilés et construits
SigLevel = Optional TrustAll
Server = http://<adresse_ip>/<nom_du_depot>/$arch

[archlinuxfr]

Utilisation

Important : Le PC miroir devra évidemment être mis à jour en premier, cela va de soit.

Mise à jour :

yaourt -Suay

Nettoyage du répertoire cache pour ne conserver que la dernière version de chaque paquet inclus :

pkgcacheclean -v 1 -d <chemin_du_répertoire>

L'option -v : pour afficher les paquets qui ont été supprimés.
L'option 1  : pour ne garder que la dernière version des paquets présents dans le répertoire.

Astuce : pkgcacheclean -nv 1 -d <chemin_du_répertoire>,
pour afficher les paquets à supprimer sans le faire.
Création des fichiers du contenu du répertoire : <nom_du_dépôt>.db et <nom_du_dépôt>.files
repo-add <chemin_du_répertoire>/<nom_du_depot>.db.tar.gz <chemin_du_répertoire>/*.pkg.tar.xz

Adjonction de nouveaux paquets :

repo-add -n <chemin_du_répertoire>/<nom_du_depot>.db.tar.gz <chemin_du_répertoire>/*.pkg.tar.xz

Modification de la version des paquets existants déjà dans la base après un changement de version :

repo-add -d <chemin_du_répertoire>/<nom_du_depot>.db.tar.gz <chemin_du_répertoire>/*.pkg.tar.xz