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
Prochaine révision
Révision précédente
tutoriel:comment_installer_un_depot_local [Le 07/07/2007, 11:26]
flozz ancienne révision restaurée (qqun à pris cette page pour un bac à sable...)
tutoriel:comment_installer_un_depot_local [Le 11/09/2022, 12:21] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>breezy dapper edgy tutoriel ​depot apt paquet}}+{{tag>Trusty ​tutoriel ​dépôts ​apt paquet }}
  
 ---- ----
  
- +====== ​Comment mettre ​en place un dépôt local ======
- +
-====== ​Mettre ​en place un dépôt local ======+
  
 Ou comment créer un dépôt à partir de paquets déjà téléchargés dans un répertoire. Ou comment créer un dépôt à partir de paquets déjà téléchargés dans un répertoire.
- 
- 
- 
- 
- 
- 
- 
  
 ===== Intérêt d'un dépôt local de paquets deb ===== ===== Intérêt d'un dépôt local de paquets deb =====
  
 Il existe plusieurs situations dans lesquelles il est particulièrement intéressant de créer un dépôt local de logiciels sous forme binaire en **.deb** comme : Il existe plusieurs situations dans lesquelles il est particulièrement intéressant de créer un dépôt local de logiciels sous forme binaire en **.deb** comme :
- +  * une installation sur une machine dépourvue de connexion internet ​; 
-- Une installation sur une machine dépourvue de connexion internet, +  * une installation sur une machine avec une connexion internet lente 56K par simple modem RTC ; 
- +  * une install-party où il y a beaucoup de machines à installer en même temps avec une connexion internet haut-débit pas suffisamment rapide.
-- Une installation sur une machine avec une connexion internet lente 56K par simple modem RTC +
- +
-- Une install-party où il y a beaucoup de machines à installer en même temps avec une connexion internet haut-débit pas suffisamment rapide.+
  
 Dans tous les cas, cette technique permet d'​éviter de télécharger sur internet des paquets qui sont déjà présent localement dans au moins une machine correctement installée de façon traditionnelle via le net. Dans tous les cas, cette technique permet d'​éviter de télécharger sur internet des paquets qui sont déjà présent localement dans au moins une machine correctement installée de façon traditionnelle via le net.
  
-Il existe une autre solution avec l'​utilisation ​de //​apt-cacher//​ qui ne nécéssite pas l'​installation d'​apache.+<​note>​Cette manière ​de procéder ​ne vous permettra de partager que des paquets déjà téléchargésDans le cas où vous souhaitez créer un dépôt complet en local (un miroir) vous trouverez comment faire sur la page « [[:​tutoriel:​creer_un_miroir_de_depot|Créer un miroir de dépôt local]] ».</​note>​
  
->**Cette manière de procéder ​ne vous permettra ​de partager que des paquets déjà téléchargés. Dans le cas où vous souhaitez créer un dépôt complet en local (un miroir) vous trouverez comment faire sur la page [[:tutoriel:​creer_un_miroir_de_depot_local|Créer un miroir de dépôt local]]**+<note tip>Il existe une solution alternative à celle proposée sur cette page avec l'​utilisation du proxy [[:​apt-cacher]],​ solution qui ne nécessite pas de configuration particulière du serveur [[:​Apache2]] et reste "​transparente"​ pour le PC client dans le cas d'une configuration par la << ​[[:apt-cacher#​methode_proxy|Méthode Proxy]] >>​.</​note>​
  
 ===== Prérequis ===== ===== Prérequis =====
  
-L'​utilitaire //​dpkg-scanpackages//​ dont vous aurez besoin sur la machine serveur est disponible dans le paquet ​//dpkg-dev//.+L'​utilitaire //​dpkg-scanpackages//​ dont vous aurez besoin sur la machine serveur est disponible dans le paquet ​**[[apt>dpkg-dev]]**.
  
 ===== Installation en réseau local à partir d'une machine serveur locale ===== ===== Installation en réseau local à partir d'une machine serveur locale =====
  
-{{applications:apt:​logo_synaptic_net.png|}}+==== Étape 1 Installer complètement une machine locale via Internet qui deviendra un serveur de dépôt ====
  
-Cette documentation sera valable avec Breezy, Dapper ou Edgy si les paquets qui ont été téléchargés correspondent à la version installée localement sur le client ​via le CD-rom.+  * Installez votre machine de façon traditionnelle ​via Internet haut-débit en utilisant un fichier **sources.list** classique et pensez à mettre tous les logiciels nécessaires.
  
-==== Etape 1 : Installer complètement une machine locale via Internet qui deviendra un serveur de dépôt ==== +Une fois terminé, ​jetez un œil dans ce dossier pour vérifier que tous les paquets sont bien là sous forme de fichier ​**.deb** :
- +
-- Installez votre machine de façon traditionnelle via Internet haut-débit en utilisant un fichier **sources.list** classique et pensez à mettre tous les logiciels nécessaires. +
- +
-Une fois terminé, ​jettez ​un oeil dans ce dossier pour vérifier que tous les paquets sont bien là sous forme de fichier.deb :+
  
 <​code>/​var/​cache/​apt/​archives/</​code>​ <​code>/​var/​cache/​apt/​archives/</​code>​
  
-**IMPORTANT** : Il faudra installer le serveur web Apache2 ​pour permettre une connection ​locale en réseau intranet.+<note important>​Il faudra installer le serveur web **[[apt>​apache2]]** ​pour permettre une connexion ​locale en réseau intranet.</​note>​
  
-==== Etape 2 : Préparer la machine locale ​bien installée ​à devenir serveur de dépôt ====+==== Étape ​2 : Préparer la machine locale à devenir serveur de dépôt ====
  
 Dans mon exemple, je crée un dossier local qui contiendra les paquets **.deb** dans Apache2 et appelé ubuntu_local. Dans mon exemple, je crée un dossier local qui contiendra les paquets **.deb** dans Apache2 et appelé ubuntu_local.
  
-Ouvrez un terminal ​(ou console) ​avec Applications/Accessoires/terminal ​et devenez root (=super-administrateur) ​avec la commande :+  * Ouvrez un [[:terminal]] en lui donnant les [[:​sudo|droits d'​administration]] ​avec la commande : <​code>​sudo -i</code> 
 +  * Créez le dossier ​//​ubuntu_local//​ : <​code>​mkdir /​var/​www/​html/​ubuntu_local</​code>​ 
 +  * Copiez tout le dossier archives ​et les paquets **.deb** qu'il contient dans le dossier que vous venez de créer à la racine de votre serveur web Apache2 avec la commande : <​code>​cp ​-rf /​var/​cache/​apt/​archives /​var/​www/​html/​ubuntu_local</​code>​ 
 +  * Ensuite, allez dans ce dossier avec : <​code>​cd /​var/​www/​html/​ubuntu_local/</​code>​ 
 +  * Faites la liste de tous les paquets qu'il contient ​avec la commande : <​code>​dpkg-scanpackages ./ /dev/null | gzip -9c > Packages.gz</​code>​ 
 +(La commande //​dpkg-scanpackages//​ n'est disponible qu'​après installation paquet [[apt>​dpkg-dev]].)
  
-<​code>​sudo su + votre mot de passe</​code>​ +À ce stade, votre serveur est presque prêt, il faut juste configurer votre machine pour dire que n'​importe qui pourra aller chercher ces paquets ​via le serveur ​Apache2. \\ 
- +Pour cela, exécutez les 2 commandes suivantes : 
-- Copiez tout le dossier archives et les paquets deb qu'il contient dans la racine de votre serveur web Apache2 avec la commande : +<​code>​ 
- +chmod 755 -R /var/www/html/​ubuntu_local/​ 
-<​code>​cp -rf /​var/​cache/​apt/​archives /​var/​www/​ubuntu_local</​code>​ +chown -R www-data:​www-data /var/www/html/​ubuntu_local/​ 
- +</​code>​
-- Ensuite, allez dans ce dossier avec : +
- +
-<​code>​cd /​var/​www/​ubuntu_local/</​code>​ +
- +
-- et faites la liste de tous les paquets contenus dedans avec la commande : +
- +
-<​code>​dpkg-scanpackages ./ /dev/null | gzip -9c > Packages.gz</​code>​ +
- +
-ce stade, votre serveur est presque prêt, il faut juste configurer votre machine pour dire que n'​importe qui pourra aller chercher ces paquets ​dans Apache2, pour cela, exécutez les 2 commandes suivantes : +
- +
-<​code>​chmod 755 -R /​var/​www/​ubuntu_local/​</​code>​ +
- +
-suivie de : +
- +
-<​code>​chown -R www-data:​www-data /​var/​www/​ubuntu_local/</​code>​+
  
 Votre serveur local est prêt, pour le tester, lancez-votre navigateur web et saisissez cette adresse : Votre serveur local est prêt, pour le tester, lancez-votre navigateur web et saisissez cette adresse :
 +<​code>​http://​ip_serveur/​ubuntu_local/</​code>​
 +(ip_serveur sera remplacée par l'​adresse IP de votre machine dans le réseau local)
  
-<​code>​http:​//ip_serveur/ubuntu_local/</​code>​ (ip_serveur serveur sera remplacée par l'adresse ip de votre machine dans le réseau local)+Si une grande liste s'​affiche avec tous les logiciels et le fichier ''​//Packages.gz//'', c'est tout bon, sinon reprenez au dessus, vous avez probablement oublié quelque chose...
  
-Si une grande liste s'​affiche avec tous les logiciels ​et le fichier Packages.gzc'est tout bonsinon non, reprenez au dessus, vous avez oublié quelque chose...+<note tip> 
 +Il est tout à fait possible (et sans doute plus intéressant) de créer un lien symbolique pointant vers le répertoire cache, plutôt que de recopier le contenu de ce dernierSoitavec l'exemple précédent : 
 +<​code>​sudo ln -s /​var/​cache/​apt/​archives /​var/​www/​html/​ubuntu_local/</​code>​ 
 +De plusvotre dépôt local sera toujours "à jour".
  
-{{applications:​apt:​logo_synaptic_local.png|}}+Un dpkg-scanpackages reste cependant nécessaire car apt cherche un listing des paquets disponibles dans le dépôt, listing contenu dans  le fichier ''//​Packages.gz//''​. En l'​absence de ce fichier, apt retourne une erreur.
  
-==== Etape 3 Préparer la machine cliente locale ​en attente d'installation pour se connecter au serveur de dépôt local ====+La page **http://​ip_serveur/​ubuntu_local/​** ouverte dans votre navigateur doit afficher le fichier ''//​Packages.gz//'' ​en plus des paquets .deb du dossier ''//​archives/​ //''
 +</​note>​
  
-Sur la machine cliente, vous venez de faire une installation classique avec le CD-rom d'Ubuntu, le réseau fonctionneil vous suffit maintenant de mettre au point un fichier ​**sources.list** qui se connecte sur votre serveur local.+Pour télécharger les paquets par avance dans ''/​var/​cache/​apt/​archives''​ du serveur local sans les installerl'​option ​**-d** suffit. 
 +<​code>#​ apt-get -d install mon_paquet</​code>​ 
 +Seule la phrase "//​Téléchargement achevé dans le mode téléchargement uniquement//"​ à la fin de l'​opération vous indiquera que rien n'est installé.
  
-Pour cela, ouvrez un terminal (ou console) avec Applications/​Accessoires/​terminal et devenez root (=super-administrateur) avec la commande ​: +==== Étape 3 Préparer la machine cliente ​pour se connecter au serveur ​de dépôt ​local ====
- +
-<​code>​sudo su + votre mot de passe</​code>​ +
- +
-puis copiez le fichier sources.list ​pour en faire une copie de sécurité avec : +
- +
-<​code>​cp /​etc/​apt/​sources.list /​etc/​apt/​sources.list.old</​code>​ +
- +
-- et éditez le fichier sources.list avec : +
- +
-<​code>​gedit /​etc/​apt/​sources.list</​code>​ +
- +
-effacez toutes les lignes contenues dedans et remplacez-les par celle-ci : +
- +
-<​code>##​ Depot local intranet+
  
 +Sur la machine cliente, vous venez de faire une installation classique d'​Ubuntu,​ le réseau fonctionne, il vous suffit maintenant de mettre au point un fichier **sources.list** qui se connecte sur votre serveur local. Pour cela :
 +  * Ouvrez un [[:​terminal]] en donnant lui les [[:​sudo|droits d'​administration]] avec la commande : <​code>​sudo -i</​code>​
 +  * Copiez le fichier //​sources.list//​ pour en faire une copie de sécurité avec : <​code>​cp /​etc/​apt/​sources.list /​etc/​apt/​sources.list.old</​code>​
 +  * [[:​tutoriel:​comment_modifier_un_fichier|Ouvrez le fichier]] **/​etc/​apt/​sources.list**,​ effacez toutes les lignes qu'il contient et remplacez-les par celle-ci : <​code>##​ Depot local intranet
 deb http://​192.168.0.4/​ubuntu_local ./</​code>​ deb http://​192.168.0.4/​ubuntu_local ./</​code>​
 +avec dans cet exemple l'IP du serveur local en 192.168.0.4 (que vous adapterez à votre adresse IP) et enregistrez votre fichier.
 +  * [[:​gestionnaire_de_mises_a_jour#​verifier_manuellement_grace_a_update-manager|Mettez à jour votre système]].
 +  * [[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] de votre choix.
  
-avec dans cet exemple l'ip du serveur local en 192.18.0.4pensez à enregistrer votre fichier.+À noter que certains paquets peuvent avoir dans leurs noms de fichier les caractères « **%3a** », ce qui renvoie une erreur avec ''//​apt-get upgrade//''​ ou autresdans ce cas il suffit de renommer les paquets en remplaçant « %3a » par « **:** ».
  
-- Ensuite, lancez la réactualisation des sources de logiciels avec la commande ​:+Exemple ​<​code>​rename '​s/​%3a/:/'​ *.deb</​code>​
  
-<​code>​apt-get update</​code>​+===== Installation locale à partir de fichiers .deb sur CD-ROM, DVD-ROM, clé USB ou disque dur amovible externe =====
  
-puis la mise à jour en local avec :+il suffit ​en fait de rajouter cela dans son sources.list ​: 
 +<​code>​deb file:/​media/​$USER/​doc/​ubuntu_local ​ ./ </​code>​
  
-<​code>​apt-get install nom_du_paquet</​code>​+Ici le dépôt se trouve sur un disque dur externe... Mais il suffit d'​adapter pour un CD-Rom ou autre support...
  
-nom_du_paquet = nom du paquet à installer.+<note importante>​Le chemin vers le média donné plus haut concerne [[:​trusty]],​ si vous êtes sous [[:​precise]] enlevez le $USER.</​note>​
  
-ou +FIXME //TODO : faire un CD/DVD "​autorun"​ qui est reconnu directement par Synaptic ​ou adept.//
  
-<​code>​apt-get dist upgrade</​code>​+===== Autre solution : comment installer un .deb via Synaptic =====
  
-A titre d'​information,​ vous installerez ​le paquet ​des codecs vidéos propriétaires w32codecs en 4 secondes au lieu des 3 minutes normalement nécessaires pour le téléchargement via internet.+//(Ne pas oublier que le paquet// [[apt>​dpkg-dev]] //est pré-requis.)//
  
 +Dans l'​exemple qui suit, nous supposons que vous voulez avoir les **.deb** dans le répertoire ​ ''//​~/​monDepot/​ //''​
  
-===== Installation locale à partir de fichiers ​.deb sur CD-rom, DVD-rom, clé USB ou disque dur amovible externe =====+  * Créez le répertoire ''//​~/​monDepot/​ //'':​ <​code>​cd ~ 
 +mkdir -p monDepot/</​code>​ 
 +  * Copiez votre **.deb** dans ''//​~/​monDepot/​ //''​.
  
-ça arrive...un peu de patience. +Il vaut mieux sauvegarder le .deb souhaité tout de suite dans ce répertoire,​ lors du téléchargementVous pouvez également les mettre dans des sous-répertoires de ~/monDepot/Par contre n'​utilisez pas de paquets créé avec [[:​faq_paquets#​creationinstallation_d_un_paquet|checkinstall]].
- pour patienter ;-)+
  
-il suffit ​en fait de rajouter cela dans son sources.list +Dans le répertoire ''//​~/​monDepot/​ //'',​ vous aurez besoin d'un fichier ''//​Packages.gz//''​. \\ 
-<​code>​deb file:/media/doc/ubuntu_local  ​./ </​code>​+Ce fichier sera créé automatiquement par un script que vous allez créer. ''//​Packages.gz//''​ doit en effet contenir les données sur les .deb que vous venez de mettre ​dans le répertoirePour faciliter la mise en jour de ''​//Packages.gz//'',​ créez un script (à l'aide de gedit), par exemple ''/​/miseAjour.sh//''​ : <​code>​cd monDepot 
 +gedit miseAjour.sh</​code>​
  
-ici mon depot se trouve sur un disque dur externe... mais il suffit de d adapter pour un cdrom ou autre... +Écrivez-y ces lignes : 
- +<​file>​
-//TODO: faire un CD/DVD "​autorun"​ qui est reconnu directement par synaptic ou adept.// +
- +
-===== Autre solution : comment installer un deb via synaptic ===== +
-//(ne pas oublier que le paquet dpkg-dev est pré-requis)//​ +
-== 1. Créez les répertoires (p.ex vous voulez avoir les debs dans le répertoire monDepot) ~/monDepot/ == +
-  cd ~ +
-  mkdir -p monDepot/ +
- +
-== 2. Copiez votre deb dans ~/monDepot/ == +
-Il vaut mieux sauvegarder le deb souhaité tout de suite dans ce répertoire,​ lors du téléchargement. Vous pouvez également les mettre dans des sous-répertoires de ~/​monDepot/​. Par contre n'​utilisez pas de paquets créé avec [[:​checkinstall]]. +
- +
-== 3. Dans le répertoire monDepot, vous aurez besoin d'un fichier Packages.gz == +
-Ce fichier sera créé automatiquement par un script que vous allez créer. Packages.gz doit en effet contenir les données sur les debs que vous venez de mettre dans le répertoire. Pour faciliter la mise en jour de Packages.gz,​ créez un script (à l'aide de gedit), par exemple miseAjour.sh : +
-  cd monDepot +
-  gedit miseAjour.sh +
- +
-Ecrivez-y ces deux lignes:+
   #!/bin/bash   #!/bin/bash
   cd ~/monDepot/   cd ~/monDepot/
-  dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz+  dpkg-scanpackages . /dev/null |gzip -9c > Packages.gz 
 +</​file>​
  
-Quittez gedit (en sauvegardant). Il faut que le script soit executable, c'​est-à-dire qu'​il ​aie l'​attribut x : +Quittez gedit (en sauvegardant). Il faut que le script soit exécutable, c'​est-à-dire qu'​il ​ait l'​attribut ​**x** 
-  chmod +x miseAjour.sh+<​code>​chmod +x miseAjour.sh</​code>​ 
 +Chaque fois que vous allez lancerez ce script, le fichier ''//​Packages.gz//''​ sera mis à jour.
  
-Chaque fois que vous allez cliquer sur ce script, le fichier ​de desriptions sera mis à jour.+Finalementnous devons informer [[:​Synaptic]] de la présence de notre nouveau dépôt. \\ 
 +Dans le menu de Synaptic, aller dans //​Configuration///​ > //​Dépôts//,​ puis //Autres logiciels// et //Ajouter// (Ligne APT) : 
 +<​code>​deb file:/​home/​monNom/​monDepot ​./</​code>​
  
-== 4. Finalement, nous devons éclairer synaptic sur notre nouveau dépôt : == +Dès que vous cliquez sur la relecture des dépôts (après le changement que vous venez de faire, ​Synaptic ​le fait automatiquement) vous avez votre nouveau ​.deb disponible ​dans Synaptic. Pour chaque nouveau deb que vous téléchargez dans monDepot, ​exécutez ​le script miseAjour.sh et faites relire ses dépôts à Synaptic (en cliquant sur le bouton avec les deux flèches) ou par
-Dans le menu du synaptic vous saisissez "​dépots - ajouter"​ et cliquez sur "​personnaliser"​ et mettez: +
-  deb file:/​home/​monNom/​monDepot/​ ./ +
- +
-Dès que vous cliquez sur la relecture des dépôts (après le changement que vous venez de faire, ​synaptic ​le fait automatiquement) vous avez votre nouveau deb tout joli dans le syinaptic. Pour chaque nouveau deb que vous téléchargez dans monDepot, ​executez ​le script miseAjour.sh et faites relire ses dépôts à Synaptic (en cliquant sur le bouton avec les deux flèches) ou par +
 ''​apt-get update''​. ''​apt-get update''​.
  
-===== Pour en savoir plus sur le net =====+===== Utiliser un fichier .iso comme source ​=====
  
-Autre méthode bien plus simple ici http://www.supinfo-projects.com/fr/2006/creer%5Fdepot%5Fdebian/1+Ceci peut être utile pour installer des programmes sur un PC sans connexion internet. Vous avez votre .iso sur une clé USB par exemple ​''​// /​media/​$USER/​cle_usb/​ubuntu-14.04.1-desktop-i386.iso//''​. 
-Cependant ​cette méthode requière ​un logiciel dédié.+  * Créez un répertoire de montage ''​// /media/iso //''​ avec cette commande : <​code>​sudo mkdir -p /​media/​iso</​code>​ 
 +  * Monter le fichier avec cette commande : <​code>​sudo mount /​media/​$USER/​cle_usb/​ubuntu-14.04.1-desktop-i386.iso -t iso9660 -o loop /media/iso/ </​code>​ 
 +  * Vérifiez le montage : <​code>​ls /media/iso/ #doit montrer en autres les répertoires dists et pool </​code>​ puis : <​code>​ls /​media/​iso/​dists #doit montrer en autres le répertoire trusty (car l'iso est un 14.04)</​code>​ 
 +  * Notez les répertoires présents dans pool : <​code>​ls /​media/​iso/​pool #donne main restricted</​code>​ 
 +  * Rajoutez alors ceci dans le fichier ''//​ /​etc/​apt/​sources.list//''​ : <​code>​deb file:/​media/​iso/​ hardy main restricted </​code>​ 
 +  * Ne pas oublier de mettre à jour les paquets disponibles avec [[:​Synaptic]] ou <​code>​sudo apt-get update</​code>​
  
-Vous pouvez ​aussi utiliser le script suivant: ​[[http://​jerikojerk.over-blog.net/​article-3562015.html|script automatique pour depot local]]+===== Voir aussi ===== 
 + 
 +  * La page << ​[[:apt-cacher|Serveur apt-cacher]] >>, qui présente une solution [[:proxy]] de mise en cache des paquets Debian performante et efficace. 
 +  * [[:?​do=showtag&​tag=depots|La liste des pages taguées "​dépôts"​]] 
 + 
 +\\ 
 +----
  
-//Rédigé par niber, ​corrigé par yomega, ​complété par Laurent Bellegarde//​+//Contributeurs :  ​niber, yomega, Laurent Bellegarde, bruno sanchiz, [[:​utilisateurs:​l_africain|L'​Africain]]//
  • tutoriel/comment_installer_un_depot_local.1183800379.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)