Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
tutoriel:creer_un_miroir_de_depot_local [Le 07/06/2015, 12:50]
L'Africain suppression voir https://doc.ubuntu-fr.org/tutoriel/creer_un_miroir_de_depot
— (Version actuelle)
Ligne 1: Ligne 1:
-{{tag>​Precise Quantal Raring dépôts}} 
  
----- 
- 
-====== Administration Système : Comment créer un miroir de dépôt local via un serveur web ====== 
- 
-{{:​tutoriel:​apt-mirror.png}} 
- 
-<​note>​ 
-Page nécessitant d'​être mise à jour. Il faudrait séparer la partie dépôt via serveur web local (ici) et dépôt usb ([[:​tutoriel:​creer_un_miroir_de_depot_usb|là]]) afin de simplifier le tutoriel. ​ 
-</​note>​ 
- 
-La création d'un miroir pour les paquets va vous permettre de créer et de maintenir la copie conforme de dépôts (officiels ou non) en local. La raison principale est de ne plus avoir besoin de connexion vers le net pour pouvoir installer un paquet ou bien faire des mises à jour. C'est donc une solution pratique et efficace pour une //install party//, la mise à jour d'un parc de machine (dans ce cas le miroir peut être couplé avec un serveur, un proxy, etc.) ou, pour en finir, la mise à jour ou l'​installation chez une personne ne disposant pas d'une connexion vers le net, ou dont la connexion est trop lente (RTC). Cela est particulièrement utile pour certains pays africains avec un faible accès à internet et permet d'y vulgariser facilement Linux. 
- 
-Ce n'est donc pas une procédure à prendre à la légère, car vous allez aspirer complètement le contenu d'un ou plusieurs dépôts et les stocker dans un répertoire. Actuellement pour une seule architecture,​ cette procédure nécessite au minimum 60 gigaoctets. 
- 
-{{icons:​iconnote.png ​ }} 
-> Si votre but n'est que de partager des paquets que vous avez déjà téléchargés,​ il vous faut regarder du coté de //​apt-cacher//​ ou bien sur ce guide : [[:​tutoriel:​comment_installer_un_dépôt_local|Mettre en place un dépôt local]]. 
- 
-===== Installation de « apt-mirror » ====== 
- 
-C'est très simple : il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] « **[[apt://​apt-mirror|apt-mirror]]**,​ **[[apt://​apache2|apache2]]**. ». 
- 
-===== Configuration de « apt-mirror » ===== 
- 
-Par défaut, //​apt-mirror//​ utilise son propre fichier de configuration : **/​etc/​apt/​mirror.list**. 
- 
-Vous devez adapter le fichier en fonction de vos besoins. Exemple du fichier pour ubuntu 12.04 LTS ne prenant en compte qu'une seule architecture système (i386) : 
- 
-<​code>​ 
-#############​ config ##################​ 
-# 
-set base_path ​   /​var/​spool/​apt-mirror 
-# 
-set mirror_path ​ $base_path/​mirror 
-set skel_path ​   $base_path/​skel 
-set var_path ​    ​$base_path/​var 
-set cleanscript $var_path/​clean.sh 
-set defaultarch ​ i386 
-# set postmirror_script $var_path/​postmirror.sh 
-# set run_postmirror 0 
-set nthreads ​    20 
-set _tilde 0 
-# set limit_rate ​  500k 
-# 
-#############​ end config ##############​ 
- 
-deb http://​archive.ubuntu.com/​ubuntu precise main restricted universe multiverse 
-deb http://​archive.ubuntu.com/​ubuntu precise-security main restricted universe multiverse 
-deb http://​archive.ubuntu.com/​ubuntu precise-updates main restricted universe multiverse 
-#deb http://​archive.ubuntu.com/​ubuntu precise-proposed main restricted universe multiverse 
-#deb http://​archive.ubuntu.com/​ubuntu precise-backports main restricted universe multiverse 
- 
-## DEPOTS SOURCES 
-#deb-src http://​archive.ubuntu.com/​ubuntu precise main restricted universe multiverse 
-#deb-src http://​archive.ubuntu.com/​ubuntu precise-security main restricted universe multiverse 
-#deb-src http://​archive.ubuntu.com/​ubuntu precise-updates main restricted universe multiverse 
-#deb-src http://​archive.ubuntu.com/​ubuntu precise-proposed main restricted universe multiverse 
-#deb-src http://​archive.ubuntu.com/​ubuntu precise-backports main restricted universe multiverse 
- 
-clean http://​archive.ubuntu.com/​ubuntu 
-</​code>​ 
- 
-Explication : deb seul revient à dire deb-i386, car c'est l'​architecture de base dans la configuration,​ tandis que pour les autres, il faut le déclarer avec deb-amd64 deb-'​autre-architecture'​ (trouvé sur le forum de apt-mirror) 
- 
-Les lignes qui suivent la section "​clean"​ vous permettront de supprimer les paquets obsolètes de votre miroir, il faut les rentrer pour chaque adresse voulue (idéalement toutes). Il faudra par la suite lancer le script clean.sh présent dans le répertoire chemin/​du/​miroir/​var/​ pour la suppression,​ ou bien passer par le script postmirror.sh (à créer). Toutes ces informations sont détaillées sur la sortie du terminal. 
- 
-===== Récupération des paquets ===== 
- 
-Lancez la création de votre miroir par : 
- 
-  su - apt-mirror -c apt-mirror 
- 
-Note : je rappelle que si vous ne passez pas de fichier de configuration à la commande //​apt-mirror//,​ c'est celui par défaut qui sera utilisé (« /​etc/​apt/​mirror.list »). 
- 
-  * Dans un premier temps //​apt-mirror//​ récupère la liste du contenu des miroirs demandés. 
-  * Dans un second temps //​apt-mirror//​ vous indique la taille totale des paquets qu'il lui faut télécharger (dans notre fichier d'​exemple cela représente environ 15 Gio). 
-  * Vous pouvez aller boire plusieurs cafés, même manger, fumer (beaucoup) et dormir… à moins de disposer d'une connexion de folie. ;-) 
- 
-Vous pouvez limiter la vitesse de téléchargement en ajoutant : 
-  set limit_rate 500k 
-à votre fichier de configuration de apt-mirror 
- 
- 
-Si vous passez par un proxy et que vous obtenez le message : 
- 
-  Proceed indexes: [Psh: cannot open archive.ubuntu.com/​ubuntu//​dists/​jaunty/​main/​binary-i386/​Packages.gz:​ No such file 
-  apt-mirror: can't open index in proceed_index_gz at /​usr/​bin/​apt-mirror line 390. 
- 
- 
-Veuillez vérifier les lignes suivantes dans le fichier **wgetrc** 
- 
-  vi /etc/wgetrc 
- 
-  http_proxy = http://​user:​passwd@proxy:​port 
-  use_proxy = on 
- 
- 
-===== Utilisation de votre miroir via serveur web ===== 
- 
-=== Côté serveur === 
- 
-Si apache2 est déjà installé, il est nécessaire de créer un lien symbolique pour que le dépôt soit accessible via le serveur web : 
-   ln -s /​var/​spool/​apt-mirror/​mirror/​ /​var/​www/​ubuntu 
- 
-On peut tester le bon fonctionnement en se rendant via un navigateur web sur l'​adresse IP de notre dépôt. 
- 
-=== Côté client === 
- 
-On sauvegarde le fichier de configuration : 
- 
-  sudo cp /​etc/​apt/​sources.list /​etc/​apt/​sources.list.ORIGINAL 
- 
-On va éditer le fichier « /​etc/​apt/​sources.list » afin de le faire pointer vers notre serveur. 
- 
-  sudo gedit /​etc/​apt/​sources.list 
- 
-Là où vous avez une ligne du style 
-<​file>​ 
-deb http://​archive.ubuntu.com/​ubuntu/​ precise-updates main restricted multiverse universe 
-</​file>​ 
-vous allez devoir remplacer l'​adresse internet du serveur original par celui que vous avez spécialement installé. Si mon serveur est sur l'​adresse 192.168.0.1 je modifie ma ligne et j'​obtiens : 
-<​file>​ 
-deb http://​192.168.0.1/​ubuntu/​ precise-updates main restricted multiverse universe 
-</​file>​ 
-On fait cette manipulation pour chaque entrée ou ligne et on sauvegarde. 
-<note tip>​Remplacez 192.168.0.1 par l'​adresse de votre serveur HTTP.</​note>​ 
- 
-<note tip>Si vous souhaitez tous de même utiliser un serveur apache il faudra de préférence mettre votre mirroir dans /var/www ce qui donnerait l'​adresse suivante pour le source-list:​ http://​192.168.0.1/​mirroir/​mirror/​archive.canonical.com/​ubuntu/​ precise-updates main restricted multiverse universe</​note>​ 
-On fait prendre en compte le nouveau fichier de configuration par un : 
- 
-  sudo apt-get update 
- 
-et vous voilà prêt à utiliser votre miroir et serveur local. 
- 
- 
-===== Enlever votre miroir du système ===== 
- 
-Avant de partir il vous faut restaurer la configuration initiale du système de paquet. Nous allons donc remettre en état le système. 
- 
-  * Sauvegarde de votre fichier modifié :<​code>​sudo cp /​etc/​apt/​sources.list /​etc/​apt/​sources.list.MIROIR</​code>​ 
-  * Remise en place du fichier original :<​code>​ 
-sudo rm /​etc/​apt/​sources.list 
-sudo cp /​etc/​apt/​sources.list.ORIGINAL /​etc/​apt/​sources.list 
-</​code>​ 
-  * Prise en compte de celui-ci par le système :<​code>​sudo apt-get update</​code>​ 
- 
-===== Mise à jour de votre miroir ===== 
- 
-==== Manuellement ==== 
- 
-Il suffit pour cela de relancer //​apt-mirror//​ avec votre fichier de configuration et votre disque dur externe en place (ou votre miroir accessible selon le chemin indiqué dans la configuration de //​apt-mirror//​) : 
- 
-  apt-mirror /​media/​DDPortable/​miroir/​apt-mirror-configuration 
- 
- 
- 
- 
-==== Automatiquement ==== 
- 
-Tout est prêt. Il suffit juste de décommenter une ligne dans le fichier « /​etc/​cron.d/​apt-mirror » 
- 
-  sudo gedit /​etc/​cron.d/​apt-mirror 
- 
-On enlève le « # » de la ligne : 
-<​file>​ 
-#0 4 * * * apt-mirror /​usr/​bin/​apt-mirror > /​var/​spool/​apt-mirror/​var/​cron.log 
-</​file>​ 
- 
-On ajoute le fichier de configuration si celui-ci n'est pas celui par défaut et on en profite pour modifier l'​heure afin d'​obtenir : 
-<​file>​ 
-0 13 * * * apt-mirror /​usr/​bin/​apt-mirror /​media/​DDPortable/​miroir/​apt-mirror-configuration > /​var/​spool/​apt-mirror/​var/​cron.log 
-</​file>​ 
-On sauvegarde et c'est tout. Tous les jours, à 13 heures, le miroir se mettra à jour. :-) 
- 
-Dans cet exemple, comme /​usr/​bin/​apt-mirror est lancé en tant qu'​utilisateur apt-mirror il faut que les répertoires du miroir soient modifiables par cet utilisateur : 
- 
-  sudo chown -R apt-mirror /​media/​DDPortable/​miroir/​{mirror,​skel,​var} 
- 
-[[:​cron|Plus d'​informations sur Cron...]] 
- 
-==== Problèmes ==== 
- 
-  * apt-mirror is already running, exiting at /​usr/​bin/​apt-mirror line 187. 
- 
-La solution est de supprimer le fichier ''​apt-mirror.lock''​ 
-<​file>​ 
-rm -f /​media/​DDPortable/​mirror/​var/​apt-mirror.lock 
-</​file>​ 
- 
-===== Cas d'une Install Party ===== 
-Dans le cas d'une Install Party, pensez a ajouter aussi les dépôts nécessaires pour une [[:​tutoriel:​installer_ubuntu_par_internet|netinstall]] : 
- 
-  deb http://​archive.ubuntu.com/​ubuntu precise ​             main/​debian-installer restricted/​debian-installer universe/​debian-installer multiverse/​debian-installer 
-  deb http://​archive.ubuntu.com/​ubuntu precise-updates ​     main/​debian-installer restricted/​debian-installer universe/​debian-installer 
-  deb http://​archive.ubuntu.com/​ubuntu precise-backports ​   main/​debian-installer 
-  deb http://​archive.ubuntu.com/​ubuntu precise-security ​    ​main/​debian-installer restricted/​debian-installer universe/​debian-installer 
-  # deb http://​archive.ubuntu.com/​ubuntu precise-proposed ​    ​main/​debian-installer restricted/​debian-installer universe/​debian-installer 
- 
-===== Notes =====  
-{{icons:​iconnote.png ​ }} 
-> Apt-mirror génère des fichiers de log. Ils se trouvent dans **/var** à la racine du dossier de votre dépot. (dans le chemin que vous avez paramétré dans votre mirror.list : **set base_path /​media/​DDPortable/​miroir**,​ dans le début du tuto). 
- 
-Nota : Il existe d'​autres logiciels pour accomplir cette tâche :  
-[[https://​help.ubuntu.com/​community/​Debmirror | Debmirror]] et d'​autres encore. 
- 
- 
-===== Mise à niveau à partir du dépot local (dist upgrade) ===== 
-Mon mirroirLa dernière version de Ubuntu est téléchargée sur le miroir, mais je ne comprends pas mon(mes) poste(s) client(s) ne voi(en)t pas qu´il y a à disposition une version de mise à jour de la distribution (Mise à jour pour de Hardy à  Lucid par exemple). 
- 
-Avec une connexion permanente à internet, le logiciel de mise à jour (update-manager) propose la mise à disposition de la nouvelle version d'​ubuntu disponible **mais pas avec un dépot local sans connexion à internet**. 
- 
- ​Pourquoi et comment puis-je faire pour le faire fonctionner?​ 
- 
-====  Explications ==== 
- 
-Le logiciel d´installation des paquets **update-manager** consulte les fichiers **meta-release** et **meta-release-lts** situés à l'​adresse [[http://​changelogs.ubuntu.com/​]] et affiche une fenêtre de mise à jour si une nouvelle version est disponible. ​ 
- 
-Dans le cas de notre miroir ces fichiers ne sont pas téléchargées lors des opérations précédentes,​ voilà pourquoi update-manager ne dit rien! Nous allons devoir récupérer les bons fichiers et configurer l´environnement de update-manager pour notre miroir. 
- 
-==== Les fichiers utilisés ==== 
-Voici le contenu du fichier meta-release-lts (au 28/​11/​2011):​ 
- 
-  .... 
-  Dist: hardy  
-  Name: Hardy Heron 
-  Version: 8.04.1 LTS 
-  Date: Thu, 24 Apr 2008 12:00:00 UTC 
-  Supported: 1 
-  Description:​ This is the 8.04.1 LTS release 
-  Release-File:​ http://​archive.ubuntu.com/​ubuntu/​dists/​hardy/​Release 
-  ReleaseNotes:​ http://​archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader- ​ all/​0.87.31/​ReleaseAnnouncement 
-  UpgradeTool:​ http://​archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader-all/​0.87.31/​hardy.tar.gz 
-  UpgradeToolSignature:​ http://​archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader-all/​0.87.31/​hardy.tar.gz.gpg 
-  ​ 
-  Dist: lucid 
-  Name: Lucid Lynx 
-  Version: 10.04.3 LTS 
-  Date: Thu, 29 Apr 2010 12:00:00 UTC 
-  Supported: 1 
-  Description:​ This is the 10.04.3 LTS release 
-  Release-File:​ http://​archive.ubuntu.com/​ubuntu/​dists/​lucid/​Release 
-  ReleaseNotes:​ http://​archive.ubuntu.com/​ubuntu/​dists/​lucid-proposed/​main/​dist-upgrader-all/​current/​ReleaseAnnouncement 
-  ReleaseNotesHtml:​ http://​archive.ubuntu.com/​ubuntu/​dists/​lucid-proposed/​main/​dist-upgrader-all/​current/​ReleaseAnnouncement 
-  UpgradeTool:​ http://​archive.ubuntu.com/​ubuntu/​dists/​lucid-proposed/​main/​dist-upgrader-all/​current/​lucid.tar.gz 
-  UpgradeToolSignature:​ http://​archive.ubuntu.com/​ubuntu/​dists/​lucid-proposed/​main/​dist-upgrader-all/​current/​lucid.tar.gz.gpg 
-  ... 
- 
-Concernant le fichier meta-release,​ le même principe est utilisé mais il contient en plus toutes les version intermédiaires aux versions LST. 
-Ces fichiers indiquent pour chaque version de Ubuntu, le nom, la version et où sont stockés les éléments de cette version. 
- 
-Si une nouvelle mise à jour de Ubuntu est disponible ces fichier seront mis à jour. 
- 
-==== Paramétrage de l´outil update-manager ==== 
-Le logiciel de mise à jour utilise les données indiquées par le champ **UpgradeTool**. ​ 
- 
-Exemple: pour la distribution Lucid on a  [[http://​archive.ubuntu.com/​ubuntu/​dists/​lucid-proposed/​main/​dist-upgrader-all/​current/​]] et pour la version francaise ​ 
- ​[[http://​fr.archive.ubuntu.com/​ubuntu/​dists/​lucid-proposed/​main/​dist-upgrader-all/​current/​]]. 
- 
-De plus, le logiciel de mise à jour contient dans son code cette adresse par défaut [[http://​changelogs.ubuntu.com/​]]. 
- 
-Il est possible de préciser dans le fichier << /​etc/​update-manager/​meta-release >> un nouveau chemin en renseignant les lignes des champs :  **URI** et **URI_LTS**. 
- 
-Dans le cas du dépot local nous ferons la même chose voir ci-dessous. 
- 
-==== Réalisation ==== 
-=== Pré-requis === 
-Le miroir a déjà été mis à jour comme décrit par les chapitres ci-dessus. 
- 
-Créer un répertoire temporaire pour accueillir nos fichiers avant modifications et entrer dedans: 
- 
-  mkdir mon_tmp 
-  cd mon_tmp 
- 
-Télécharger les fichiers meta-release et meta-release-lts dans le répertoire temporaire: 
- 
-  wget http://​changelogs.ubuntu.com/​meta-release ​ 
-  wget http://​changelogs.ubuntu.com/​meta-release-lts 
- 
-Mettre à jour les fichiers meta-release*:​ 
-En éditant les fichiers meta-release et meta-release-lts afin de modifier l'​adresse internet par l'​adresse du dépot local (dans notre cas  http://​archive.ubuntu.com/​ubuntu par http://​192.168.1.101/​ubuntu 192.168.1.101 étant l´adresse de notre serveur embarquant le miroir) 
- 
-Télécharger le répertoire indiqué par la ligne ReleaseNotes de la version correspondante du fichier meta-release : 
- 
-  ... 
-  Dist: hardy  
-  Name: Hardy Heron 
-  Version: 8.04 LTS 
-  Date: Thu, 24 Apr 2008 12:00:00 UTC 
-  Supported: 1 
-  Description:​ This is the 8.04 LTS release 
-  Release-File:​ http://​archive.ubuntu.com/​ubuntu/​dists/​hardy/​Release 
-  ReleaseNotes:​ http://​archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader-all/​0.87.30/​ReleaseAnnouncement 
-  UpgradeTool:​ http://​archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader-all/​0.87.30/​hardy.tar.gz 
-  UpgradeToolSignature:​ http://​archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader-all/​0.87.30/​hardy.tar.gz.gpg 
-  ... 
- 
-Pour la hardy ReleaseNotes:​ http://​archive.ubuntu.com/​ubuntu/​dists/​**hardy-proposed/​main/​dist-upgrader-all/​0.87.30/​**ReleaseAnnouncement le répertoire à télécharger sera **0.87.30** et le répertoire cible dans le miroir sera **hardy-proposed/​main/​dist-upgrader-all/​**. 
- 
-Récupérons tout d´abord le répertoire:​ 
- 
-  wget -r http://​fr.archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader-all/​0.87.30 
- 
-Maintenant vous devez avoir : 
- 
-   ​truc@machine:​~$ ls mon_tmp 
-   ​meta-release ​ meta-release-lts 0.87.30 
- 
-Voilà nous avons maintenant toutes les données pour mettre à jour notre miroir. 
- 
-=== Mise à jour du dépot === 
- 
-Mettre en place l´environnement de mise à jour dans le miroir, pour cela: 
- 
-Créer le répertoire de description de la mise à jour (**Dist**-proposed/​main/​dist-upgrader-all) dans notre miroir: 
- 
-  mkdir -p  /​media/​DDPortable/​miroir/​mirror/​archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader-all 
- 
-Copier dans le dépot le répertoire dist-upgrader-all en remplacant << Votre-Distrib >> par la version ubuntu cible ici hardy: 
- 
-  cp -r 0.87.30 ​ /​media/​DDPortable/​miroir/​mirror/​archive.ubuntu.com/​ubuntu/​dists/​hardy-proposed/​main/​dist-upgrader-all/​. 
- 
-Créer dans le dépot un nouveau répertoire changelogs visible par le client: 
- 
-  mkdir /​media/​DDPortable/​miroir/​mirror/​archive.ubuntu.com/​ubuntu/​dists/​changelogs 
- 
-Copier les fichiers meta-release*:​ 
- 
-  cp -r meta-release* /​media/​DDPortable/​miroir/​mirror/​archive.ubuntu.com/​ubuntu/​dists/​changelogs/​. 
-  
-Voilà c'est terminé pour le dépôt. 
- 
-=== Configuration du logiciel de mise à jour (update-manager) === 
-Il faut maintenant indiquer au logiciel de mise à jour où récupérer les informations de mise à jour. 
- 
-[[:​tutoriel:​comment_editer_un_fichier|éditez le fichier]] **/​etc/​update-manager/​meta-release** 
- 
- 
-  # default location for the meta-release file 
-  [METARELEASE] 
-  URI = http://​changelogs.ubuntu.com/​meta-release 
-  URI_LTS = http://​changelogs.ubuntu.com/​meta-release-lts 
-  URI_UNSTABLE_POSTFIX = -development 
-  URI_PROPOSED_POSTFIX = -proposed 
- 
-Les lignes à modifier sont  : 
- 
-  URI = http://​changelogs.ubuntu.com/​meta-release ​ 
-  URI_LTS = http://​changelogs.ubuntu.com/​meta-release-lts 
- 
-Dans le cas de l'​exemple remplacer ces deux lignes par : 
- 
-  URI = http://​192.168.1.101/​ubuntu/​dists/​changelogs/​meta-release 
-  URI_LTS = http://​192.168.1.101/​ubuntu/​dists/​changelogs/​meta-release-lts 
- 
-Et voilà votre dépot est prêt il ne reste plus qu'a mettre à jour le fichier <</​etc/​update-manager/​meta-release >> sur tout les postes clients afin qu'il profite des mise à niveau au travers du logiciel update-manager comme avec une connexion à internet permanente. 
- 
-===== Contributeurs ===== 
- : [[:​utilisateurs:​Boolet]],​ [[:​utilisateurs:​Mimilus]],​ [[:​utilisateurs:​claudiux]],​ [[:​utilisateurs:​Mr_Djez]], ​ [[:​utilisateurs:​Biounator]]//​