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.
Pré-requis
- 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.
Mise à jour manuelle des listes de paquets
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.
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.
Mise à jour du système et installation de nouveaux paquets
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.
#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.
Complément : détail des commandes utilisées dans le script
: en cours de rédaction
Pages en rapport avec les dépôts APT
Contributeurs: Aldian.