Local repository

Hello à tous,

J’essaye de me monter un repository local pour mes machines Debian Wheezy.
Je l’ai déjà fait pour mes machines CentOS, par contre Debian … Je ne comprends pas comment il marche et ce qu’il cherche lors des updates.
Mon Repository local CentOS est basé sur ce ftp.
On peut voir aussi un dossier debian, j’aimerai me baser sur celui-ci pour me créer mon repository local afin que mes Debian pointe sur mon repository local et non plus sur Internet.

Je ne comprends rien à l’arborescence dans ce dossier debian … Qu’est-ce que je dois synchroniser pour que mon repo local fonctionne ?
Soit j’ai loupé un truc, soit je ne comprends pas comment fonctionne la gestion des package pour Debian mais je trouve ça beaucoup plus compliqué que CentOS :119

Merci par avance à vous pour votre aide :wink:

Clikti,

Bonjour,

Je ne suis pas spécialiste, mais en gros il y a d’un côté un répertoire pool qui contient les paquets eux-même, et de l’autre un répertoire dist qui contient la liste des paquets de chaque branches/sections.

Si c’est pour faire un cache local des paquets, il y a apt-cacher-ng.

[edit] un petit lien vers le wiki

Tu peux utiliser apt-mirror qui fonctionne très bien. Voici un lien[1] sur mon blog qui t’expliquera comment le mettre en place.

[1]http://www.technoaddict.fr/index.php/2009/11/06/creer-son-miroir-local-ubuntu-et-debian/

Hello,
Merci pour cette réponse rapide.

Effectivement il y a un dossier pool avec une arborescence par lettre alphabétique, j’ai pas fouillé dedans mais ils semblerait bien qu’il y a les packages dedans.
Je vais voir ce qu’il se passe si je synchro le dossier “dists” et le dossier “pool”.

Ah oui j’ai oublié de dire :smiley: Pour ne pas simplifier la chose mon serveur qui me sert de repository est un CentOS lol donc ni de apt-cacher-ng ni de apt-mirror :stuck_out_tongue:

il existe debmirror pour faire des mirroirs locaux, cet outil permet d’éviter une mise à jour lors de la synchro et ne rappatrie que les modifications…

Je ne suis pas un pro en script, voici un petit exemple que j’utilise (récupéré sur le net) :

#! /bin/bash

#fichier de logs
fichier=/var/log/update-mirror.log

#Définition des variables pour Debian
hote="ftp.fr.debian.org"
racine="debian"
distribution="wheezy,wheezy-updates"
sections="main,contrib,non-free"
cible="/home/data/debian"

architecture="i386,amd64"
# Si le dépôt doit servi a  une installation de la distribution via un boot PXE, il faut ajouter
#« main/debian-installer » ▒~V~R|  « section ». ,squ
#sections="main,main/debian-installer,contrib,non-free"

#enregistrement d'un log
echo `date +"%Y-%m-%d %H:%M"` : lancement mise a jour >> $fichier

echo "synchro debian standard"
#Commande pour synchroniser le mirroir avec Debian
/usr/bin/debmirror -source -m --passive --method=http \
--diff=none --root=$racine --dist=$distribution --host=$hote \
--section=$sections --arch=$architecture $cible \
--getcontents --ignore-release-gpg


#enregistrement d'un log
echo `date +"%Y-%m-%d %H:%M"` : fin mise a jour >> $fichier

Hello

Je donne des news.
Etant donné que mon repository est un serveur CentOS je ne peux pas utiliser apt-mirror etc…
J’ai donc synchronisé les .deb contenant la string “_amd64”, j’ai également synchro le dossier “dists”.
Maintenant mon Debian arrive à installer des nouveaux packages qui sont donc sur mon repository local en CentOS.
Certains packages demandaient des librairies que je n’avais pas sur mon repo … Après check toutes les librairies terminait par “all.deb”, je synchronise donc les fichiers qui terminent par “all.deb”.

Maintenant mon repo fonctionne nickel chrome 8)

Soucis ? Oui, il fait 192Go :030 :030

Etant donné que j’ai syncro les packages terminant par “all.deb” je me retrouve avec des doublons. Exemple :
[ ] libmialm-dev_1.0.7-1_amd64.deb
[ ] libmialm-doc_1.0.7-1_all.deb

Quel est le moyen le plus simple d’après vous pour éviter ces doublons ?
Sachant que j’ai utilisé cette commande pour synchroniser mon repository :

rsync -avrt --include “/" --include "_amd64.deb” --include “all.deb" --exclude "rsync://mirror.netcologne.de/debian/pool/main/ /mon/repo/local

Je ne veux pas faire un script qui supprime ces doublons, je veux vraiment éviter de les télécharger car la pour l’instant c’est du test … Mais lorsque je ferai le repository en prod je ne voudrai pas télécharger ces doublons.

Edit :
J’ai également plusieurs versions :
kadu_0.11.2-1_amd64.deb
kadu_0.12.3-2_amd64.deb

Je m’en fou des anciennes … Idem, comment je pourrai synchro que les derniers packages ?

il semblerait qu’il ne soit pas trop difficile de faire marcher deb-mirror sur centOs :slightly_smiling:
http://sjoeboo.github.io/blog/2012/01/26/mirroring-ubuntu-on-centos/
ce serait dommage de s’en priver sachant que tu peux définir facilement ce que tu veux récupérer dans ton mirroir :smiley:

Ha ouais pas bête ton lien !
Etant sous CentOS je me suis même pas posé la question si c’était faisable ou pas :smiley:

souvent quand c’est du script ou un outil bien codé, c’est portable d’un OS à l’autre…

Juste pour faire remonter l’info que ça à l’air de fonctionner debmirror sous CentOS :slightly_smiling:
Je suis en train de synchroniser les sources.

Il faut faire gaffe à son article car dans son script il a fait une erreur ligne 9 et 22, son nom de variable n’est pas identique (“outpath” ligne 9 et “outPath” ligne 22) mais sinon c’est nickel :wink:

Merci :023

ok ça roule, tu peux mettre la coche résolu si c’est bon pour toi ?

Yes c’est tout bon :slightly_smiling:
“ça va” le repo fait 50Go, c’est plus ou moins acceptable :slightly_smiling:

Ton lien d’avant est nickel sauf qu’il faut faire gaffe au P majuscule ligne 22 alors qu’il est minuscule ligne 9 comme dit précédemment.
Ainsi que l’install de Net::INET6Glue, j’avais une erreur (me souvient plus laquelle exactement) et j’ai résolu en faisant comme ça.

Thanks :023