AUR
De Banane Atomic
Aller à la navigationAller à la recherche
Description
Arch User Repository est un dépôt de fichiers PKGBUILD maintenu par les utilisateurs.
Pour les dépôt contenant des fichiers binaires voir Unofficial User Repositories
Installation d'un paquet depuis AUR
# la méthode la plus simple est l'utilisation de yay yay paquet_à_installer # sinon téléchargez l'archive *.tar.gz et extraire son contenu # installation des dépendances et création du fichier *.pkg.tar.xz makepkg -s # installez le paquet sudo pacman -U *.pkg.tar.xz |
Les fichiers temporaires se trouvent dans /tmp/yaourt-tmp-[UTILISATEUR]/[PAQUET] |
Création d'un paquet
PKGBUILD
PKGBUILD |
# Maintainer: name <email@email.fr> # Contributor: name <email@email.fr> pkgname="nom du programme" pkgver=1.0.0 # version du programme pkgrel=1 # version du paquet pkgdesc="Description" # pour un paquet sans architecture (scripts, fonts, themes) → 'any' # pour un paquet qui peut être compilé dans les deux architectures → 'i686' 'x86_64' arch=('i686' 'x86_64' 'any') url="http://www.fr" license=('GPL3') # doit exister dans /usr/share/licenses/common/ # dépendances nécessaire depends=('pkg1' 'pkg2') # dépendances pour la compilation makedepends=('pkg1' 'pkg2') options=(!strip !emptydirs) # script d'installation install=gartoon-redux.install # liste des fichiers à ne pas écraser lors de l'installation, ils seront installés avec l'extension *.pacnew backup=('usr/share/mime/packages/Override.xml') # liste des url des fichiers à télécharger et liste des noms de fichiers locaux source=("http://www.fr/$pkgname-$pkgver.tar.gz" "fichier local.ext") md5sums=() # updpkgsums permet de remplir ce champs md5sums=(SKIP) # pas de vérification # ne pas compresser le paquet en .pkg.tar.xz PKGEXT=".pkg.tar" prepare() { # patch } # Compile le programme et créé le dossier pkg build() { cd "$srcdir/$pkgname-$pkgver" make } package() { install -Dm 644 "$srcdir/$pkgname-$pkgver/$pkgname" "$pkgdir/usr/bin/$pkgname" } |
Prototype : /usr/share/pacman/PKGBUILD.proto
Variables de chemin :
- srcdir : chemin absolu vers le dossier contenant les sources. Normalement src.
- pkgdir : chemin absolu vers le dossier contenant les fichiers à installer. Normalement pkg.
- startdir : chemin absolu vers le dossier courant.
Variables
- depends : paquets qui doivent être installés pour que le programme fonctionne.
depends=('mono>=2.6.7') - makedepends : paquets qui doivent être installés pour construire le programme mais inutile à son fonctionnement
- Remplacer les _ par des - pour $pkgver : ${pkgver/_/-}
- $CARCH : arch
- options: default: OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)
A negated option will do the opposite of the comments below.- strip: Strip symbols from binaries/libraries
- docs: Save doc directories specified by DOC_DIRS
- libtool: Leave libtool (.la) files in packages
- staticlibs: Leave static library (.a) files in packages
- emptydirs: Leave empty directories in packages
- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
- purge: Remove files specified by PURGE_TARGETS
- upx: Compress binary executable files using UPX
- optipng: Optimize PNG images with optipng
- debug: Add debugging flags as specified in DEBUG_* variables
Commande install
# Créé au besoin /chemin install -d /chemin # copie /chemin/fichier.ext vers /destination/fichier.ext et créé au besoin /destination install -D /chemin/fichier.ext /destination/fichier.ext # copie /chemin/fichier.ext vers /destination/fichier.ext change les droits d'accès au fichier install -m 644 /chemin/fichier.ext /destination/fichier.ext # créé un nouveau fichier et change les droits d'accès au fichier install -m 666 /dev/null /destination/fichier.ext |
Pas de copie récursive avec « install », utiliser plutôt « cp -R » |
Modifier PATH
PKGBUILD |
install -D -m 755 /dev/null "$pkgdir/etc/profile.d/MonPaquet.sh" echo '#!/bin/sh -f export PATH=/chemin:${PATH}' > "$pkgdir/etc/profile.d/MonPaquet.sh" |
Fichier .install
On doit y faire référence dans le fichier PKGBUILD
PKGBUILD |
install=paquet.install |
paquet.install |
post_install() { # lancez des commandes avec root echo 'Affichez du texte' } post_upgrade() { # réutilisation des commandes de post_install post_install } post_remove() { /bin/true } |
Création de l'archive
# création d'un fichier tar.gz makepkg -S |
Test
# installer namcap sudo pacman -S namcap # tester le fichier PKGBUILD namcap PKGBUILD # tester le fichier *.pkg.tar.xz namcap *.pkg.tar.xz |
Envoyer un paquet
Clé SSH
- Créer des clés SSH au besoin
- Se connecter à son compte sur le site AUR → My Account → SSH Public Key
- Remplir avec le contenu de la clé SSH publique ~/.ssh/id_rsa.pub
Création / mise à jour
git clone ssh://aur@aur.archlinux.org/<Nom du Paquet>.git # créer ou mettre à jour SRCINFO mksrcinfo # fournit dans le paquet pkgbuild-introspection # ajout de nouveaux fichiers git add PKGBUILD .SRCINFO # commit avec message git commit -m 'Initial import' # envoie des modifications au serveur AUR git push origin master |
Déployer un fichier *.desktop
PKGBUILD |
install=paquet.install source=(... paquet.desktop paquet.png) package() { ... install -Dm 644 "$srcdir/paquet.desktop" "$pkgdir/usr/share/applications/paquet.desktop" install -Dm 644 "$srcdir/paquet.png" "$pkgdir/usr/share/pixmaps/paquet.png" } |
paquet.install |
post_install() { post_upgrade } post_upgrade() { update-desktop-database -q } |