« AUR » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Aucun résumé des modifications |
|||
Ligne 6 : | Ligne 6 : | ||
= Installation d'un paquet depuis AUR = | = Installation d'un paquet depuis AUR = | ||
<kode lang=bash> | <kode lang=bash> | ||
# la méthode la plus simple est l'utilisation de | # 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 | # sinon téléchargez l'archive *.tar.gz et extraire son contenu | ||
Ligne 17 : | Ligne 17 : | ||
</kode> | </kode> | ||
{{info | Les fichiers temporaires se trouvent dans <tt>/tmp/yaourt-tmp-[UTILISATEUR]/[PAQUET]</tt>}} | {{info | Les fichiers temporaires se trouvent dans <tt>/tmp/yaourt-tmp-[UTILISATEUR]/[PAQUET]</tt>}} | ||
[[ | [[Yay]] | ||
= [https://wiki.archlinux.org/index.php/Creating_Packages Création d'un paquet] = | = [https://wiki.archlinux.org/index.php/Creating_Packages Création d'un paquet] = |
Version du 29 mars 2020 à 02:32
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 } |