[pacman] Dépôt local
[pacman] Dépôt local
Bonsoir à tous.
Afin d'alimenter mes machines en mises à jour, je souhaite mettre en place un dépôt local, c'est un disque dur externe branché sur le réseau.
Existe-t-il un guide permettant de faire cela grâce à pacman (ou autre) ?
Car pour l'instant j'ai télécharger via wget les paquets de core et extra, et confectionné un petit script gérant la mise à jour des deux dépôts, mais lorsque je mets à jour mes dépôts, et qu'ensuite je lance un pacman -Suy sur une de mes machines, il ne repère pas que le dépôt a été mis à jour.
Une petite idée ? Merci bonne soirée !
Afin d'alimenter mes machines en mises à jour, je souhaite mettre en place un dépôt local, c'est un disque dur externe branché sur le réseau.
Existe-t-il un guide permettant de faire cela grâce à pacman (ou autre) ?
Car pour l'instant j'ai télécharger via wget les paquets de core et extra, et confectionné un petit script gérant la mise à jour des deux dépôts, mais lorsque je mets à jour mes dépôts, et qu'ensuite je lance un pacman -Suy sur une de mes machines, il ne repère pas que le dépôt a été mis à jour.
Une petite idée ? Merci bonne soirée !
Dernière modification par Soulou le jeu. 30 avr. 2009, 17:58, modifié 3 fois.
Re: Dépôt local
Bonjour,
ajoute dans ton pacman.conf:
ajoute dans ton pacman.conf:
Code : Tout sélectionner
gksu gedit /etc/pacman.conf
Code : Tout sélectionner
[nomdudepot]
#64bits
Server = http://tonreseau/x86_64/
#32bits
Server = http://tonreseau/i686/
Re: Dépôt local
Merci,
Mais concernant la configuration du choix des serveur de pacman je suis bon.
Je ne les ai pas encore mis sur le réseau, mais pour la machine qui s'occupe de tester, j'ai :
file:///empl/ace/ment/
Ainsi lorsque je lance un pacman -Suy, ça marche parfaitement bien, il charge les dépôts, extra et core à 2OMo/s, normal plus ou moins pour un disque dur ^^. Si il y a des installations à faire, il les fait, mais en ce qui concerne la mise à jour du dépôt lui même, ce qui va dans /var/lib/pacman/sync, c'est bof . Il ne repère pas tout le temps qu'il y a de nouveaux paquets.
Mais concernant la configuration du choix des serveur de pacman je suis bon.
Je ne les ai pas encore mis sur le réseau, mais pour la machine qui s'occupe de tester, j'ai :
file:///empl/ace/ment/
Ainsi lorsque je lance un pacman -Suy, ça marche parfaitement bien, il charge les dépôts, extra et core à 2OMo/s, normal plus ou moins pour un disque dur ^^. Si il y a des installations à faire, il les fait, mais en ce qui concerne la mise à jour du dépôt lui même, ce qui va dans /var/lib/pacman/sync, c'est bof . Il ne repère pas tout le temps qu'il y a de nouveaux paquets.
Re: Dépôt local
tu peux utiliser repo-add pour créer une base locale, et la mettre à disposition des autres machines.
(commande à lancer dans ton dossier dépot, de mémoire : repo-add nomdetondepot.tar.gz *pkg* )
(edit : c'est repo-add, pas repo_add)
(commande à lancer dans ton dossier dépot, de mémoire : repo-add nomdetondepot.tar.gz *pkg* )
(edit : c'est repo-add, pas repo_add)
Dernière modification par farvardin le jeu. 30 avr. 2009, 11:12, modifié 1 fois.
Re: Dépôt local
Bonjour,
avec ce script tu le places directement sur le disque dur, ou tu as mis tes paquets, j'ai crée un dépot sur ma clé usb , tous les paquets sont dans la racine de la clé, je lance le script qui efface le $NOM_DEPOT.db.tar.gz présent sur la clé et en crée un nouveau, après si tu as ajouté ton disque dur comme dépot , il suffit d'actualiser pacman.
Il y a une interface graphique: zenity.
avec ce script tu le places directement sur le disque dur, ou tu as mis tes paquets, j'ai crée un dépot sur ma clé usb , tous les paquets sont dans la racine de la clé, je lance le script qui efface le $NOM_DEPOT.db.tar.gz présent sur la clé et en crée un nouveau, après si tu as ajouté ton disque dur comme dépot , il suffit d'actualiser pacman.
Il y a une interface graphique: zenity.
Code : Tout sélectionner
#!/bin/bash
# dependances : zenity
lancement()
{
echo "Lancement du script"
## Analyse 2 vérifications ##
NOM_SCRIPT="$(basename $0)"
CHEMIN_SCRIPT="$(dirname $0)"
NOM_DEPOT=DEPOT_EEEPC
cd $CHEMIN_SCRIPT
rm ./*.db.tar.gz
repo-add $CHEMIN_SCRIPT/$NOM_DEPOT.db.tar.gz $CHEMIN_SCRIPT/*.pkg.tar.gz
echo "Script fini"
}
(echo ""; lancement) | zenity --progress --title "Depot" --text="création du $NOM_DEPOT.db.tar.gz en cours" --pulsate
## Si on clic sur Annuler...
if [ $? -ne 0 ]
then
exit 0
fi
zenity --question --title "Depot" --text "$@ \
création du $NOM_DEPOT.db.tar.gz terminé ."
## Si on clic sur Annuler...
if [ $? -ne 0 ]
then
exit 0
fi
Re: [pacman] Dépôt local
Merci beaucoup, je ne m'attendais pas à un script tout fait, je voulais le confectionner, mais ça me va bien, c'est du travail en moins.
Je vais tout de suite tester ça ! Merci
Edit: Merci beaucoup, je ne connaissais pas repo-add, maintenant c'est ok, les bases de données se font comme il faut. Mais je viens de m'apercevoir que je n'en n'ai pas l'utilité, il faut juste que je dise de télécharger le core.db.tar.gz, qui lui ne change pas de nom, c'est pour ça qu'il ne se met pas à jour avec wget (qui se réfère aux nom de fichiers)
Maintenant je cherche à nettoyer le mirroir, par exemple lorsque j'ai :
- firefox-3.0.9-1.pkg.tar.gz
- firefox-3.0.10.pkg.tar.gz
Pouvoir enlever le plus vieux. Merci bien.
Je vais tout de suite tester ça ! Merci
Edit: Merci beaucoup, je ne connaissais pas repo-add, maintenant c'est ok, les bases de données se font comme il faut. Mais je viens de m'apercevoir que je n'en n'ai pas l'utilité, il faut juste que je dise de télécharger le core.db.tar.gz, qui lui ne change pas de nom, c'est pour ça qu'il ne se met pas à jour avec wget (qui se réfère aux nom de fichiers)
Maintenant je cherche à nettoyer le mirroir, par exemple lorsque j'ai :
- firefox-3.0.9-1.pkg.tar.gz
- firefox-3.0.10.pkg.tar.gz
Pouvoir enlever le plus vieux. Merci bien.
- mélodie
- Maître du Kyudo
- Messages : 2784
- Inscription : lun. 30 oct. 2006, 02:06
- Localisation : Pyrénées
Re: [pacman] Dépôt local
Bonjour,Soulou a écrit : Maintenant je cherche à nettoyer le mirroir, par exemple lorsque j'ai :
- firefox-3.0.9-1.pkg.tar.gz
- firefox-3.0.10.pkg.tar.gz
Pouvoir enlever le plus vieux. Merci bien.
man pacman a écrit : -c, --clean
Remove packages that are no longer installed from the cache as well
as currently unused sync databases to free up disk space. When
pacman downloads packages, it saves them in a cache directory. In
addition, databases are saved for every sync DB you download from,
and are not deleted even if they are removed from the configuration
file linkman:pacman.conf[5]. Use one --clean switch to only remove
packages that are no longer installed; use two to remove all
packages from the cache. In both cases, you will have a yes or no
option to remove packages and/or unused downloaded databases.
If you use a network shared cache,see the CleanMethod option in
linkman:pacman.conf[5].
Re: [pacman] Dépôt local
En fait , mélodie avec la commande pacman -Sc,
il nettoye le cache des anciennes versions de paquet? c'est bon à savoir
il nettoye le cache des anciennes versions de paquet? c'est bon à savoir

Re: [pacman] Dépôt local
Merci,
je connais pacman -Sc pour nettoyer le cache de mes machines, mais concernant mon mirroir local, la question est là, un script télécharge les paquets individuellement de core et extra, mais les paquets s'accumule dans mon dépôt, je cherche donc à nettoyer celui-ci et non ma machine ^^
Bonne journée !
je connais pacman -Sc pour nettoyer le cache de mes machines, mais concernant mon mirroir local, la question est là, un script télécharge les paquets individuellement de core et extra, mais les paquets s'accumule dans mon dépôt, je cherche donc à nettoyer celui-ci et non ma machine ^^
Bonne journée !
Re: [pacman] Dépôt local
Je sais ce que tu recherches c'est pareil je cherche comme toi
,en faite,tu mets tous tes paquets dans le cache (/var/cache/pacman/pkg) tu efface le dépot , tu lance la commande pour qu'il supprime les version différentes et tu recopies la totalité des paquets dans ton dépot.
ou à l'ancienne à la main

ou à l'ancienne à la main

Re: [pacman] Dépôt local
J'ai une solution sinon,
/etc/pacman.conf
Il suffit de décommenter et de mettre l'emplacement du dépot, ce qui remplacera alors l'emplacement d'origine.
Merci beaucoup pour vos réponses ! Si tu as du nouveau je prends, car c'est bien beau de bidouiller, faire quelque chose de propre c'est plus sympa je trouve.
BOnne continuation
Edit : mais ce n'est pas une si bonne solution, puisque la commande efface tous les paquets qui ne sont pas installé sur la machine lançant la commande, or je souhaite effacé tous les paquets qui ne sont pas dans la database <_<
/etc/pacman.conf
Code : Tout sélectionner
#CacheDir = /var/cache/pacman/pkg/
Merci beaucoup pour vos réponses ! Si tu as du nouveau je prends, car c'est bien beau de bidouiller, faire quelque chose de propre c'est plus sympa je trouve.
BOnne continuation
Edit : mais ce n'est pas une si bonne solution, puisque la commande efface tous les paquets qui ne sont pas installé sur la machine lançant la commande, or je souhaite effacé tous les paquets qui ne sont pas dans la database <_<