Version 3.1.3
Copyright © 1998 Jason Gunthorpe
Résumé
Ce document fournit un aperçu des méthodes d'utilisation du gestionnaire de paquets APT.
Table des matières
Table des matières
Le paquet APT comporte actuellement deux parties : la méthode APT pour dselect et l'interface utilisateur en ligne de commande apt-get. Les deux fournissent des méthodes d'installation et de suppression de paquets ainsi que de téléchargement de nouveaux paquets par Internet. |
Le système de gestion de paquets de Debian intègre de nombreuses informations associées à chaque paquet afin de garantir qu'il s'intègre proprement et facilement sur le système. Une des fonctionnalités les plus immédiatement visibles est le système de gestion des dépendances. |
Le système de gestion des dépendances permet aux programmes individuels de partager des éléments du système, tels que les bibliothèques. Il permet d'isoler dans des paquets spécifiques certaines parties moins utilisées des programmes afin de limiter le nombre d'éléments que l'utilisateur ordinaire a besoin d'installer. Ce système de gestion des dépendances permet également d'effectuer des choix parmi les divers agents de transport de courrier électronique, les serveurs X et d'autres composants du système. |
La première étape de compréhension de la gestion de dépendances est d'examiner le fonctionnement d'une dépendance simple. Une dépendance simple est le cas où un paquet donné a besoin qu'un autre paquet soit installé simultanément pour pouvoir fonctionner correctement. |
Par exemple, mailcrypt est une extension d'Emacs qui permet de gérer le courrier électronique chiffré avec GPG. Si GPG n'est pas installé, mailcrypt est inutile. Donc le paquet mailcrypt a une dépendance simple sur GPG. De plus, étant une extension d'Emacs, il a une dépendance simple sur emacs sans lequel il est totalement inutile. |
Un autre type de dépendance importante est la dépendance en conflit. Cela signifie qu'un paquet ne fonctionne pas lorsqu'il est installé en même temps qu'un autre paquet donné, ce qui peut même être dommageable pour le système. Un exemple est par exemple constitué par les agents de transport de courrier tels que sendmail, exim ou qmail. Il n'est pas possible d'installer deux agents de transport de courrier simultanément puisque les deux ont besoin d'être à l'écoute sur le réseau pour recevoir le courrier électronique. Installer deux programmes de ce type sur le même système pourrait conduire à des pertes de données, ce qui explique que tous les agents de transport de courrier électronique soient établis comme étant en conflit les uns avec les autres. |
Il existe également la possibilité pour un paquet donné de prétendre être un autre paquet. Par exemple, exim et sendmail sont analogues sur de nombreux aspects ; ils servent tous deux à acheminer le courrier électronique et leur interface d'utilisation est la même. Pour cette raison, le système de gestion des paquets leur fournit la possibilité d'indiquer qu'ils sont chacun un agent de transport de courrier (« mail transport agent ») en indiquant qu'ils fournissent (« Provides ») « mail-transport-agent ». Ainsi, un paquet qui a besoin de cette fonctionnalité peut dépendre simplement d'un paquet « mail-transprot-agent ». Cette fonctionnalité utile peut toutefois rendre la correction de certains défauts des paquets plus complexe. |
À un instant donné, une dépendance donnée peut être ou pas remplie par des paquets installés ou pas encore installés. APT tente donc de résoudre les problèmes de dépendances par l'intermédiaire d'un certain nombre d'algorithmes automatiques qui simplifient le choix des paquets à installer. |
Le programme apt-get offre une méthode simple pour installer des paquets à la ligne de commande. À la différence de dpkg, apt-get ne gère pas directement les fichiers .deb files. Il travaille avec le nom des paquets et ne peut installer les archives .deb que depuis une Source. |
La première action [1] à effectuer avant
d'utiliser apt-get est de récupérer les listes de paquets
depuis les Sources afin que le programme sache quels
sont les paquets disponibles. Cela peut être effectué avec la commande
|
# apt-get update Réception de http://ftp.de.debian.org/debian/ stable/binary-i386/ Paquets Réception de http://llug.sep.bnl.gov/debian/ testing/contrib Paquets Lecture des listes de paquets... Fait Construction de l'arbre des dépendances... Fait |
Une fois cette mise à jour effectuée, plusieurs commandes peuvent être utilisées : |
|
apt-get fournit de nombreuses options de ligne de
commande qui sont expliquées en détail dans sa page de manuel,
apt-get(8).
Une des plus utiles est l'option |
[1] Si vous utilisez un serveur mandataire (« proxy ») HTTP, vous devez d'abord positionner la variable d'environnement http_proxy, voir sources.list(5) |
La méthode APT de dselect permet d'utiliser le système APT dans son ensemble depuis l'interface graphique de gestion des paquets dselect. L'interface est alors utilisée pour choisir les paquets à installer ou supprimer et c'est APT qui effectue les opérations individuelles d'installation ou suppression. |
Pour activer la méthode APT, il est nécessaire de choisir [A]ccéder dans dselect puis utiliser le choix permettant d'activer APT. Des Sources d'installation seront demandées, qui sont les emplacements d'où les paquets seront récupérés. Cela peut être des sites Internet distants, des miroirs locaux ou des CD. Chaque source peut fournir un sous-ensemble de l'archive complète Debian. APT les combinera automatiquement pour créer un jeu complet de paquets. Avec des supports de type CD, il est conseillé de les indiquer en premier puis de les compléter avec un miroir distant qui permettra d'obtenir les versions les plus à jour s'il y en a. APT utilisera alors les paquets disponibles sur les CD avant de les télécharger via l'Internet. |
Réglage de la liste des emplacements sources de distribution
Veuillez indiquer l'URL de base de la distribution Debian.
Les procédés d'accès connus sont : http file
Exemple :
file:/mnt/debian,
http://deb.debian.org/debian,
URL [http://llug.sep.bnl.gov/debian]:
|
La configuration des Sources débute par l'indication de la base de l'archive Debian, par défaut un miroir HTTP. Puis la distribution est demandée. |
Veuillez indiquer le nom de la distribution à utiliser ou le chemin d'accès au fichier des paquets, terminé par un /. Les noms de distribution sont en général de la forme suivante : stable unstable testing Distribution [stable] : |
La distribution fait référence à la version de Debian dans l'archive, stable à la dernière version publiée et unstable à la version en développement. |
Veuillez indiquer les composants à utiliser Les composants sont en général de la forme suivante : main contrib non-free non-free-firmware Composants [main contrib non-free non-free-firmware] : |
La liste des composants correspond à la liste des sous-ensembles de la distribution que l'on souhaite utiliser. Les distributions sont en général divisées ainsi pour des raisons de licences. La sous-distribution « main » comporte les paquets libres selon les principes du logiciel libre selon Debian (DFSG) alors que contrib et non-free correspondent à des éléments qui comprennent des restrictions de distribution ou d'utilisation. |
Un nombre quelconque de sources peuvent être ajoutées. Le script de configuration continuera à les demander tant que vous n'indiquerez pas que le processus est terminé. |
Avant d'utiliser dselect, il est nécessaire de mettre à jour la liste de ce qui est disponible en choisissant « [M]ise à jour » depuis le menu. Cette action exécutera la commande « apt-get update », ce qui rendra les informations récupérées disponibles pour dselect. Elle doit être utilisée même si la commande « apt-get » a déjà été utilisée sur ce système. |
Une fois cela effectué, vous pouvez poursuivre et utiliser l'option « [S]électionner » pour choisir les paquets à installer puis « [I]nstaller » pour les installer. Lorsque la méthode APT est utilisée, les options « [C]onfigurer » et « [R]etirer » ne sont pas utilisées, car « [I]nstaller » fait l'ensemble des opérations. |
Par défait, APT supprimera automatiquement les fichiers des paquets
(fichiers .deb) une fois qu'ils ont été installés correctement. Pour
modifier ce comportement, vous pouvez utiliser |
Table des matières
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. |
Avant toute opération autre qu'une mise à jour, APT effectue un certain
nombre d'actions pour préparer ses mécanismes 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 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 |
Cependant, si l'option |
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 |
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 |
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 |
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é. |
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 de nouveaux paquets ou qu'elles entrent en conflit avec des paquets
existants. Ces paquets apparaîtront alors dans la liste des paquets
conservés. La meilleure méthode pour effectivement installer ces paquets est
souvent de le faire explicitement avec la commande |
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. |
Enfin, APT affichera un résumé de toutes les opérations qui prendront place. |
206 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. Ils sont analogues aux exemples précédents. |
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/ stable/main Paquets Réception de :2 http://llug.sep.bnl.gov/debian/ testing/contrib Paquets Atteint http://llug.sep.bnl.gov/debian/ testing/main Paquets Réception de :4 http://ftp.de.debian.org/debian/ unstable/binary-i386/ Paquets Réception de :5 http://llug.sep.bnl.gov/debian/ testing/non-free Paquets 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, |
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
|
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 |
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êmes être amenés à poser des questions. Chacune de ces questions comporte une 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. |