Différences
Ci-dessous, les différences entre deux révisions de la page.
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.bz2> qu'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-off> est 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 sauvegarde) les 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 non, importe 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.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 | + | 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 ===== |