Chapitre 2. Utilisation d'APT sur les deux machines

Table des matières

2.1. Aperçu
2.2. Le fichier de configuration

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

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.