Chapitre 4. L'interface
Précédent |  |

# Chapitre 4. L'interface

La méthode APT de dselect et le programme apt-get utilisent la même interface. Elle consiste en un système simple qui indique les opérations qui seront effectuées puis les réalise.[2] Après avoir indiqué un résumé des opérations qui seront effectuées, APT donnera un certain nombre d'informations permettant d'estimer sa progression, tout au long des actions qu'il effectue.

## 4.1. Démarrage

Avant toute opération autre qu'une mise à jour, APT effectue un certain nombre d'actions pour préparer ses mécaismes internes de fonctionnement. Il vérifie également l'état du système. Ces opérations peuvent être effectuées isolément avec la commande `apt-get check`.

    # apt-get check
    Lecture de la liste des paquets... Fait
    Construction de l'arbre des dépendances... Fait

En premier lieu, la liste des paquets est lue et placée en mémoire. APT utilise un mécanisme de cache et cette opération sera plus rapide si elle est effectuée une deuxième fois.Si certains des fichiers de paquets ne sont pas trouvés, ils seront ignorés et une informatique sera affichée quand apt-get se terminera.

Ensuite, une analyse détaillée des dépendances du système est réalisée. Les dépendances de chaque paquet installé ou décompressé sont vérifiées. Si un problème est trouvé, il sera affiché et apt-get bloquera des opérations ultérieures.

    # apt-get check
    Lecture de la liste des paquets... Fait
    Construction de l'arbre des dépendances... Fait
    Vous pouvez lancer « apt --fix-broken install » pour corriger ces problèmes.
    Les paquets suivants contiennent des dépendances non satisfaites :
      9fonts: Depends: xlib6g mais il n'est pas installé
      uucp: Depends: mailx mais il n'est pas installé
      blast: Depends: xlib6g (>= 3.3-5) mais il n'est pas installé
      adduser: Depends: perl-base mais il n'est pas installé
      aumix: Depends: libgpmg1 mais il n'est pas installé
      debiandoc-sgml: Depends: sgml-base mais il n'est pas installé
      bash-builtins: Depends: bash (>= 2.01) mais 2.0-3 est installé
      cthugha: Depends: svgalibg1 mais il n'est pas installé
               Depends: xlib6g (>= 3.3-5) mais il n'est pas installé
      libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1)

Dans cet exemple, le système comporte plusieurs problèmes, notamment un problème sérieux avec libreadline2g. Une ligne est affichée pour chaque paquet dont les dépendances ne sont pas satisfaites, indiquant quel est le problème. Une explication simple du problème est donnée.

Il existe deux façons pour le système d'aboutir à cet état. Cela peut d'abord être causé par des subtilités de relations entre les paquets que dpkg aurait manquées lors de mises à jour. [3]. Cela peut également être dû à l'échec antérieur d'une installation de paquet. Dans le cas présent, un paquet a pu être décompressé sans que ses dépendances ne soient satisfaites.

La seconde situation est moins grave que la première car APT met certaines contraintes sur l'ordre d'installation des paquets. Dans les deux cas, l'option `-f` utilisée avec apt-get conduira APT à rechercher une solution possible puis à continuer. La méthode APT de dselect utilise toujours cette option `-f` afin de pouvoir poursuivre plus facilement ses opérations si un script de mainteneur échoue de manière inopinée.

Cependant, si l'option `-f` est utilisée pour corriger un système fortement corrompu qui est dans le premier cas, il est possible que l'opération échoue immédiatement ou au cours des diverses tentatives de réparation effectuées. Dans tous les cas, il peut être nécessaire de corriger la situation manuellement avec dpkg (éventuellement en utilisant des options pour forcer certains opérations) avant de pouvoir utiliser à nouveau APT.

## 4.2. Le rapport d'état

Avant de démarrer ses actions, apt-get en affiche un résumé. En général, ce rapport dépend du type d'opération qui est entreprise, mais de nombreux éléments sont communs aux différents types de rapports. Ainsi, dans tous les cas, les listes reflètent l'état final du système, en tenant compte de l'option `-f` et des autres opérations découlant du type de commande utilisée.

### 4.2.1. La liste des paquets supplémentaires

    Les paquets supplémentaires suivants seront installés :
      libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl
      mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base
      bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy
      squake pgp-i python-base debmake ldso perl libreadlineg2
      ssh

La liste des paquets supplémentaires montre tous les paquets installés ou mis à jour en plus de ceux indiqués à la ligne de commande. Elle n'apparaît qu'avec la commande `install`. Le plus souvent, les paquets concernés sont le résultat d'une installation automatique.

### 4.2.2. Les paquets à supprimer

    Les paquets suivants seront ENLEVÉS :
      xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix
      xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel
      xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid
      nas xpilot xfig

La liste des paquets à enlever montre tous les paquets qui seront supprimés du système. Elle peut apparaître pour tout type d'opération. Il est conseillé de l'inspecter en détail afin de vérifier qu'aucun paquet important ne va être supprimé. L'option `-f` provoque notamment souvent des suppressions de paquets et il est déconseillé d'être particulièrement attentif dans ce genre de cas. La liste peut comporter des paquets qui seront supprimés parce qu'ils sont seulement partiellement installés, par exemple après l'interruption d'une opération d'installation.

### 4.2.3. La liste des nouveaux paquets

    Les NOUVEAUX paquets suivants seront installés :
      zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base

La liste des nouveaux paquets est un simple rappel des opérations qui vont avoir lieu. Les paquets affichés ne sont pas encore présents sur le système mais le seront une fois qu'APT aura terminé.

### 4.2.4. La liste des paquets conservés

    Les paquets suivants ont été conservés :
      compface man-db tetex-base msql libpaper svgalib1
      gs snmp arena lynx xpat2 groff xscreensaver

À chaque fois que le système entier est mis à jour, il est possible que de nouvelles versions de paquets ne puissent pas être installées car elles ont besoins ne nouveaux paquets ou qu'elles entrent en conflit avec des paquets existants. Ces paquets apparaîtront alors dans la liste des paquets conservés. Le meilleure méthode pour effectivement installer ces paquets est souvent de le faire explicitement avec la commande `apt-get install` ou avec dselect.

### 4.2.5. L'avertissement pour paquets retenus

    Les paquets retenus suivants seront changés :
      cvs

Il peut parfois être utile de demander à APT d'installer un paquet retenu (« hold »). Dans ce cas, le programme affichera un avertissement indiquant que le paquet retenu va être modifié. Cela ne se produira que lors de l'utilisation des commandes dist-upgrade ou install.

### 4.2.6. Résumé final

Enfin, APT affichera un résumé de toutes les opérations qui prendront place.

    206 paquets mis à jour, 8 nouvellement installés, 23 à enlever et 51 non mis à jour.
    12 paquets partiellement installés ou enlevés.
    Il est nécessaire de prendre 65,7 Mo/66,7 Mo dans les archives. Après cette opération, 26,5 Mo d'espace disque supplémentaires seront utilisés.

La première ligne de ce résumé est une version simplifiée de l'ensemble des listes et indique le nombre de mises à jour (paquets déjà installés et pour lesquels une nouvelle version est disponible). La deuxième ligne indique le nombre de paquets incorrectement configurés, en raison notamment d'installations interrompues. La dernière ligne indique l'espace disque nécessaire pour effectuer l'installation. Le premier couple de nombre fait référence à la taille des fichiers d'archive. Le premier nombre est le nombre d'octets à récupérer depuis les sites distants et le deuxième la taille totale de tous les fichiers nécessaires. Le nombre suivant représente la différence d'espace occupé entre les paquets installés actuellement et ce qui sera ensuite installé. Il est grossièrement égal à l'espace supplémentaire nécessaire dans /usr après achèvement de toutes les opérations. Si de nombreux paquets sont supprimés, cette valeur peut représenter l'espace qui est alors libéré.

D'autres rapports peuvent être créés avec l'option -u qui affiche les paquets à mettre à jour. Il sont analogues aux exemples précédents.

## 4.3. L'affichage d'état

Pendant le téléchargement des fichiers des paquets, APT affiche un certain nombre de messages d'avancement.

    # apt-get update
    Réception de :1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages
    Réception de :2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages
    Atteint http://llug.sep.bnl.gov/debian/ testing/main Packages
    Réception de :4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages
    Réception de :5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages
    11% [5 testing/non-free `Attente du fichier' 0/32.1k 0%] 2203b/s 1m52s

Les lignes qui débutent par « Réception de » sont affichées quand APT démarre la récupération d'un fichier alors que la dernière ligne indique la progression du téléchargement. La première valeur de pourcentage de la ligne est le pourcentage de téléchargement déjà effectué, pour l'ensemble des fichiers. Il faut noter que, comme la taille des fichiers de paquets n'est pas connue, `apt-get update` estime le pourcentage effectué ce qui peut conduire à des imprécisions.

La section suivante de la ligne d'état est répétée pour chaque sous-tâche de téléchargement. Elle indique l'opération effectuée et d'autres informations utiles sur ce qui est en cours. Cette section indiquera parfois Forking ce qui indique que le système charge le module de téléchargement. Le premier mot après le crochet ouvrant ([) est le numéro d'ordre de téléchargement comme indiqué dans les lignes d'historique. Le mot suivant est le nom court de l'objet téléchargé. Pour les archives, il s'agit du nom du paquet en cours de récupération.

À l'intérieur des guillemets, on trouve une information sur la progression de la phase de négociation du téléchargement. Usuellement, elle évolue de Connexion à Attente du fichier, puis Téléchargement ou Reprise. La valeur finale est le nombre d'octets téléchargés depuis le site distant. Une fois le téléchargement commencé, cette indication prend la forme `102/10,2ko`, ce qui indique que 102 octets ont été téléchargés et que 10,2 kilo-octets sont attendus. La taille totale est toujours représentées sur 4 digits pour des raisons de place disponible. Après cet affichage de taille, se trouve une barre de progression pour le téléchargement du fichier lui-même. L'élément suivant est la vitesse instantanée de téléchargement. Elle est mise à jour toutes les 5 secondes et représente la vitesse de transfert pour cette période. Enfin, est affiché la temps de téléchargement restant estimé. Cette information est mise régulièrement à jour et représete la durée estimée de téléchargement de toute ce qui est nécessaire, à la vitesse affichée.

La ligne d'état est mise à jour chaque demi-seconde afin de fournir un retour régulier sur la progression du téléchargement alors que les lignes « Réception de » reculent d'une unité à chaque fois qu'un nouveau fichier est démarré. Comme l'état est mis à jour régulièrement, il ne peut pas servir pour la journalisation dans un fichier. Il est nécessaire d'utiliser l'option `-q` pour supprimer cet affichage.

## 4.4. Dpkg

APT utilise dpkg pour installer les archives et bascule vers l'interface de ce programme une fois le téléchargement terminé. dpkg peut poser un certain nombre de questions pendant le traitement des paquets, qui peuvent eux-même être amener à poser des questions. Chacune de ces questions comporte un description de ce qui est attendu et elles sont trop variables d'un paquet à l'autre pour qu'une description détaillée soit donnée dans ce document.

[2] La méthode dselect consiste en fait en un jeu de scripts qui encapsulent apt-get. Cela approte des fonctionnalités supplémentaires à celles d'apt-get utilisé isolément.

[3] Cependant, APT prend en compte les dépendances connues et s'efforce d'éviter que cette situation ne se produise

Précédent |  |
Chapitre 3. DSelect | Sommaire |