Selon les tags présents sur cette page, les informations qu'elle contient n'ont pas été vérifiées pour les dernières versions LTS depuis Ubuntu 14.04 LTS.
Apportez votre aide…

Ceci est une ancienne révision du document !



Scripts de mise à jour sans internet

Ce tutoriel vient en complément du tutoriel 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.

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 méthodes officielles.
  • Disposer des droits d'administration sur son ordinateur.
  • Avoir accès à un ordinateur sous Ubuntu ou Windows (d'un ami, ou café Internet) disposant d'une connexion Internet (les droits d'administration n'y sont pas nécessaires).
  • 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.

Le but de cette section est de faire un sudo apt-get update manuel.

Scripts de bertrand0

à enregistrer sous le nom <gen-myupdate-download>

#!/bin/bash
MYSH=myupdate-download
MYTB2=myupdate.tar.bz2
cat > $MYSH << EOF
#!/bin/bash
TMPDIR="\$(mktemp -dt)" || exit 1
trap 'rm -rf "\$TMPDIR"' EXIT

OLDDIR="\$PWD"
cd "\$TMPDIR"
EOF
apt-get update -qq --print-uris \
| awk '!/\.bz2/{print "wget",$1,"-O",$2};\
/\.bz2/{sub("\.bz2'\''","",$1);\
printf "(wget %s.bz2'\'' -O- | bunzip2 > %s) \
|| (wget %s.gz'\'' -O- | gunzip > %s) \
|| wget %s'\'' -O%s\n",$1,$2,$1,$2,$1,$2}' >> $MYSH

echo "tar --mode 644 --owner root --group root -cjf \"\$OLDDIR/$MYTB2\" *" >> $MYSH
chmod 755 $MYSH

à enregistrer sous le nom <myupdate-copy>

#!/bin/bash
MYTB2=my-update.tar.bz2
[ -f "$MYTB2" ] || exit 1;
OLDDIR="$PWD"
cd /var/lib/apt/lists
tar -xjf "$OLDDIR/$MYTB2"
touch /var/lib/apt/periodic/update-stamp

.

Procédure d'utilisation :

i) sur l'ordinateur qui n'a pas internet :

sudo bash gen-myupdate-download

ce script crée un autre script nommé <myupdate-download> à emporter sur la machine (linux) reliée à internet.

ii) sur l'ordinateur qui a internet :

./myupdate-download

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 :

sudo bash myupdate-copy

… et vos listes sont à jour :D.

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 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 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.

#creation du dossier de sauvegarde dans le home
mkdir save
#sauvegarde des listes
cp /var/lib/apt/lists/*_Packages save/
#on se place dans le répertoire
cd /var/lib/apt/lists/
#suppression des listes
sudo rm -f *_Packages

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.

Attention!! : un utilisateur pressé pourrait être tenté de remplacer les deux dernières lignes par la simple commande
sudo rm -f /var/lib/apt/lists/*_Packages

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.

Bien maintenant placez vous sur votre clé USB, et tapez :

./apt-off -g dist-upgrade

le script se lance puis affiche un avertissement vous invitant à exécuter la commande

./apt-off -c

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

./apt-off -g dist-upgrade

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.

Script de Skippy le grand gourou (suite)

Que vous ayez exécuté la mise à jour des listes avec 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

#si vous voulez installer un paquet
./apt-off -g nom_du_paquet
#si vous voulez mettre à jour le système
./apt-off -g dist-upgrade

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

./apt-off -d

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

#si vous vouliez installer un paquet
./apt-off -x nom_du_paquet
#si vous vouliez mettre à jour le système
./apt-off -x dist-upgrade

fin de la pocédure avec apt-off.

Notez que si vous avez un doute sur une option, vous pouvez taper
#pour afficher l'aide de apt-off
./apt-off -h
#pour afficher juste les options
./apt-off -o

et appuyez sur <q> pour sortir de ces écrans.

FIXME : en cours de rédaction

  • tutoriel/scripts_de_mise_a_jour_sans_internet.1291566608.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)