[paquet] création d'un dépôt personnel

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
gilles74
Hankyu
Messages : 30
Inscription : dim. 19 déc. 2010, 09:15

[paquet] création d'un dépôt personnel

Message par gilles74 »

bonjour,

j'ai créé un dépôt personnel pour y mettre les paquets que je souhaite compiler à partir des sources. Tout cela fonctionne parfaitement mais le processus de mise à jour est un peu complexe puisqu'il me faut lancer un makepkg, puis transférer mon paquet dans mon dépôt, mettre à jour le dépôt et enfin installer la mise à jour.
Existe-t-il une autre méthode plus simple pour faire cette mise à jour?

PS J'ai essayé avec yaourt -Sb, il voit mon paquet-git, mais il lui manque le mondepot.abs.tar.gz
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17235
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [paquet] création d'un dépôt personnel

Message par benjarobin »

Pourquoi ne pas faire tout simplement, makepkg puis yaourt -U tonpaquetCompilé.tar.xz
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
gilles74
Hankyu
Messages : 30
Inscription : dim. 19 déc. 2010, 09:15

Re: [paquet] création d'un dépôt personnel

Message par gilles74 »

C'est effectivement la solution si on installe sur une machine mais je crée un dépôt parce que j'ai plusieurs machines à installer et une volonté de faire profiter de mon travail la communauté de passionnés de ce logiciel.
Je peux distribuer soit des binaires soit des pkbuild, mais je ne sais pas construire un dépôt type aur avec des pkbuild
Quelle solution me recommandez-vous?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17235
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [paquet] création d'un dépôt personnel

Message par benjarobin »

Je crains que cela ne soit pas possible de dire à yaourt d'utiliser un autre serveur que AUR. Je crois que c'est hard coded.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
gilles74
Hankyu
Messages : 30
Inscription : dim. 19 déc. 2010, 09:15

Re: [paquet] création d'un dépôt personnel

Message par gilles74 »

Il n'y a donc pas d'autre solution, tant pis. Je vais mettre en place une tache cron pour générer une version binaire régulierement
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [paquet] création d'un dépôt personnel

Message par tuxce »

gilles74 a écrit :puisqu'il me faut lancer un makepkg, puis transférer mon paquet dans mon dépôt, mettre à jour le dépôt et enfin installer la mise à jour.
avec un:

Code : Tout sélectionner

PKGDEST=/chemin/vers/depot makepkg -si
tu t'économises le transfert du paquet et l'install à la fin

un:

Code : Tout sélectionner

cd /chemin/vers/depot
while inotifywait -qe close .; do
  repo-add depot.db.tar.gz *.pkg.xz
done
devrait faire l'affaire pour un cron.
gilles74 a écrit : PS J'ai essayé avec yaourt -Sb, il voit mon paquet-git, mais il lui manque le mondepot.abs.tar.gz
on utilise ce script:

Code : Tout sélectionner

#!/bin/bash -e

REP_PKG=/chemin/depot
REP_PKGBUILD=/chemin/pkgbuild
ARCH=(i686 x86_64)
REPO=nomdepot

tmpdir="$(mktemp -d)"
trap 'rm -r "$tmpdir"' 0

cd "$tmpdir"
mkdir "$REPO"
bsdtar cf "$REPO.abs.tar" "$REPO"
for arch in "${ARCH[@]}"; do
        mkdir db
        cd db
        bsdtar -xf $REP_PKG/$arch/$REPO.db.tar.gz
        for pkg in *; do 
                [[ -d $pkg ]] || continue
                pkgname=${pkg%-*-*}
                pkgbase=$(sed -n '/%BASE%/,/^$/ { /^[^%]/p}' $pkg/desc )
                [[ $pkgbase ]] && pkgname=$pkgbase
                [[ -d "$REP_PKGBUILD/$pkgname" ]] || continue
                cp -R "$REP_PKGBUILD/$pkgname" "$tmpdir/$REPO" 
                bsdtar -C "$tmpdir" -uf "$tmpdir/$REPO.abs.tar" "$REPO/$pkgname"
        done
        cd ..
        rm -r db
done
gzip "$REPO.abs.tar"
cp "$REPO.abs.tar.gz" "$REP_PKG/any"
cd "$REP_PKG"
for arch in "${ARCH[@]}"; do
        (cd $arch; ln -sf ../any/"$REPO.abs.tar.gz" .)
done
pour générer le abs.tar.gz sur [archlinuxfr]

Si tu l'utilises après chaque "repo-add", un yaourt bien configuré peut te faciliter la tâche, il faut définir:

Code : Tout sélectionner

# pour makepkg
SRCPKGDEST=répertoire des pkgbuild
PKGDEST=répertoire du dépôt
# pour yaourt
EXPORT=1
EXPORTSRC=1
(yaourt exporte le pkgbuild + les sources téléchargées dans $SRCPKGDEST sous forme .tar.gz, il faudra donc modifier le script pour les décompresser avant)

Si les pkgbuild concernent des versions git/svn/etc... il suffit de générer le *.abs.* seulement à chaque modif majeure, makepkg permet de faire la mise à jour en auto des versions de dev et yaourt permet de garder le pkgbuild d'une compil à l'autre

Code : Tout sélectionner

DEVELBUILDDIR="rep ou stocker les copies de travail"
En bref, c'est des outils, il faut juste tout faire coller ensemble :p
gilles74
Hankyu
Messages : 30
Inscription : dim. 19 déc. 2010, 09:15

Re: [paquet] création d'un dépôt personnel

Message par gilles74 »

Super! merci pour tous ces précisions, je vais pouvoir faire avancer mon projet.
Je reviens vers vous dès que j'aurai tout digéré.
gilles74
Hankyu
Messages : 30
Inscription : dim. 19 déc. 2010, 09:15

Re: [paquet] création d'un dépôt personnel

Message par gilles74 »

bonjour,

j'ai mis en place mon dépot mais je me pose une question

est-il possible de faire un dépot du type AUR c'est à dire avec des pkgbuild tarball ou des répertoires avec un pkgbuild ? afin que le "client" compile le paquet plutôt que d'avoir des binaires

merci pour votre aide
Avatar de l’utilisateur
tyctyc
Hankyu
Messages : 46
Inscription : mer. 18 janv. 2012, 14:27

Re: [paquet] création d'un dépôt personnel

Message par tyctyc »

Il y a le AUR d'Arch qui et la pour sa! pas la peine de refaire la même chose alors que tu déjà un dépôt AUR a disposition
Avatar de l’utilisateur
Nic0
Chu Ko Nu
Messages : 454
Inscription : dim. 11 janv. 2009, 03:16
Localisation : Calvados (14)

Re: [paquet] création d'un dépôt personnel

Message par Nic0 »

Salut gilles74,

Je pense que tu devrais regarder du côté d'ABS: https://wiki.archlinux.org/index.php/ABS
Mais je connais pas trop le sujet, c'est plus une piste qu'une réponse.
~ Yet Another DevOps Blog ~
gilles74
Hankyu
Messages : 30
Inscription : dim. 19 déc. 2010, 09:15

Re: [paquet] création d'un dépôt personnel

Message par gilles74 »

tyctyc : oui effectivement AUR est là pour ça , sauf que mes paquets sont franco français et avec très peu d'utilisateur (10 téléchargemements par an). Il n'est toutefois pas exclu que certains paquets soient postés sur AUR

Nic0 : oui j'ai déjà parcouru ce document mais il n'y a rien sur la création de dépot, ça semble un sujet tabou.

Le plus simple est de créer un espace de téléchargement puis d'utiliser makepkg mais je souhaite utiliser yaourt pour faire la recherche d'un paquet.
Avatar de l’utilisateur
Rolinh
Chu Ko Nu
Messages : 392
Inscription : sam. 15 août 2009, 09:15
Localisation : Suisse

Re: [paquet] création d'un dépôt personnel

Message par Rolinh »

Salut,

je maintenais un dépôt personnel pendant un temps et je m'étais écrit quelques scripts afin de me faciliter la tâche (ajout d'un paquet dans i686, x86_64 et any et synchronisation avec le serveur distant via rsync à travers ssh).
Si ça t'intéresse, je peux te passer tout ça.
Répondre