Utilisation d'APT hors ligne
-----------------------------------------------------------------------------
Jason Gunthorpe
<jgg@debian.org>
Version 2.4.14
-----------------------------------------------------------------------------
Copyright © 1999 Jason Gunthorpe
Mention de licence
APT, ainsi que ce document, sont libres. Vous pouvez les redistribuer et
les modifier en respectant les conditions de la licence publique générale
GNU telle que publiée par la Free Software Foundation, en version 2 ou
ultérieure.
Les détails complets de cette licence sont, sur les systèmes Debian GNU/
Linux, consultables dans le fichier usr/share/common-licenses/GPL.
Résumé
Ce document décrit la méthode d'utilisation d'APT hors connexion à un réseau,
et plus particulièrement une approche « sneaker-net » pour les mises à jour.
-----------------------------------------------------------------------------
Table des matières
1. Introduction
1.1. Aperçu
2. Utilisation d'APT sur les deux machines
2.1. Aperçu
2.2. Le fichier de configuration
3. Utilisation d'APT et wget
3.1. Aperçu
3.2. Fonctionnement
Chapitre 1. Introduction
Table des matières
1.1. Aperçu
1.1. Aperçu
Normalement, APT a besoin d'avoir un accès direct à une archive Debian,
soit sur un support local, soit via le réseau. Un autre cas intéressant à
traiter est celui d'une machine dotée d'une liaison peu rapide (comme un
modem) avec une autre possédant une connexion à haut débit mais située à
distance.
Une solution est d'utiliser un support amovible de grande taille tel
qu'un disque Zip ou un disque Superdisk (NdT : ce document est
daté..:-)). Bien que ces supports ne disposent pas d'assez de place pour
héberger une archive Debian complète, ils peuvent toutefois contenir un
sous-ensemble de taille suffisante pour les besoins de nombreux
utilisateurs. L'idée est alors d'utiliser APT pour créer une liste de
paquets nécessaires, puis de les récupérer avec une machine disposant
d'une bonne connectivité. Il est même possible d'utiliser soit une autre
machine Debian avec APT soit un autre système d'exploitation et un outil
de téléchargement tel que wget. Dans ce qui suit, machine distante
désignera la machine qui télécharge les paquets et machine cible, celle
qui a une connectivité limitée.
Il est nécessaire de manipuler le fichier de configuration d'APT de
manière intelligente. Le préalable est d'indiquer à APT d'examiner le
contenu d'un disque pour y trouver les fichiers d'archive. Ce disque doit
utiliser un système de fichier autorisant les noms longs, par exemple
ext2, fat32 ou vfat.
Chapitre 2. Utilisation d'APT sur les deux machines
Table des matières
2.1. Aperçu
2.2. Le fichier de configuration
2.1. Aperçu
Si APT existe sur les deux machines, le cas est relativement simple.
L'idée de base est de mettre une copie du fichier d'état sur le disque et
d'utiliser la machine distante pour récupérer la dernière liste de
paquets et choisir ceux à télécharger. La structure des répertoires du
disque devraient ressembler à :
/disc/
archives/
partial/
lists/
partial/
status
sources.list
apt.conf
2.2. Le fichier de configuration
Le fichier de configuration indique à APT où conserver ses fichiers sur
le disque et d'utiliser également les fichiers de configuration du
disque. Le fichier sources.list devrait référencer les sites que vous
souhaitez utiliser depuis la machine distante et le fichier d'état doit
être une copie de /var/lib/dpkg/status de l'ordinateur cible. Veuillez
noter que si sous utilisez une archive locale, les URI doivent en être
copiés. La syntaxe est la même que celle des URI fichiers.
apt.conf doit avoir les informations nécessaires pour qu'APT utilise le
disque.disc:
APT
{
/* This is not necessary if the two machines are the same arch, it tells
the remote APT what architecture the target machine is */
Architecture "i386";
Get::Download-Only "true";
};
Dir
{
/* Use the disc for state information and redirect the status file from
the /var/lib/dpkg default */
State "/disc/";
State::status "status";
// Binary caches will be stored locally
Cache::archives "/disc/archives/";
Cache "/tmp/";
// Location of the source list.
Etc "/disc/";
};
Plus d'informations peuvent être trouvées dans la page de manuel du
fichier apt.conf et dans l'exemple de fichier de configuration que l'on
peut trouver dans /usr/share/doc/apt/examples/apt.conf.
Sur la machine cible, il est d'abord nécessaire de monter le disque et y
copier le fichier /var/lib/dpkg/status. Il sera aussi nécessaire de créer
les répertoires dans l'aperçu (Overview), archives/partial/ and lists/
partial/. Connecter ensuite le disque à la machine distante et configurer
le fichier sources.list. Sur la machine distante, exécuter la séquence de
commandes suivante :
# export APT_CONFIG="/disc/apt.conf"
# apt-get update
[ APT récupère les fichiers des paquets ]
# apt-get dist-upgrade
[ APT récupère tous les fichiers nécessaires à la mise à jour de la machine distante ]
La commande dist-upgrade peut être remplacée par toute autres commande
usuelle d'APT, notamment dselect-upgrade. Il est même possible d'utiliser
une interface comme dselect. Cependant, cela complique la communication
des choix vers l'ordinateur local.
Après cette opération, le disque contiendra tous les fichiers d'index et
les archives nécessaires pour mettre à jour la machine cible. Il est
alors possible d'y ramener le disque et exécuter :
# export APT_CONFIG="/disc/apt.conf"
# apt-get check
[ APT crée la copie locale des fichiers de cache ]
# apt-get --no-d -o dir::state::status=/var/lib/dpkg/status dist-upgrade
[ Ou toute autre commande APT ]
Pour un fonctionnement correct, il est indispensable de ré-indiquer que
le fichier d'état est le fichier local. Cela est très important.
Si vous utilisez dselect, vous pouvez effectuer l'opération dangereuse
consistant à copier disc/status en /var/lib/dpkg/status, afin que les
choix effectués sur la machine distante soient mis à jour. Il est
recommandé de n'éffectuer les choix que sur la machine locale, mais ce
n'est pas toujours possible. NE COPIEZ PAS le fichier d'état si dpkg ou
APT ont été exécutés dans l'intervalle.
Chapitre 3. Utilisation d'APT et wget
Table des matières
3.1. Aperçu
3.2. Fonctionnement
3.1. Aperçu
wget est un outil classique de téléchargement qui peut être exécuté sur à
peu près tout type de machine. À la différence de la méthode précédente,
cela impose que la machine Debian a déjà une liste des paquets
disponibles.
L'idée de base est de créer un disque qui ne comporte que les fichiers
archive téléchargés depuis le site distant. Cela peut être effectué avec
l'option --print-uris d'apt-get puis de la préparation d'un script wget
permettant de récupérer les paquets/
3.2. Fonctionnement
À la différence de la méthode précédente, aucun fichier de configuration
spécifique n'est nécessaire. Seules les commandes standard d'APT seront
utilisées pour créer la liste de ficheirs.
# apt-get dist-upgrade
[ Répondre négativement à la question, pour être sûr(e) que les actions vous conviennent ]
# apt-get -qq --print-uris dist-upgrade > uris
# awk '{print "wget -O " $2 " " $1}' < uris > /disc/wget-script
Toute autre commande que dist-upgrade peut être utilisée, y compris
dselect-upgrade.
Le fichier /disc/wget-script contiendra alors la liste des commandes wget
à exécuter afin de récupérer les fichiers nécessaires. Ce script doit
être exécuté depuis le point de montage du disque afin que les fichiers
soient écrits sur le disque.
Sur la machine distante, il faudra alors exécuter l'équivalent de :
# cd /disc
# sh -x ./wget-script
[ attendre.. ]
Une fois les fichiers téléchargés et le disque reconnecté à la machine
Debian, l'installation peut se poursuivre avec :
# apt-get -o dir::cache::archives="/disc/" dist-upgrade
Cette commande utilisera les fichiers récupérés sur le disque.
Generated by dwww version 1.14 on Sat Jun 13 10:21:35 CEST 2026.