Page 1 sur 1
[paquet] création d'un dépôt personnel
Publié : dim. 19 déc. 2010, 09:31
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
Re: [paquet] création d'un dépôt personnel
Publié : dim. 19 déc. 2010, 13:54
par benjarobin
Pourquoi ne pas faire tout simplement, makepkg puis yaourt -U tonpaquetCompilé.tar.xz
Re: [paquet] création d'un dépôt personnel
Publié : dim. 19 déc. 2010, 23:27
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?
Re: [paquet] création d'un dépôt personnel
Publié : dim. 19 déc. 2010, 23:35
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.
Re: [paquet] création d'un dépôt personnel
Publié : lun. 20 déc. 2010, 08:01
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
Re: [paquet] création d'un dépôt personnel
Publié : lun. 20 déc. 2010, 10:51
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:
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
En bref, c'est des outils, il faut juste tout faire coller ensemble :p
Re: [paquet] création d'un dépôt personnel
Publié : lun. 20 déc. 2010, 13:21
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é.
Re: [paquet] création d'un dépôt personnel
Publié : mar. 15 mai 2012, 22:57
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
Re: [paquet] création d'un dépôt personnel
Publié : mer. 16 mai 2012, 18:46
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
Re: [paquet] création d'un dépôt personnel
Publié : ven. 18 mai 2012, 08:30
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.
Re: [paquet] création d'un dépôt personnel
Publié : lun. 21 mai 2012, 21:12
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.
Re: [paquet] création d'un dépôt personnel
Publié : ven. 25 mai 2012, 21:02
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.