Dépôt des utilisateurs d'Arch Linux

De ArchwikiFR
(Redirigé depuis AUR)
Astuce: Depuis le 8 août 2015, AUR 3 n'est plus. Si un paquet manque sur AUR 4 mais existait sur AUR 3, alors vous pouvez le retrouver dans ce miroir (attention, la page est lourde).

Arch User Repository est un dépôt communautaire auquel tous les utilisateurs d'Arch peuvent participer.

Il contient des descriptions de paquets, les PKGBUILD (similaires aux ports BSD), par opposition aux dépôts officiels qui contiennent des paquets binaires compilés, tout prêts.

AUR n'est donc pas un dépôt classique et en particulier, le contenu n'est pas systématiquement vérifié ni maintenu activement. Il faut donc être prudent lors de son utilisation.

Contrairement aux versions antérieures, celle-ci ne passe que par un dépôt Git, ce qui signifie que la procédure à suivre pour soumettre des paquets est différente de celle utilisée avec AUR 3.

À propos

L'utilisateur peut rechercher, télécharger la description d'un paquet depuis AUR, utiliser makepkg pour construire le paquet puis pacman pour installer ce dernier.

Important: Il est nécessaire d'installer le groupe base-devel qui constitue une dépendance implicite pour la plupart des paquets.
pacman -S base-devel

Utilisation

L'installation d'un paquet depuis AUR est un processus relativement simple :

- Récupérer l'archive correspondant à votre paquet depuis le site AUR

- Extraire l'archive (de préférence dans un dossier prévu à cet effet)

- Lancer makepkg dans le répertoire extrait. (makepkg -s permet d'installer en automatique les éventuelles dépendances provenant des dépôts.)

- Installer le paquet créé à l'aide de pacman

# en supposant que $pkgname contienne le nom du paquet.
curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/$pkgname.tar.gz
# Ou bien
git clone https://aur.archlinux.org/$pkgname.git/ 
tar zxvf $pkgname.tar.gz
cd $pkgname
makepkg -s
pacman -U nom_du_paquet_cree.tar.xz

Les Assistants AUR permettent d'automatiser cette tâche.

Note: Selon la politique des développeurs d'Arch, il n'y aura jamais dans les dépôts officiels de logiciel permettant l'automatisation de l'installation d'un paquet depuis AUR.

Partage

Tout utilisateur peut soumettre, commenter ou voter pour un paquet sur AUR.

Retour

Souvent, un paquet peut devenir obsolète.
Les utilisateurs peuvent alors signaler au mainteneur qu'une nouvelle version est disponible en marquant le paquet comme périmé. De même, ils peuvent voter (ou enlever leur vote) ainsi que commenter le paquet.

Merci d'utiliser le pastebin pour soumettre une nouvelle version de PKGBUILD au mainteneur.

Important: les commentaires du site sont d'abord faits pour commenter la construction du paquet et non reporter les bugs du logiciel lui-même.

Dans la mesure du possible, merci de soumettre les bugs logiciels dans le bugtracker adéquat (souvent sur le site du logiciel, correspondant à l'url dans la description du paquet).

Soumission

La soumission se fait en ligne de commande, en se plaçant à la racine du répertoire du paquet.

Vous aurez évidemment besoin d'installer :

Clé SSH

Attention: Ces étapes sont à faire qu'une seule fois.
Créer une clé

Il est recommandé de créer une nouvelle clé RSA pour se connecter en SSH au dépôt Git de AUR, mais vous pouvez utiliser une clé existante si vous le préférez. Pour cela, utilisez la commande suivante, et rentrez un mot de passe pour cette clé :

ssh-keygen -f ~/.ssh/id_rsa-aur
Ajouter la clé au compte AUR

Ensuite, rendez-vous sur AUR, puis «Mon compte», puis dans le champ «SSH Public Key:» vous devez coller votre clé publique, à savoir ici le contenu du fichier ~/.ssh/id_rsa-aur.pub

Fichier de configuration

Enfin, pour simplifier les commandes (vu qu'un utilisateur et un port personnalisés sont utilisés), il est recommandé de modifier votre fichier de configuration SSH ~/.ssh/config pour y ajouter ceci :

Host aur.archlinux.org
IdentityFile ~/.ssh/id_rsa-aur
User aur
Port 22

Créer et modifier un paquet

Attention: Répéter ces étapes autant de fois que vous avez de paquets à soumettre.
Créer un nouveau paquet sur le dépôt Git

Le fait de cloner un dépôt qui n'existe pas crée automatiquement un dépôt au nom du paquet ; vous êtes libre de cloner le dépôt où bon vous semble :

git clone ssh+git://aur@aur.archlinux.org/<paquet>.git

Et dans votre répertoire courant, un dossier <paquet> vient d'être créé.

Note: Ne supprimez pas le répertoire caché <paquet>/.git !


Si, pour une raison, vous désirez créer manuellement le dépôt, la commande suivante le permet :

ssh aur.archlinux.org setup-repo <paquet>
Créer les fichiers du paquet

Veuillez vous référer aux pages suivantes pour comprendre comment créer un paquet : Standard paquetage et PKGBUILD.

Maintenant, vous pouvez placer dans ce répertoire les fichiers constituant votre paquet, avec au minimum le fichier PKGBUILD ainsi que le fichier .SRCINFO.

Note: Tous ces fichiers à transmettre peuvent être retrouvés dans l'archive obtenue avec makepkg --source. Cette commande créera le fichier .SRCINFO qui se trouvera dans l'archive.
Astuce: La commande mksrcinfo, du paquet pkgbuild-introspection (apparue dans la version 7), permet de créer le fichier .SRCINFO.

Une fois terminé, n'oubliez pas d'ajouter les nouveaux fichiers au dépôt Git :

git add PKGBUILD .SRCINFO <un_fichier> <un_autre_fichier>
Publier le paquet

Il faut commenter les changements, on peut le faire de façon globale (par exemple, on peut écrire «Initial commit» lors de la première soumission) :

git commit -a -m "Le message du commit que vous voulez"

Et l'étape finale, mettre cela sur le dépôt Git distant :

git push
Mettre à jour un paquet

Pour mettre à jour un paquet, la démarche peut un peu différer de celle vue plus haut. Modifiez d'abord le paquet à mettre à jour, et ensuite suivez les instructions suivantes.

En cas d'ajout de fichier, n'oubliez pas de faire :

git add <fichier>

En cas de suppression d'un fichier indexé, ne le supprimez pas directement, mais utilisez plutôt la commande :

git rm <fichier>

Pour soumettre les modifications, il est nécessaire d'exécuter les commandes suivantes :

mksrcinfo #Note : on peut mettre à jour le fichier .SCRINFO autrement (comme vu plus haut)
git commit -am 'Update to x.x.x'
git push
Note: Il est possible que les changements sur l'interface web ne soient pas immédiats, soyez patient !

Le dépôt [community]

Le dépôt [community] maintenu par des utilisateurs de confiance contient les paquets AUR les plus populaires.

Astuces

Migration de AUR 3 vers AUR 4

Comme vu dans cette page, la démarche de soumission diffère entre AUR 3 et AUR 4. Si vous n'avez pas envie de faire une migration manuelle de vos paquets, des scripts, proposés par certains utilisateurs, permettent de les migrer pour vous.

  • mkaur4 : migre à partir d'un répertoire .backup contenant tous les paquets
  • aur2git : télécharge et soumets vos paquets
  • import-to-aur4 : splitte un dépôt Git unique et récupère l'historique
Attention: Ces scripts ne sont pas officiellement supportés, l'utilisation est à vos risques.

Changer son pseudo sur AUR

Il est possible de changer son nom d'utilisateur sur AUR en allant sur AUR, puis «Mon compte», et changez votre nom dans le champ «Nom d'utilisateur:». Cela n'affectera pas le dépôt Git.

Pour changer son nom dans vos futurs commits sur le Git, deux méthodes sont possibles :

- Méthode par dépôt : placez-vous dans le dépôt cloné, et tapez :

git config user.name "Nouveau pseudo pour le dépôt"

- Méthode globale : cela affectera tous les dépôts Git (y compris ceux qui ne sont pas de AUR), on peut utiliser la commande suivante :

git config --global user.name "Nouveau pseudo global"

De plus, il est possible, mais ce n'est pas recommandé, de changer le pseudo de vos anciens commits sur le Git. Il faut d'abord se placer dans le dépôt en question, puis faites :

git filter-branch --env-filter 'export GIT_AUTHOR_EMAIL="votreadressemail@exemple.com";GIT_AUTHOR_NAME="Nouveau pseudo"'

Par la suite, pour que les modifications soient effectives sur le Git, il faudra forcer le push (la commande pour cette action est volontairement omise).

Retenir la passphrase pour ce terminal

Il est possible de ne pas retaper la passphrase grâce à l'agent SSH. On peut créer un alias couplé à une fonction dans le fichier de configuration de son shell (comme ~/.bashrc) qui ne demandera qu'une seule fois la phrase de passe, tel que celui-ci :

_git() {
	if [[ $1 == "push" ]]; then
		[[ -z $(pidof ssh-agent) ]] && eval $(ssh-agent)
		if [[ -n $(pidof ssh-agent) ]]; then
			ssh-add -l | grep -q ".ssh/id_rsa-aur" || (grep -q "url = ssh+git://aur@aur.archlinux.org/" "$(git rev-parse --show-toplevel)/.git/config" && ssh-add ~/.ssh/id_rsa-aur)
		else
			echo "L'agent SSH n'est pas en cours !"
		fi
	elif [[ $1 == "clone" ]]; then
		[[ -z $(pidof ssh-agent) ]] && eval $(ssh-agent)
		if [[ -n $(pidof ssh-agent) ]]; then
			ssh-add -l | grep -q ".ssh/id_rsa-aur" || (echo $2 | grep -q "ssh+git://aur@aur.archlinux.org/" && ssh-add ~/.ssh/id_rsa-aur)
		else
			echo "L'agent SSH n'est pas en cours !"
		fi
	fi

	git $@
 }

 _ssh() {
	if [[ $@ == *"aur.archlinux.org"* ]]; then
		ssh-add -l | grep -q ".ssh/id_rsa-aur" || ssh-add ~/.ssh/id_rsa-aur
	fi

	ssh $@
 }

 alias git='_git'
 alias ssh='_ssh'

Si votre clé n'est pas ~/.ssh/id_rsa-aur, adaptez ce script en conséquence (attention à ne pas ajouter des ~/ là où il n'y en a pas). Pour l'utilisation, ne changez rien à vos habitudes, la passphrase ne vous sera demandée qu'une seule fois.

Commandes possibles via SSH

Le serveur accepte certaines commandes via SSH. Une liste complète des commandes est accessible en exécutant la commande suivante :

ssh aur.archlinux.org help

FAQ

Q: Qu'est-ce qu'AUR ?

R: AUR est un endroit où la communauté Arch Linux peut téléverser (upload) le PKGBUILD des applications, bibliothèques, etc., et de ce fait le partager avec le reste de la communauté. Les utilisateurs enregistrés peuvent ensuite voter pour leurs applications favorites afin qu'elles soient éventuellement déplacés vers le dépôt [community].

Q: Qu'est-ce qu'un TU ?

R: Un Utilisateur de confiance est une personne choisie pour surveiller AUR et le dépôt [community], elle maintient ce dépôt ainsi qu'AUR.

Q: Combien de votes faut-il pour avoir un paquet déplacé vers [community] ?

R: Un minimum de 10 votes sont requis, néanmoins, si un TU veut maintenir un paquet, il le fera. De plus, certains paquets tels que les assistants AUR ne seront jamais déplacés dans [community].

Q: Comment faire un PKGBUILD ?

R: Le point de départ pourrait être la page PKGBUILD.

Q: Foo dans AUR est périmé ; je fais quoi ?

R: Pour commencer, vous pouvez le marquer comme étant périmé. S'il le reste pendant un long moment, vous pouvez envoyer un mail au mainteneur. S'il n'y a pas de réponse, vous pouvez envoyez un mail à la liste de diffusion aur-general (en anglais) afin qu'un TU le rende orphelin pour que vous puissiez le maintenir si tel est votre souhait.

Q: J'ai un PKGBUILD que je voudrais soumettre, quelqu'un peut-il le vérifier ?

R: En plus des outils tel que namcap, vous pouvez le poster sur le forum ou le proposer sur IRC ; de même vous pouvez le proposer à la liste de diffusion aur-general (en anglais).

Q: Foo dans AUR ne compile pas, que dois-je faire ?

R: Refaire les étapes, sans oublier de lire les commentaires sur sa page AUR et éventuellement laisser un commentaire au mainteneur.