L’Arch User Repository (AUR) est un référentiel géré par la communauté pour les utilisateurs d’Arch. Il contient des descriptions de paquets (PKGBUILDs) qui vous permettent de compiler un paquet à partir des sources avec makepkg et de l’installer ensuite via pacman. L’AUR a été créé pour organiser et partager les nouveaux paquets de la communauté et pour aider à accélérer l’inclusion des paquets populaires dans le dépôt communautaire. Ce document explique comment les utilisateurs peuvent accéder et utiliser l’AUR.
Un bon nombre de nouveaux paquets qui entrent dans les dépôts officiels commencent dans l’AUR. Dans l’AUR, les utilisateurs sont en mesure de contribuer à la construction de leurs propres paquets (PKGBUILD
et fichiers connexes). La communauté AUR a la possibilité de voter pour les paquets dans l’AUR. Si un paquet devient suffisamment populaire – à condition qu’il ait une licence compatible et une bonne technique d’empaquetage – il peut être entré dans le dépôt de la communauté (directement accessible par pacman ou abs).
PKGBUILD
sont complètement non-officiels et n’ont pas été minutieusement vérifiés. Toute utilisation des fichiers fournis est à vos propres risques.Démarrer
Les utilisateurs peuvent rechercher et télécharger des PKGBUILDs à partir de l’interface Web AUR. Ces PKGBUILD
s peuvent être construits en paquets installables à l’aide de makepkg, puis installés à l’aide de pacman.
- Assurez-vous que le groupe de paquets base-devel est installé en entier (
pacman -S --needed base-devel
). - Lisez la #FAQ pour obtenir des réponses aux questions les plus courantes.
- Vous pouvez souhaiter ajuster
/etc/makepkg.conf
pour optimiser le processus de construction à votre système avant de construire des paquets à partir de l’AUR. Une amélioration significative des temps de construction des paquets peut être réalisée sur les systèmes avec des processeurs multi-cœurs en ajustant la variableMAKEFLAGS
, en utilisant plusieurs cœurs pour la compression, ou en utilisant un algorithme de compression différent. Les utilisateurs peuvent également activer les optimisations du compilateur spécifiques au matériel via la variableCFLAGS
. Voir makepkg#Tips and tricks pour plus d’informations.
Il est également possible d’interagir avec l’AUR par SSH : tapez ssh [email protected] help
pour une liste des commandes disponibles.
Histoire
Au début, il y avait ftp://ftp.archlinux.org/incoming
, et les gens contribuaient en téléchargeant simplement le PKGBUILD, les fichiers supplémentaires nécessaires, et le paquet construit lui-même sur le serveur. Le paquet et les fichiers associés restaient là jusqu’à ce qu’un mainteneur de paquet voie le programme et l’adopte.
Puis les dépôts d’utilisateurs de confiance sont nés. Certaines personnes de la communauté ont été autorisées à héberger leurs propres dépôts pour que tout le monde puisse les utiliser. L’AUR s’est développé sur cette base, dans le but de le rendre à la fois plus flexible et plus utilisable. En fait, les mainteneurs de l’AUR sont toujours appelés TU (Trusted Users).
Entre le 2015-06-08 et le 2015-08-08, l’AUR est passé de la version 3.5.1 à 4.0.0, introduisant l’utilisation de dépôts Git pour la publication des PKGBUILD
s.Les paquets existants ont été abandonnés à moins d’être migrés manuellement vers la nouvelle infrastructure par leurs mainteneurs.
Dépôts Git pour les paquets AUR3
L’archive AUR sur GitHub a un dépôt pour chaque paquet qui était dans AUR 3 au moment de la migration.Alternativement, il y a le dépôt aur3-mirror qui fournit la même chose.
Installation et mise à niveau des paquets
L’installation de paquets à partir de l’AUR est un processus relativement simple. Essentiellement :
- Acquérir les fichiers de construction, y compris le PKGBUILD et éventuellement d’autres fichiers requis, comme les unités et les correctifs systemd (souvent pas le code réel).
- Vérifier que le
PKGBUILD
et les fichiers d’accompagnement ne sont pas malveillants ou indignes de confiance. - Exécuter
makepkg -si
dans le répertoire où les fichiers sont enregistrés. Cela téléchargera le code, résoudra les dépendances avec pacman, le compilera, l’empaquetera et installera le paquet.
Prérequis
Assurez-vous d’abord que les outils nécessaires sont installés en installant le groupe base-devel dans son intégralité qui inclut make et d’autres outils nécessaires à la compilation à partir des sources.
--needed
lors de l’installation du groupe base-devel pour sauter les paquets que vous avez déjà au lieu de les réinstaller.Puis choisissez un répertoire de construction approprié. Un répertoire de construction est simplement un répertoire où le paquet sera fait ou « construit » et peut être n’importe quel répertoire. Les exemples des sections suivantes utiliseront ~/builds
comme répertoire de construction.
Acquérir les fichiers de construction
Localiser le paquet dans l’AUR. Pour ce faire, utilisez le champ de recherche situé en haut de la page d’accueil de l’AUR. En cliquant sur le nom de l’application dans la liste de recherche, une page d’information sur le paquet s’affiche. Lisez la description pour confirmer qu’il s’agit du paquet souhaité, notez la date de la dernière mise à jour du paquet et lisez les commentaires éventuels.
Il existe plusieurs méthodes pour acquérir les fichiers de construction d’un paquet :
- Clonez son dépôt git, étiqueté « Git Clone URL » dans les « Détails du paquet » sur sa page AUR. C’est la méthode préférée, dont un avantage est que vous pouvez facilement obtenir des mises à jour du paquet via
git pull
.
$ git clone https://aur.archlinux.org/package_name.git
- Télécharger un snapshot, soit en cliquant sur le lien « Download snapshot » sous « Package Actions » à droite de sa page AUR, soit dans un terminal :
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
tar -xvf package_name.tar.gz
Acquérir une clé publique PGP si nécessaire
Vérifier si un fichier de signature sous la forme .sig ou .asc fait partie du tableau de sources PKGBUILD, si c’est le cas, alors acquérir une des clés publiques listées dans le tableau validpgpkeys de PKGBUILD. Reportez-vous à makepkg#Vérification des signatures pour plus d’informations.
Construire et installer le paquet
Changer les répertoires vers le répertoire contenant le PKGBUILD du paquet.
$ cd package_name
PKGBUILD
, tout fichier .install, et tout autre fichier dans le dépôt git du paquet pour détecter les commandes malveillantes ou dangereuses. En cas de doute, ne construisez pas le paquet, et demandez conseil sur les forums ou la liste de diffusion. Du code malveillant a déjà été trouvé dans des paquets. Voir le contenu de tous les fichiers fournis. Par exemple, pour utiliser le pager less pour visualiser PKGBUILD
faites :
$ less PKGBUILD
- Pour visualiser les changements depuis le dernier commit git, vous pouvez utiliser
git show
. - Pour visualiser les changements depuis le dernier commit en utilisant vimdiff, faites
git difftool @~..@ vimdiff
. L’avantage de vimdiff est que vous visualisez le contenu entier de chaque fichier ainsi que des indicateurs sur ce qui a changé.
Faire le paquet. Après avoir confirmé manuellement le contenu des fichiers, exécutez makepkg en tant qu’utilisateur normal:
$ makepkg -si
-
-s
/--syncdeps
résout et installe automatiquement toutes les dépendances avec pacman avant la construction. Si le paquet dépend d’autres paquets AUR, vous devrez d’abord les installer manuellement. -
-i
/--install
installe le paquet s’il est construit avec succès. Alternativement, le paquet construit peut être installé avecpacman -U package_name.pkg.tar.zst
.
Les autres drapeaux utiles sont
-
-r
/--rmdeps
supprime les dépendances après la construction, car elles ne sont plus nécessaires. Cependant, ces dépendances peuvent avoir besoin d’être réinstallées la prochaine fois que le paquet est mis à jour. -
-c
/--clean
nettoie les fichiers temporaires de construction après la construction, car ils ne sont plus nécessaires. Ces fichiers ne sont généralement nécessaires que lors du débogage du processus de construction.
Mise à jour des paquets
Dans le répertoire contenant le PKGBUILD du paquet, vous devez d’abord mettre à jour les fichiers et les modifications en utilisant la commande
$ git pull
puis exécuter
$ makepkg -si
pour mettre à jour le paquet.
Réaction
Commenter les paquets
L’interface Web de l’AUR dispose d’une fonction de commentaires qui permet aux utilisateurs de fournir des suggestions et des réactions sur les améliorations apportées au contributeur PKGBUILD.
PKGBUILD
s dans la section des commentaires : ils deviennent rapidement obsolètes et finissent juste par prendre inutilement beaucoup d’espace. Envoyez plutôt ces fichiers par courriel au mainteneur, ou même utilisez un pastebin.Python-Markdown fournit une syntaxe Markdown de base pour formater les commentaires.
- Cette implémentation présente quelques différences occasionnelles avec les règles syntaxiques officielles.
- Commit hashes au dépôt Git du paquet et les références aux tickets Flyspray sont converties en liens automatiquement.
- Les longs commentaires sont réduits et peuvent être développés à la demande.
Voter pour les paquets
L’une des activités les plus faciles pour tous les utilisateurs d’Arch est de parcourir l’AUR et de voter pour leurs paquets préférés en utilisant l’interface en ligne. Tous les paquets sont éligibles pour être adoptés par une UT pour être inclus dans le dépôt communautaire, et le nombre de votes est l’une des considérations dans ce processus ; il est dans l’intérêt de tous de voter !
S’inscrire sur le site de l’AUR pour obtenir une option « Votez pour ce paquet » en parcourant les paquets. Après s’être inscrit, il est également possible de voter depuis la ligne de commande avec aurvoteAUR, aurvote-gitAUR ou aur-auto-vote-gitAUR.
Alternativement, si vous avez configuré l’authentification ssh, vous pouvez directement voter depuis la ligne de commande en utilisant votre clé ssh. Cela signifie que vous n’aurez pas besoin d’enregistrer ou de taper votre mot de passe AUR.
$ ssh [email protected] vote package_name
Flaguer les paquets périmés
D’abord, vous devriez marquer le paquet périmé en indiquant les détails sur la raison pour laquelle le paquet est périmé, de préférence en incluant des liens vers l’annonce de la version ou le tarball de la nouvelle version.
Vous devriez également essayer d’atteindre le mainteneur directement par courriel. S’il n’y a pas de réponse du mainteneur après deux semaines, vous pouvez déposer une demande orpheline. Voir les directives de soumission de l’AUR#Requêtes pour plus de détails.
pkgver
change et ne doivent pas être signalés dans ce cas.Déboguer le processus de construction des paquets
- Vous assurer que votre environnement de construction est à jour en effectuant une mise à niveau avant de construire quoi que ce soit.
- Vous assurer que le groupe base-devel est installé.
- Utilisez l’option
-s
avecmakepkg
pour vérifier et installer toutes les dépendances nécessaires avant de lancer le processus de construction. - Essayez la configuration makepkg par défaut.
- Voir Makepkg#Troubleshooting pour les problèmes courants.
Si vous avez des difficultés à construire un paquet, lisez d’abord son PKGBUILD et les commentaires sur sa page AUR.
Il est possible qu’un PKGBUILD
soit cassé pour tout le monde. Si vous ne pouvez pas le comprendre par vous-même, signalez-le au mainteneur (par exemple en postant les erreurs que vous obtenez dans les commentaires de la page AUR). Vous pouvez également demander de l’aide dans le forum AUR Issues, Discussion & PKGBUILD Requests.
La raison pourrait ne pas être triviale après tout. Les CFLAGS
, LDFLAGS
et MAKEFLAGS
personnalisés peuvent provoquer des échecs. Pour éviter les problèmes causés par la configuration particulière de votre système, construisez les paquets dans un chroot propre. Si le processus de construction échoue toujours dans un chroot propre, le problème provient probablement du PKGBUILD
.
Voir Création de paquets#Vérification de la sanité des paquets à propos de l’utilisation de namcap
. Si vous souhaitez qu’un PKGBUILD
soit revu, postez-le sur la liste de diffusion aur-general pour obtenir les commentaires des TU et des autres membres de l’AUR, ou sur le forum Creating &Modifying Packages. Vous pourriez également demander de l’aide sur le canal IRC #archlinux-aur sur Freenode.
Soumettre des paquets
Les utilisateurs peuvent partager des PKGBUILDs en utilisant le dépôt des utilisateurs d’Arch. Voir les directives de soumission de l’AUR pour plus de détails.
Traduction de l’interface Web
Voir i18n.txt dans l’arbre source de l’AUR pour des informations sur la création et le maintien de la traduction de l’interface Web de l’AUR.
FAQ
Quel type de paquets est autorisé sur l’AUR ?
Les paquets sur l’AUR sont simplement des « scripts de construction », c’est-à-dire des recettes pour construire des binaires pour pacman. Pour la plupart des cas, tout est autorisé, sous réserve des directives d’utilité et de portée, tant que vous êtes en conformité avec les conditions de licence du contenu. Dans d’autres cas, lorsqu’il est mentionné que « vous ne pouvez pas créer de lien » vers des téléchargements, c’est-à-dire des contenus qui ne sont pas redistribuables, vous ne pouvez utiliser que le nom du fichier lui-même comme source. Cela signifie et exige que les utilisateurs aient déjà la source restreinte dans le répertoire de construction avant de construire le paquet. En cas de doute, demandez.
Comment puis-je voter pour des paquets dans l’AUR ?
Voir #Vote pour les paquets.
Qu’est-ce qu’un utilisateur de confiance / TU ?
Un utilisateur de confiance, en abrégé TU, est une personne qui est choisie pour superviser l’AUR et le référentiel communautaire. Ce sont eux qui maintiennent les PKGBUILDs populaires dans la communauté et qui, globalement, font fonctionner l’AUR.
Quelle est la différence entre le dépôt de l’utilisateur d’Arch et le dépôt de la communauté ?
Le Arch User Repository est l’endroit où sont stockés tous les PKGBUILDs que les utilisateurs soumettent, et qui doivent être construits manuellement avec makepkg. Lorsque les PKGBUILD
s reçoivent suffisamment d’intérêt de la part de la communauté et le soutien d’une TU, ils sont déplacés dans le dépôt communautaire (maintenu par les TU), où les paquets binaires peuvent être installés avec pacman.
Foo dans l’AUR est périmé ; que dois-je faire ?
Voir #Flagging packages out-of-date.
En attendant, vous pouvez essayer de mettre à jour le paquet vous-même en éditant le PKGBUILD localement. Parfois, les mises à jour ne nécessitent pas de modifications du processus de construction ou de paquetage, auquel cas la simple mise à jour du tableau pkgver
ou source
est suffisante.
Foo dans l’AUR ne compile pas lorsque j’exécute makepkg ; que dois-je faire ?
Vous manquez probablement quelque chose de trivial, voir #Debugging the package build process.
ERROR : Une ou plusieurs signatures PGP n’ont pas pu être vérifiées ! ; que dois-je faire ?
Il est fort probable que vous n’ayez pas la ou les clés publiques requises dans votre trousseau personnel pour vérifier les fichiers téléchargés. Voir Makepkg#Signature checking pour plus de détails.
Comment puis-je créer un PKGBUILD ?
Consulter les directives de soumission de l’AUR#Règles de soumission, puis voir la création de paquets.
J’ai un PKGBUILD que je voudrais soumettre ; quelqu’un peut-il le vérifier pour voir s’il y a des erreurs ?
Il existe plusieurs canaux permettant de soumettre votre paquet pour examen ; voir #Debugging the package build process.
Comment faire passer un PKGBUILD dans le dépôt communautaire ?
En général, au moins 10 votes sont nécessaires pour que quelque chose passe dans la communauté. Cependant, si une TU veut soutenir un paquet, il sera souvent trouvé dans le dépôt.
Atteindre le minimum requis de votes n’est pas la seule exigence, il doit y avoir une TU prête à maintenir le paquet. Les TU ne sont pas tenues de déplacer un paquet dans le dépôt communautaire même s’il a des milliers de votes.
En général, quand un paquet très populaire reste dans l’AUR, c’est parce que :
- Arch Linux a déjà une autre version d’un paquet dans les dépôts
- Sa licence interdit la redistribution
- Il aide à récupérer les PKGBUILDs soumis par les utilisateurs. Les aides AUR ne sont pas supportées par définition.
Voir aussi Règles pour les paquets entrant dans le Repo communautaire.
Comment puis-je accélérer les processus de construction répétés ?
Voir Makepkg#Amélioration des temps de compilation.
Quelle est la différence entre les paquets foo et foo-git ?
De nombreux paquets AUR se présentent sous la forme d’une version « stable » et d’une version de développement « instable ». Les paquets de développement ont généralement un suffixe dénotant leur système de contrôle de version et ne sont pas destinés à une utilisation régulière, mais peuvent offrir de nouvelles fonctionnalités ou des corrections de bogues. Comme ces paquets ne téléchargent que la dernière source disponible lorsque vous exécutez makepkg
, leur pkgver()
dans l’AUR ne reflète pas les changements en amont. De même, ces paquets ne peuvent pas effectuer une somme de contrôle d’authenticité sur toute source VCS.
Voir aussi Maintenance du système#Utiliser des paquets logiciels éprouvés.
Pourquoi foo a-t-il disparu de l’AUR ?
Il est possible que le paquet ait été adopté par une UT et se trouve maintenant dans le dépôt communautaire.
Les paquets peuvent être supprimés s’ils ne remplissaient pas les règles de soumission. Voir les archives aur-requests pour connaître la raison de la suppression.
Si le paquet existait dans AUR3, il se peut qu’il n’ait pas été migré vers AUR4. Consultez les #Dépôts Git pour les paquets AUR3 où ceux-ci sont préservés.
Comment puis-je savoir si l’un de mes paquets installés a disparu d’AUR ?
Le moyen le plus simple est de vérifier l’état HTTP de la page AUR du paquet :
$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)
Comment puis-je obtenir une liste de tous les paquets AUR ?
- Utiliser
aurpkglist
de python3-aurAUR
Voir aussi
- Interface Web AUR
- Liste de diffusion AUR
- DeveloperWiki:AUR Cleanup Day
.