Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tutoriel:scripts_de_mise_a_jour_sans_internet [Le 05/12/2010, 17:30]
Aldian créée - sauvegarde intermédiaire 1. Contenu copié collé depuis la page http://doc.ubuntu-fr.org/tutoriel/comment_ajouter_des_paquets_sans_internet qui va en être allégée
tutoriel:scripts_de_mise_a_jour_sans_internet [Le 11/09/2022, 12:22] (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>Hardy Jaunty Karmic Lucid paquet tutoriel installation_logiciel dépôts apt}}+{{tag>Trusty ​paquet tutoriel installation_logiciel dépôts apt}}
  
 ---- ----
- 
- 
  
 ====== Scripts de mise à jour sans internet ====== ====== Scripts de mise à jour sans internet ======
  
-Ce tutoriel vient en complément ​du tutoriel ​[[:tutoriel:​comment_ajouter_des_paquets_sans_internet|Comment ajouter des paquets ou mettre à jour Ubuntu sans Internet ?]] qui est à consulter en priorité. Les méthodes expliquées ici y étaient originellement incluses.  +Ce tutoriel vient en complément ​de la page [[:apt-offline]] qui est à consulter en priorité. Les méthodes expliquées ici y étaient originellement incluses.  
-<note important>​Pour des raisons évidentes de sécurité, l'​utilisation de scripts trouvés sur internet en mode administrateur est à éviter, à moins de s'y connaitre suffisamment pour en contrôler la qualité. Nous essaierons ici de détailler la signification de quelques uns des éléments des scripts que nous utiliserons,​ mais nous vous recommandons chaudement de tester d'​abord les [[tutoriel:comment_ajouter_des_paquets_sans_internet|méthodes officielles]].</​note>​+<note important>​Pour des raisons évidentes de sécurité, l'​utilisation de scripts trouvés sur internet en mode administrateur est à éviter, à moins de s'y connaitre suffisamment pour en contrôler la qualité. Nous essaierons ici de détailler la signification de quelques uns des éléments des scripts que nous utiliserons,​ mais nous vous recommandons chaudement de tester d'​abord les [[:apt-offline|méthodes officielles]].</​note>​
  
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 16: Ligne 14:
   * Disposer d'une clé USB (d'au moins 1 Go de préférence) ou tout autre support amovible.   * Disposer d'une clé USB (d'au moins 1 Go de préférence) ou tout autre support amovible.
   * Avoir un fichier sources.list fonctionnel. Si ce n'est pas le cas, des générateurs sont disponibles sur la page [[:​sources.list|sources.list]].   * Avoir un fichier sources.list fonctionnel. Si ce n'est pas le cas, des générateurs sont disponibles sur la page [[:​sources.list|sources.list]].
- 
-  
- 
  
 ===== Mise à jour manuelle des listes de paquets ===== ===== Mise à jour manuelle des listes de paquets =====
Ligne 25: Ligne 20:
  
 ==== Scripts de bertrand0 ==== ==== Scripts de bertrand0 ====
- +Enregistrez le texte de chaque script qui suit dans un fichier texte dans votre **Dossier Personnel** et rendez-le [[[[:​tutoriel:​script_shell#​executer_un_script|exécutable]]. 
-=== à enregistrer sous le nom <gen-myupdate-download> === +  * Script auquel vous donnerez ​le nom **gen-myupdate-download**: 
- +<​code ​bash>#​!/​bin/​bash
-<​code>#​!/​bin/​bash+
 MYSH=myupdate-download MYSH=myupdate-download
 MYTB2=myupdate.tar.bz2 MYTB2=myupdate.tar.bz2
Ligne 48: Ligne 42:
 echo "tar --mode 644 --owner root --group root -cjf \"​\$OLDDIR/​$MYTB2\"​ *" >> $MYSH echo "tar --mode 644 --owner root --group root -cjf \"​\$OLDDIR/​$MYTB2\"​ *" >> $MYSH
 chmod 755 $MYSH</​code>​ chmod 755 $MYSH</​code>​
 +* Script auquel vous donnerez le nom **myupdate-copy**:​
  
-=== à enregistrer sous le nom <​myupdate-copy>​ === +<​code ​bash>#​!/​bin/​bash
- +
-<​code>#​!/​bin/​bash+
 MYTB2=my-update.tar.bz2 MYTB2=my-update.tar.bz2
 [ -f "​$MYTB2"​ ] || exit 1; [ -f "​$MYTB2"​ ] || exit 1;
Ligne 59: Ligne 52:
 touch /​var/​lib/​apt/​periodic/​update-stamp</​code>​ touch /​var/​lib/​apt/​periodic/​update-stamp</​code>​
  
-.+===Utilisation===
  
-**Procédure d'​utilisation :**  +  ​Sur l'​ordinateur qui n'a pas internet : <​code>​sudo bash gen-myupdate-download</​code>​ 
- +Ce script crée un autre script nommé ​''​myupdate-download'' ​à emporter sur la machine (linux) reliée à internet. 
-i) sur l'​ordinateur qui n'a pas internet : +  * Sur l'​ordinateur qui a internet : <​code>​./​myupdate-download</​code>​ 
-<​code>​sudo bash gen-myupdate-download</​code>​ +Ce script télécharge les listes dans un fichier nommé ​''​myupdate.tar.bz2'' ​qu'il faut ramener sur son ordinateur sans internet, 
-ce script crée un autre script nommé ​<myupdate-downloadà emporter sur la machine (linux) reliée à internet. +  * À nouveau sur l'​ordinateur qui n'a pas internet, on peut alors exécuter le troisième script dans le même dossier que celui où se trouve ​''​myupdate.tar.bz2'' ​: <​code>​sudo bash myupdate-copy</​code>​
- +
-ii) sur l'​ordinateur qui a internet : +
-<​code>​./​myupdate-download</​code>​ +
-Ce script télécharge les listes dans un fichier nommé ​<myupdate.tar.bz2qu'il faut ramener sur son ordi. +
- +
-iii) à nouveau sur l'​ordinateur qui n'a pas internet ​+
-On peut alors exécuter le troisième script dans le même dossier, bien sûr que celui où se trouve myupdate.tar.bz2 : +
-<​code>​sudo bash myupdate-copy</​code>​+
 ... et vos listes sont à jour :D. ... et vos listes sont à jour :D.
- 
- 
- 
  
 ==== Script de Skippy le grand gourou ==== ==== Script de Skippy le grand gourou ====
  
-Ce script permet à la fois la mise à jour des listes et le téléchargement des paquets, il télécharge même les clés de sécurité. Il est particulièrement utile dans le cadre des mises à jour du système. Skippy l'​avait autrefois développé et avait eu l'​obligeance de mettre à la disposition de tous, et même s'il ne s'en sert plus, il a eu la gentillesse de le moderniser et de le débugger jusqu'​à ce qu'il atteigne son efficacité actuelle. ​ Voici le [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=79113&​p=4|lien vers le forum]] où poster si vous avez un souci. ​+Ce script permet à la fois la mise à jour des listes et le téléchargement des paquets, il télécharge même les clés de sécurité. Il est particulièrement utile dans le cadre des mises à jour du système. Skippy l'​avait autrefois développé et avait eu l'​obligeance de mettre à la disposition de tous, et même s'il ne s'en sert plus, il a eu la gentillesse de le moderniser et de le débugger jusqu'​à ce qu'il atteigne son efficacité actuelle. ​ Voici le [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=79113&​p=4|lien vers le forum]] où poster si vous avez un souci.
  
-Le script à enregistrer sous le nom de <apt-offest un peu long pour le poster ici, vous le trouverez [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=79113|ici]],​ en tête du topic.+Le script à enregistrer sous le nom de ''​apt-off'' ​est un peu long pour le poster ici, vous le trouverez [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=79113|ici]],​ en tête du topic.
  
-Pour l'​utiliser dans le but de mettre à jour les listes de paquets, il suffit de supprimer (traduction : déplacer ​dans un dossier de sauvegardeles listes de paquets déjà présentes dans votre dossier /​var/​lib/​apt/​lists/,​ c'est à dire tous les fichiers textes sauf lock. +Pour l'​utiliser dans le but de mettre à jour les listes de paquets, il suffit de copier ​dans un dossier de sauvegarde les listes de paquets déjà présentes dans votre dossier ​**/​var/​lib/​apt/​lists/​**, c'est-à-dire tous les fichiers textes sauf le fichier **lock**.
  
 <​code>#​creation du dossier de sauvegarde dans le home <​code>#​creation du dossier de sauvegarde dans le home
Ligne 96: Ligne 78:
 sudo rm -f *_Packages</​code>​ sudo rm -f *_Packages</​code>​
  
-Si vous n'​êtes pas à l'aise avec la console, vous pouvez préalablement naviguer jusqu'​à votre répertoire /​var/​lib/​apt/​lists/​ et sélectionner les fichiers à la souris puis les coller dans le dossier de sauvegarde.+Si vous n'​êtes pas à l'aise avec la console, vous pouvez préalablement naviguer jusqu'​à votre répertoire ​**/​var/​lib/​apt/​lists/​** et sélectionner les fichiers à la souris puis les coller dans le dossier de sauvegarde.
  
-<note warning>Attention!! : un utilisateur pressé pourrait être tenté de remplacer les deux dernières lignes par la simple commande ​+<note warning>Un utilisateur pressé pourrait être tenté de remplacer les deux dernières lignes par la simple commande
 <​code>​sudo rm -f /​var/​lib/​apt/​lists/​*_Packages</​code>​ <​code>​sudo rm -f /​var/​lib/​apt/​lists/​*_Packages</​code>​
 Je vous le déconseille très vivement. En effet si jamais vous faites des erreurs dans la commande comme par exemple glisser un espace entre le / et le var, il y a de grands risques d'​endommager gravement votre système. Je vous le déconseille très vivement. En effet si jamais vous faites des erreurs dans la commande comme par exemple glisser un espace entre le / et le var, il y a de grands risques d'​endommager gravement votre système.
 </​note>​ </​note>​
-Bien maintenant ​placez vous sur votre clé USB, et tapez :+Maintenant ​placez-vous sur votre clé USB, et tapez :
 <​code>​./​apt-off -g dist-upgrade</​code>​ <​code>​./​apt-off -g dist-upgrade</​code>​
-le script se lance puis affiche un avertissement vous invitant à exécuter la commande ​+le script se lance puis affiche un avertissement vous invitant à exécuter la commande ​:
 <​code>​./​apt-off -c</​code>​ <​code>​./​apt-off -c</​code>​
-sur un ordinateur disposant d'​internet. Remarquez qu'un dossier config_files s'est créé. Vous devez l'​avoir avec vous sur l'​ordinateur relié à internet. Effectuez y la commande. Normalement,​ des téléchargements devraient s'​afficher dans le terminal. Revenez sur votre ordinateur (toujours avec le script et le dossier config_files qui s'est un peu rempli) et tapez à nouveau ​ +sur un ordinateur disposant d'​internet. Remarquez qu'un dossier ​**config_files** s'est créé. Vous devez l'​avoir avec vous sur l'​ordinateur relié à internet. Effectuez-y la commande. Normalement,​ des téléchargements devraient s'​afficher dans le terminal. Revenez sur votre ordinateur (toujours avec le script et le dossier ​**config_files** qui s'est un peu rempli) et tapez à nouveau<​code>​./​apt-off -g dist-upgrade</​code>​ 
-<​code>​./​apt-off -g dist-upgrade</​code>​ +Ceci devrait mettre à jour vos listes. Remarquez aussi qu'un fichier ​//offline packages// s'est créé. C'est ce fichier qui va permettre la mise à jour de votre système.
-Ceci devrait mettre à jour vos listes. Remarquez aussi qu'un fichier offline packages s'est créé. C'est ce fichier qui va permettre la mise à jour de votre système. +
- +
  
 ===== Mise à jour du système et installation de nouveaux paquets ===== ===== Mise à jour du système et installation de nouveaux paquets =====
Ligne 116: Ligne 95:
 ==== Script de Skippy le grand gourou (suite) ==== ==== Script de Skippy le grand gourou (suite) ====
  
-Que vous ayez exécuté la mise à jour des listes avec [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=79113|apt-off]] ou non importe peu du moment qu'​elles sont à jour. +Que vous ayez exécuté la mise à jour des listes avec [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=79113|apt-off]] ou nonimporte peu du moment qu'​elles sont à jour. 
-Enregistrez apt-off sur votre clé USB et placez vous dans le répertoire. Puis tapez  +Enregistrez ​''​apt-off'' ​sur votre clé USB et placez vous dans le répertoire. Puis tapez<​code>#​si vous voulez installer un paquet
-<​code>#​si vous voulez installer un paquet+
 ./apt-off -g nom_du_paquet ./apt-off -g nom_du_paquet
 #si vous voulez mettre à jour le système #si vous voulez mettre à jour le système
Ligne 124: Ligne 102:
 </​code>​ </​code>​
  
-notez l'​apparition du fichier ​<offline.packagesqui va contenir toutes les commandes de téléchargement. Vous pouvez bien sûr demander plusieurs paquets à la fois, ou encore exécuter deux commandes successives,​ qui vont se concaténer,​ sauf si à la question du script, vous optez pour l'​écrasement. Allez sur l'​ordinateur relié à internet et tapez la commande ​+Notez l'​apparition du fichier ​''​offline.packages'' ​qui va contenir toutes les commandes de téléchargement. Vous pouvez bien sûr demander plusieurs paquets à la fois, ou encore exécuter deux commandes successives,​ qui vont se concaténer,​ sauf si à la question du script, vous optez pour l'​écrasement. Allez sur l'​ordinateur relié à internet et tapez la commande ​:
 <​code>​./​apt-off -d</​code>​ <​code>​./​apt-off -d</​code>​
-vous devez avoir suffisamment de place sur votre clé bien sûr, surtout ​si vous mettez à jour le système. Un dossier deb se crée dans le répertoire courant qui contient tous les paquets téléchargés. Revenez sur votre ordinateur personnel et exécutez+vous devez avoir suffisamment de place sur votre clé. Surtout ​si vous mettez à jour le système. Un dossier ​**deb** se crée dans le répertoire courant qui contient tous les paquets téléchargés. Revenez sur votre ordinateur personnel et exécutez:
 <​code>#​si vous vouliez installer un paquet <​code>#​si vous vouliez installer un paquet
 ./apt-off -x nom_du_paquet ./apt-off -x nom_du_paquet
 #si vous vouliez mettre à jour le système #si vous vouliez mettre à jour le système
 ./apt-off -x dist-upgrade</​code>​ ./apt-off -x dist-upgrade</​code>​
-fin de la pocédure avec apt-off. ​+fin de la pocédure avec ''​apt-off''​
 <note tip>​Notez que si vous avez un doute sur une option, vous pouvez taper <note tip>​Notez que si vous avez un doute sur une option, vous pouvez taper
 <​code>#​pour afficher l'aide de apt-off <​code>#​pour afficher l'aide de apt-off
Ligne 139: Ligne 117:
 et appuyez sur <q> pour sortir de ces écrans.</​note>​ et appuyez sur <q> pour sortir de ces écrans.</​note>​
  
 +===== Complément : détail des commandes utilisées dans le script =====
  
 +==== Automatisation de la mise à jour des listes de paquets ====
  
-===== Complément : détail ​des commandes utilisées ​dans le script =====+Les listes de paquets contiennent toutes les informations sur les paquets disponibles pour votre distribution,​ ainsi que leur version. C'est sur ces informations que se base votre gestionnaire de paquet pour décider ce qui peut être installé et ce qui peut être mis à jour. Les listes de paquets sont stockées dans le dossier ''/​var/​lib/​apt/​lists/''​. Leurs url de téléchargement sont écrites dans le fichier ''/​etc/​apt/​sources.list'',​ et dans les fichiers contenus dans le dossier ''/​etc/​apt/​sources.list.d''​. 
 + 
 +Par conséquent la mise à jour des listes de paquets consiste à récupérer toutes ces url, à télécharger les fichiers de listes de paquets correspondants,​ et à les placer ​dans leur dossier en écrasant les listes précédentes. C'est en substance ce que font les scripts présentés ici, à quelques limitations près : dans sa version actuelle, ​le script ​de Skippy le grand gourou ne regarde que le contenu du fichier ''/​etc/​apt/​sources.list'',​ et il faut donc y copier coller manuellement le contenu des sous fragments pour pouvoir les mettre à jour aussi. Par ailleurs, la mise à jour des listes avec ce script ne s'​activera que si vous avez vous même vidé manuellement votre dossier ''/​var/​lib/​apt/​lists/''​. 
 + 
 +==== Automatisation de l'​installation / la mise à jour d'​un/​de plusieurs paquets/de la distribution ​==== 
 + 
 +L'​astuce ici, est d'​utiliser des options spéciales de ''​apt-get''​ pour décomposer en plusieurs étapes ce qui tient d'​habitude en une seule ligne de commande, et d'​effectuer ces étapes sur des ordinateurs différents.
  
-FIXME en cours de rédaction+=== Étape 1 préparation sur l'​ordinateur hors ligne ===
  
 +On utilise la commande suivante pour simuler l'​installation des paquets, en affichant juste leurs url.
 +<​code>​sudo apt-get -qq --print-uris install NOM_PAQUET</​code>​
 +Bien sûr, cela marche comme avec ''​apt-get'',​ vous pouvez spécifier plusieurs noms de paquets, ou remplacer ''​install NOM_PAQUET''​ par ''​dist-upgrade''​ si vous le souhaitez.
 +On récupère toutes ces urls, et on crée un script de téléchargement qui va utiliser la commande wget sur chacune de ces url.
  
 +=== Étape 2 : exécution du script de téléchargement sur l'​ordinateur relié au net ===
  
 +Cette étape n'a rien de mystérieux,​ on effectue juste tous les téléchargements de fichiers. C'est pour cela que les droits d'​administrations ne sont pas nécessaires.
  
 +=== Étape 3 : fin de l'​installation sur l'​ordinateur hors ligne ===
  
 +Ça y est on possède tous les paquets. La dernière étape consiste à dire à apt d'​utiliser notre dossier comme source à la place d'​internet : C'est la commande
 +<​code>​sudo apt-get -o dir::​cache::​archives=CHEMIN/​VERS/​LE/​DOSSIER install NOM_PAQUET</​code>​
 +De même que précédemment,​ vous pouvez remplacer ''​install NOM_PAQUET''​ par ''​dist-upgrade''​ si requis.
  
 +==== Conclusion ====
 +Ce que font les divers scripts, c'est simplement l'​automatisation de toutes ces étapes, et leur longueur tient à la volonté de leurs développeurs de rajouter des options ou d'​automatiser au maximum certaines étapes afin de faciliter son utilisation par l'​utilisateur final.
  
 ===== Pages en rapport avec les dépôts APT ===== ===== Pages en rapport avec les dépôts APT =====
  • tutoriel/scripts_de_mise_a_jour_sans_internet.1291566608.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)