Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



Comment ajouter des paquets ou mettre à jour Ubuntu sans Internet ?

Ce tutoriel est destiné à tous ceux qui ont installé Ubuntu sur un ordinateur qui n'a pas de connexion à Internet, mais qui aimeraient bien néanmoins maintenir leur système à jour et installer les applications qui leur manquent.

Rappelons rapidement que l'installation de nouvelles applications se fait par l'intermédiaire de l'installation de paquets. Ceux-ci sont téléchargeables à partir de dépôts dont les adresses sont listées dans votre fichier sources.list.

Si vous avez le choix lorsque vous installez Ubuntu, faites-le à partir du DVD qui est plus complet que le LiveCD.

Il existe d'autres méthodes : voir wiki anglophone.

  • Avoir accès à un ordinateur sous Ubuntu ou Windows (d'un ami, ou café Internet) disposant d'une connexion Internet.
  • 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.

Avec Keryx

Keryx est un logiciel à interface graphique multiplateforme (Linux et Windows) qui permet de télécharger des mises à jour et des paquets logiciels sur un ordinateur ayant accès à Internet, puis de les installer sur un PC sans connexion. Consultez la page dédiée à Keryx.

Avec APTonCD

Cette méthode suppose que vous avez un ami qui dispose d'un ordinateur avec Ubuntu relié à internet. Persuadez le d'installer tous les paquets dont vous avez besoin, et d'installer le paquet aptoncd. Il pourra alors l'utiliser pour créer un cd de paquets avec tous ceux dont vous avez besoin. Voir les pages dédiées à APTonCD.

Avec Synaptic

Ouvrez le gestionnaire de paquets Synaptic. Puis utilisez les outils de recherche pour trouver et sélectionner les paquets qui vous intéressent. Allez ensuite dans Fichier → Générer un script de téléchargement de paquets. Enregistrez le script sur votre clé USB, emportez-le sur un ordinateur sous Ubuntu disposant d'internet, et exécutez-le. Revenez sur votre ordinateur avec vos paquets téléchargés, relancez Synaptic et utilisez Fichier → Ajouter les paquets téléchargés, et le tour sera joué.

Avec Wubdepends sous Windows

Cette solution peut être pratique dans le cas l'ordinateur connecté à Internet fonctionne sous Windows. Wubdepends est une petite application (codée en Python, Glade et GTK) qui permet de télécharger le paquet souhaité et ses dépendances, en spécifiant la distribution et l'architecture.

Les paquets pourront ensuite être reversés à un dépôt local sur l'ordinateur sous Ubuntu, afin de simplifier l'installation et de préserver la gestion des dépendances.

On notera que :

  • cet outil ne peut pas être utilisé à travers un proxy ;
  • cet outil travaille à partir d'une liste de dépôts pré-établie (dépôts officiels uniquement?).

Voilà bien la méthode la plus malcommode : télécharger les paquets à la main directement depuis les dépôts. Seul avantage : si le seul ordinateur relié à internet auquel vous pouvez avoir accès ne fonctionne pas sur Linux et que vous ne pouvez le démarrer avec un Live CD pour cause de BIOS protégé, vous pouvez tout de même utiliser cette méthode. Elle est particulièrement compliquée parce que tous les paquets Ubuntu sont dépendants entre eux, ainsi si vous téléchargez à la main un paquet A, il y a des chances qu'il dépende d'autres paquets nommés B, C, et D, eux même dépendants de F, G, H, I et entre eux, avec G et I qui dépendent de A et C, et F qui ne dépend de rien, tandis que H dépend encore de 4 autre paquets, bref vous avez besoin d'un seul paquet, et vous devez en télécharger 30, tous à la main. Il ne vous restera plus qu'à les copier sur votre ordinateur et à les installer selon la méthode du paquet téléchargé.

L'ensemble des méthodes listées ci-dessous suppose que vous pouvez avoir accès à un ordinateur disposant d'une connexion internet haut débit sur lequel vous n'avez pas nécessairement les droits d'administration, et que vous possédez une clé USB (1GO serait confortable). Ce tuto s'adressant plutôt aux débutants sous Ubuntu, nous serons assez explicites, cependant si vous ne comprenez pas certaines lignes de commandes à taper dans le terminal, reportez-vous aux pages correspondantes. Vous pouvez aussi consulter le guide pour apprendre Linux en 10 minutes. Précisons enfin que pour chaque script que vous trouverez dans ce tuto, vous devrez après l'avoir enregistré taper

chmod +x nom_du_script

dans un terminal pour pouvoir l'exécuter ensuite. Notez les phrases commençant par 'je', synonymes de "ça n'engage que moi" ;=)

Vous êtes perdu? Vous pouvez également consulter le tutoriel Comment modifier les sources de mise à jour pour davantage de détails sur le système de mise à jour.

Cette méthode s'utilise avec le terminal mais elle est assez simple et efficace! Les listes de paquets utilisées étant celles de l'ordinateur relié à Internet, il n'est pas nécessaire de passer par les étapes précédentes (c-à-d la mise à jour de la liste source, et la mise à jour des listes des paquets) à condition que les listes de l'ordinateur relié à internet soient suffisamment à jour (mais si vous pouvez le faire c'est quand même mieux).

  1. Sur l'ordinateur connecté, créez un nouveau dossier (Ex : tempo).
  2. Créez dans ce dossier (tempo) un autre dossier nommé partial (Ce dossier sera vide a la fin du téléchargement ! mais il est indispensable).
  3. Ouvrez un terminal et placez vous dans votre dossier en tapant la commande
    cd /chemin/ver/votre/dossier/tempo

    Par exemple :

    cd /home/raouf/Bureau/tempo

    suivi de la touche ENTRÉE du clavier.

  4. Ensuite, pour télécharger le paquet et ses dépendances, tapez la commande ci dessous en remplaçant "monpaquet" par le nom du paquet en question :
    apt-get --install-recommends -o "Dir::Cache::archives=`pwd`" -o "Debug::NoLocking=true" -o "Dir::State::status=/dev/null" -d install monpaquet 

    Reste alors à patienter selon le débit de votre connexion ;-). Vous pouvez répéter cette commande une autre fois pour vous assurer que toutes les dépendances ont bien été téléchargées.(FIXME: bizarre)

  5. Copiez le dossier sur une clé usb et rapportez le sur l'ordinateur sans internet.
  6. Ouvrez un terminal et placez vous dans le dossier que vous avez copié (de la même manière que la précédente cd /chemin…/tempo + ENTRÉE).
  7. Et enfin installez le paquet et ses dépendances en tapant la commande
    sudo dpkg -i *.deb
Comme vous utilisez les listes de paquets de l'ordinateur relié à internet pour procéder à la mise à jour de l'ordinateur non connecté, ce dernier doit tourner sous la même version d'Ubuntu ou d'une autre de ses variantes, que l'ordinateur relié à internet ! (par exemple si sur le non connecté c'est "Intrepid Ibex" vous devez télécharger les paquet sur un ordinateur qui tourne sous "Intrepid Ibex" et non pas "Hardy Heron"). Notez encore que cette méthode n'est pas fiable à 100%. Elle nécessite que les deux ordinateurs aient des configurations proches, autrement des problèmes de dépendances mal téléchargées ou d'incompatibilités peuvent se produire (FIXME: à détailler).

Les procédures listées ci-dessous permettent la mise à jour de votre liste de paquets. À noter que seule la dernière méthode permet de téléchargement de paquets.

Le bricolage fastidieux (et pas très propre)

A tester si rien d'autre ne marche. Cependant il est bon de l'exposer car ça permet de voir ce qui se passe vraiment. ouvrez un terminal et tapez :

sudo apt-get update -qq --print-uris >> toto.txt && gedit toto.txt

dans le fichier qui s'ouvre, vous trouverez notamment une url par ligne. Enrgistrez le fichier sur votre clé, allez sur l'ordinateur (linux) où vous avez internet, et pour chaque url, tapez

wget <url>

puis ramenez les fichiers téléchargés sur votre ordinateur. Placez vous dans le dossier où vous avez téléchargé (on suppose dans les prochaines commandes que ce sont les seuls fichiers .gz du répertoire). Comme précédemment afin d'alléger la présentation de la page, voici les commandes successives en un seul bloc.

#on copie les paquets dans le bon répertoire
sudo cp *.gz /var/lib/apt/lists/
#on se place dans ce répertoire
cd /var/lib/apt/lists/
#on dézippe les listes de paquets 
sudo gunzip *.gz

A ce stade cela pourrait marcher, mais vous allez avoir des problèmes en lançant l'utilitaire de mise à jour qui va vous dire qu'il n'a pas réussi à dévérouiller les fichiers. C'est pourquoi il faut ajouter :

sudo chmod 755 *_Packages

Vos listes sont désormais à jour.

Un bricolage un peu plus poussé

Sur le forum bertrand0 m'a obligeamment fournit les deux scripts shell suivants :

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

Utiliser le super 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.

Apt-off

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.

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