Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/01/2006, à 14:59

GiGi

Comment créer un mirroir Ubuntu?

Bonjour tout le monde,

C'est non sans emotions que je vous fait part de mon premier post sur ubuntu-fr wink.

Je m'adresse à vous au nom de la classe de BTS Informatique de Gestion du CFA de Blagnac (près de Toulouse): pour plus de confort de travail et decouvrir le merveilleux cool monde de linux, nous avons installés Ubuntu 5.10 sur tout nos postes (une vingtaine), le problème c'est que les installations de paquets et les mises à jour sont extreemmmeemmeeennnt loonngues vue les debits pharamineux de notre connection (environ 2Mo en download les bons jours;)).

Nous avons donc pensés mettre en place un mirroir des sources de paquets, ansi, seul le serveur mirroir télechargerai les paquets, et nous les recupererions via le reseau local, ca genererai 20 fois moins de traffic vers l'exterieur, et autant de temps perdu à attendre en moins!

Malgré nos recherches, nous n'avons trouvés nul par d'infos sur la mise en place d'un mirroir pour Ubuntu. Quelqu'un aurai-t-il des infos à nous faire paratager?

Merci d'avance pour votre aide! ++

Hors ligne

#2 Le 26/01/2006, à 15:24

nerve

Re : Comment créer un mirroir Ubuntu?

Bienvenu !!!

Bon article sur la mise en place d'un miroir de paquet :

http://www.andesi.org/index.php?node=27


Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne

#3 Le 04/05/2006, à 09:57

Tarpan

Re : Comment créer un mirroir Ubuntu?

Bonjour à tous,

Et merci à la communauté Ubuntu pour leur fabuleux travail! ;-)

Nous essayons également de mettre en place un miroir local de paquets.
Je suis tombé sur un joli script utilisant debmirror... Il me semble correct...
Le voici :

#!/bin/sh

#Quelques Variables à adapter eventuellement :

DESTINATION=/mirrors/ubuntu
SERVEURSOURCE=be.archive.ubuntu.com
DIST=ubuntu
VERSION=breezy
ARCH=i386
IGNOREGPG=1

METHOD=rsync
#METHOD=ftp
#METHOD=http

#SECTIONS=main
#SECTIONS=main,restricted
#SECTIONS=main,restricted,multiverse
SECTIONS=main,restricted,multiverse,universe

#Synchroniser quoi ?
MIRROR_DIST=1
MIRROR_SECURITY=1
MIRROR_UPDATES=1
MIRROR_BACKPORTS=1

# On ne devrait pas avoir à editer la suite
STARTTIME=`date '+%d-%m-%y %H:%M:%S'`
if [ "$METHOD" == "rsync" ]; then SPECRSYNC=: ; else SPECRSYNC="" ; fi
if [ $IGNOREGPG -eq 1 ]; then GPG="--ignore-release-gpg " ; else GPG="" ; fi

echo "Creation/Update d'un miroir $DIST $VERSION $ARCH vers $DESTINATION"

if [ $MIRROR_DIST -eq 1 ]; then
echo "============================================================"
echo "Miroir de $DIST $VERSION vers $DESTINATION"
echo "============================================================"
debmirror $DESTINATION --host=$SERVEURSOURCE $GPG\
--arch=$ARCH --nosource --method=$METHOD \
--root=$SPECRSYNC$DIST \
--dist=$VERSION \
--section=$SECTIONS \
--getcontents \
--cleanup \
--progress
fi

if [ $MIRROR_SECURITY -eq 1 ]; then
echo "============================================================"
echo "Miroir de $VERSION-security vers $DESTINATION/security"
echo "============================================================"
debmirror $DESTINATION/security --host=security.ubuntu.com $GPG\
--arch=$ARCH --nosource --method=$METHOD \
--root=$SPECRSYNC$DIST \
--dist=$VERSION-security \
--section=$SECTIONS \
--getcontents \
--cleanup \
--progress
fi

if [ $MIRROR_UPDATES -eq 1 ]; then
echo "============================================================"
echo "Miroir de $VERSION-updates vers $DESTINATION/updates"
echo "============================================================"
debmirror $DESTINATION/updates --host=$SERVEURSOURCE $GPG\
--arch=$ARCH --nosource --method=$METHOD \
--root=$SPECRSYNC$DIST \
--dist=$VERSION-updates \
--section=$SECTIONS \
--getcontents \
--cleanup \
--progress
fi

if [ $MIRROR_BACKPORTS -eq 1 ]; then
echo "============================================================"
echo "Miroir de $VERSION-backports vers $DESTINATION/backports"
echo "============================================================"
debmirror $DESTINATION/backports --host=$SERVEURSOURCE $GPG\
--arch=$ARCH --nosource --method=$METHOD \
--root=$SPECRSYNC$DIST \
--dist=$VERSION-backports \
--section=$SECTIONS \
--getcontents \
--cleanup \
--progress
fi

echo "============================================================"
echo Debut de la synchronisation du miroir : $STARTTIME
echo Fin de la synchronisation du miroir   : `date '+%d-%m-%y %H:%M:%S'`

echo .
APTSECTIONS=`echo $SECTIONS | sed 's/,/ /g'`
LOCALIP=`ifconfig eth0|grep "inet "|cut -d ":" -f 2|cut -d " " -f 1`

echo Pour utiliser ce miroir, $DESTINATION doit etre accessible via http://localhost/$DIST
echo "(Depots deb suivants à ajouter dans /etc/apt/sources.list)"

if [ $MIRROR_DIST -eq 1 ]; then
echo deb http://$LOCALIP/$DIST/ $VERSION $APTSECTIONS
fi

echo "============================================================"
echo Debut de la synchronisation du miroir : $STARTTIME
echo Fin de la synchronisation du miroir   : `date '+%d-%m-%y %H:%M:%S'`

echo .
APTSECTIONS=`echo $SECTIONS | sed 's/,/ /g'`
LOCALIP=`ifconfig eth0|grep "inet "|cut -d ":" -f 2|cut -d " " -f 1`

echo Pour utiliser ce miroir, $DESTINATION doit etre accessible via http://localhost/$DIST
echo "(Depots deb suivants à ajouter dans /etc/apt/sources.list)"

if [ $MIRROR_DIST -eq 1 ]; then
echo deb http://$LOCALIP/$DIST/ $VERSION $APTSECTIONS
fi

if [ $MIRROR_SECURITY -eq 1 ]; then
echo deb http://$LOCALIP/$DIST/security/ $VERSION-security $APTSECTIONS
fi

if [ $MIRROR_UPDATES -eq 1 ]; then
echo deb http://$LOCALIP/$DIST/updates/ $VERSION-updates $APTSECTIONS
fi

if [ $MIRROR_BACKPORTS -eq 1 ]; then
echo deb http://$LOCALIP/$DIST/backports/ $VERSION-backports $APTSECTIONS
fi

echo "============================================================"
echo Taille des depots :
for el in `ls -1p $DESTINATION |grep /` ; do du -s --block-size=M
$DESTINATION/$el ; done
echo "============================================================"
#echo Details :
#for el in `ls -1p $DESTINATION/dist/ |grep /` ; do du -s --block-size=M $DESTINATION/$el ; done
#for el in `ls -1p $DESTINATION/security/ |grep /` ; do du -s --block-size=M $DESTINATION/security/$el ; done
#for el in `ls -1p $DESTINATION/updates/ |grep /` ; do du -s --block-size=M $DESTINATION/updates/$el ; done
#for el in `ls -1p $DESTINATION/backports/ |grep /` ; do du -s --block-size=M $DESTINATION/backports/$el ; done
#echo "============================================================"

Il n'est pas très compliqué à comprendre si on connaît un peu les options de debmirror...

Cependant, après avoir lancé ce script, j'obtiens un miroir de + ou - 12Go...
Mais les paquets sont tous regroupés dans le répertoire pool/main... ou en tout cas, c'est ce qu'il me semble...

Mon arborescence ne me semble pas compète, puisqu'il me manque les répertoires :
restricted, multiverse et universe...

Quelqu'un pourrait-il me renseigner? Cela me paraît pour le moins étrange?

Merci.
Tarpan.

La connaissance appartient à tout le monde!


MacBook Ubuntu 10.10
Gnome | Docky >> Openbox | Adeskbar

Hors ligne

#4 Le 28/05/2007, à 12:11

footware

Re : Comment créer un mirroir Ubuntu?

S@lut !

Je tombe sur ce fil par hasard (donc probablement en retard hmm).

Tarpan a écrit :

Mais les paquets sont tous regroupés dans le répertoire pool/main... ou en tout cas, c'est ce qu'il me semble...

Çà c'est normal : les paquets sont tous réunis dans ce répertoire.
Ce sont les fichiers "Packages*" qui définissent les paquets présents dans "pool/*" devant être associés à la version de la distribution.

Tarpan a écrit :

Mon arborescence ne me semble pas compète, puisqu'il me manque les répertoires :
restricted, multiverse et universe...

Effectivement, je me suis inspiré aussi de ce script et j'ai eu le même problème.
Par défaut, Debmirror utilise l'option "--clean" : ce qui veut dire qu'à chaque mise à jour, les paquets n'appartenant pas à la version choisie sont effacés.
Dans ton cas, tu n'as normalement plus que les paquets correspondants aux "backports universe" en fin d'exécution du script.
J'y ais remédié en rajoutant l'option "--noclean" dans chaque miroir. Inconvénient : le miroir local augmente au fur et à mesure des mises à jour (j'en suis à 30Go pour Edgy + Feisty).

@++

Dernière modification par footware (Le 28/05/2007, à 12:34)


Mieux vaut porter sa croix que trainer son boulet : au bout du chemin la croix a son utilité.

Hors ligne