Translation(s): English - español - Français - Italiano - 한국어(Korean)


Sujets avancés sur la gestion des paquets Debian

La gestion des paquets Debian se compose de plusieurs couches. Les couches les plus basses sont constituées de dpkg et des programmes associés. Au-dessus de ces couches se trouve la famille d'outils Apt tels que 'apt', 'apt-get', 'apt-cache' et autres. Consultez la page Package Management Tools pour une description d'autres outils permettant de travailler avec les fichiers de paquet Debian.

Vous connaissez peut-être certains logiciels comme Firefox, GIMP, etc., mais en réalité, ils ne sont que de très nombreux fichiers qui ont été compilés en un seul. Les personnes (ou parfois une seule personne) qui écrivent ce logiciel sont appelées fournisseurs en amont, elles compilent leur code et écrivent comment l'installer.

Ces fournisseurs en amont travaillent à la sortie de nouveaux logiciels et à la mise à jour des logiciels existants. Lorsqu'ils sont prêts à le diffuser dans le monde entier, ils envoient le tout aux responsables du paquet qui s'occupent de mettre ce logiciel entre les mains des utilisateurs. Ces responsables de paquets examinent, gèrent et distribuent ces logiciels sous forme de paquets. Ainsi, au lieu de télécharger des paquets/logiciels un par un à partir de sites aléatoires (comme sous Windows), il existe quelque chose de mieux : des dépôts de paquets tel qu'appelés dans Debian.

Les dépôts ne sont qu'un emplacement de stockage central pour les paquets. De nombreux dépôts en ligne contiennent de nombreux paquets. Votre machine ne sait pas où chercher ces dépôts à moins que vous ne lui disiez explicitement où chercher. Debian est déjà livré avec des sources pré-approuvées pour obtenir des paquets et c'est ainsi qu'il installe tous les paquets de base que vous voyez sur votre système (si un utilisateur a effectué une installation réseau). Sur un système Debian, ce fichier sources est le fichier/etc/apt/sources.list. Votre machine saura y chercher et vérifier tous les dépôts sources que vous avez ajoutés.

Apt

apt fournit une interface de ligne de commande de haut niveau pour le système de gestion de paquets Debian, avec tous les outils nécessaires en un seul endroit. apt vise à fournir un moyen simple et efficace de gérer les paquets pour les utilisateurs finaux.

Mettre à jour vos listes de paquets

Pour utiliser apt, il est important de récupérer une nouvelle copie des listes de paquets à partir des sources configurées :

# apt update

Mettre à niveau votre système

Vous devez mettre à jour votre système tous les jours, cela vous apporte une sécurité et des corrections de bugs :

# apt upgrade

Il est parfois utile d'utiliser "full-upgrade". Il réalise la fonction de mise à niveau mais enlèvera les paquets actuellement installés si cela est essentiel pour mettre à niveau le système dans son ensemble. Cette commande est habituellement émise lors des mises à niveau du système.

# apt full-upgrade

Avant de mettre à niveau votre système Debian vers la version suivante, accédez à une console tty en appuyant sur CTRL+ALT+F3/F4/F5, etc., car dpkg redémarre certains gestionnaires de connexion qui vous déconnecteront de force lors de la mise à niveau, entrainant une mise à niveau interrompue/partielle

Installer et supprimer des paquets

Pour installer un paquet, Firefox dans cet exemple :

# apt install firefox

Pour supprimer le paquet :

# apt remove firefox

Vous pouvez aussi installer un fichier .deb` avec :

# apt install </path/to/deb/file/debfile.deb>

Note

apt effectue l'action demandée sur un ou plusieurs paquets spécifiés via regex, glob ou correspondance exacte. L'action demandée peut être remplacée pour des paquets spécifiques en ajoutant un plus (+) au nom du paquet pour installer ce paquet ou un moins (-) pour le supprimer.

Une version spécifique d'un paquet peut être sélectionnée pour l'installation en suivant le nom du paquet avec un égal (=) et la version du paquet à sélectionner. Alternativement, une version spécifique peut être sélectionnée en faisant suivre le nom du paquet avec une barre oblique (/) et le nom de code (stretch, buster, sid...) ou le nom de la suite (stable, testing, unstable). Cela sélectionnera également les versions pour les dépendances de ce paquet si nécessaire pour satisfaire la demande. La suppression d'un paquet supprime toutes les données de celui-ci, mais laisse généralement de petits fichiers de configuration utilisateur (modifiés), au cas où la suppression serait un accident. Le simple fait d'émettre une demande d'installation pour le paquet supprimé accidentellement restaurera sa fonction comme avant dans ce cas. D'un autre côté, vous pouvez vous débarrasser de ces restes en invoquant 'purge' même sur les paquet déjà supprimés. Notez que cela n'affecte pas les données ou configurations stockées dans le répertoire personnel des utilisateurs.

Trouver des paquets

Chercher un paquet :

$ apt search <searchterm>

Par exemple, pour trouver un paquet avec le mot 'cats' dans le nom du paquet ou sa description :

$ apt search cats

Pour plus d'informations au sujet d'un paquet :

$ apt info chameleon-cursor-theme

Nettoyer

Après avoir supprimé un paquet, si vous voulez supprimer tous les autres paquets qui ont été automatiquement installés pour satisfaire les dépendances et qui ne sont désormais plus nécessaires :

# apt autoremove

On peut aussi le faire durant la suppression du paquet :

# apt remove clang --auto-remove

Vous devez vérifier que cela n'inclut pas les applications que vous avez appris à apprécier, même si elles ont déjà été installées simplement en tant que dépendance d'un autre paquet. Vous pouvez marquer un tel paquet comme installé manuellement en utilisant apt install foo ou apt-mark auto/manual foo. Les paquets que vous avez installés explicitement/directement via l'installation ne sont également jamais proposés pour une suppression automatique.

Modifier les sources

Il existe une nouvelle fonctionnalité intéressante de apt qui permet d'éditer les sources des paquets, c'est-à-dire « sources.list », dans l'éditeur texte de votre choix tout en fournissant des contrôles de base :

# apt edit-sources

Voir fr/SourcesList sur comment configurer vos sources.

Outils de bas niveau

En grande partie dpkg et ses programmes associés, sont des commandes qui effectuent une seule tâche. Ils sont directement comparables à la commande "rpm" de Redhat.

Contenu d'un fichier Debian

Pour regarder le contenu d'un paquet Debian dans les dépôts de Debian, qu'ils soit installé ou non, installez le paquet  apt-file et exécutez

$ apt-file update
$ apt-file list foo

Pour obtenir le contenu d'un fichier « abc.deb », vous devez exécuter

$ dpkg-deb -c abc.deb

Reconfiguration de debconf

Pour reconfigurer debconf afin qu'il vous informe de la plupart des modifications des nouveaux paquets :

# dpkg-reconfigure debconf

Choisiez ici « medium ».

Gestion des paquets avec apt-get et dpkg

Liste des sources de paquets pour APT

Le fichier /etc/apt/sources.list est le fichier de définition des sources pour apt. Pour de plus amples informations à propos de ce fichier, tapez

$ man 5 sources.list

Récupérer une nouvelle liste de paquets

Pour récupérer la nouvelle liste de tous les paquets à partir de sources.list, exécutez la commande :

# aptitude update

ou la commande équivalente

# apt-get update

Cette commande vérifie les nouveaux fichiers de version sur les serveurs donnés. La commande est suffisamment intelligente pour vérifier si les fichiers de version ont changé depuis la dernière mise à jour.

Mise à jour de tous les fichiers

Pour réaliser une mise à niveau de tous les paquets modifiés, exécutez

# aptitude safe-upgrade

Si vous souhaitez faire cela à partir de cron, vous devrez envisager d'utiliser le paquet cron-apt.

L'ancienne méthode basée sur apt-get est la suivante :

# apt-get upgrade -u

La balise -u montre la liste de tous les paquets mis à jour. Si vous voulez exécuter cette commande comme une tâche de cron, vous devrez utiliser les balises -dy. Avec ces balises, les nouveaux paquets seront téléchargés mais pas installés. Vous pourrez les installer après avec la commande « apt-get update -u ».

Mise à jour d'une distribution et de tous ses fichiers

WARNING

Suivre les instructions que vous trouverez dans les notes de publication est le meilleur moyen que la mise à jour de votre système d'une version majeure de Debian à la suivante (par exemple, de Jessie à Stretch) se termine sans problème !

Ces instructions vous diront d'effectuer au moins une fois un dist-upgrade (au lieu d'un upgrade). Vous aurez donc à saisir quelque chose comme ça :

# apt-get dist-upgrade

à un certain moment de la mise à jour vers une version majeure.

Un dist-upgrade peut être aussi nécessaire pour mettre à jour vers la version la plus récente de testing et unstable. Un dist-upgrade peut aussi être très occasionnellement nécessaire pour obtenir des mises à niveau de sécurité dans la version stable dans le cas où les paquets changent de nom.

Découvrir un paquet

Comment découvrir quel paquet utiliser, sans programme à interface graphique ?

# apt-cache search sylpheed

Sinon utilisez une interface web :

https://packages.debian.org/search?sylpheed

Avec l'interface de recherche web, on peut rechercher un fichier particulier dans le contenu des paquets :

https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=contents&keywords=bin%2Fsylpheed

Installer un paquet

Comment installer un paquet sur votre système sans programme avec une interface graphique ? Tout ce que vous avez à faire est de trouver son nom et de saisir la commande

# aptitude install sylpheed-claws

ou

# apt-get install sylpheed-claws

pour installer le paquet sylpheed-claws.

Supprimer un paquet

Pour se débarrasser du paquet toto dont vous n'avez plus besoin, saisissez la commande

# aptitude remove toto

ou

# apt-get remove toto

La suppression d'un paquet supprime toutes ses données, mais laisse généralement de petits fichiers de configuration utilisateur (modifiés), au cas où la suppression serait un accident. Le simple fait d'émettre une demande d'installation pour le paquet supprimé accidentellement restaurera sa fonction comme avant dans ce cas. D'un autre côté, vous pouvez vous débarrasser de ces restes en appelant purge même sur les paquets déjà supprimés. Notez que cela n'affecte pas les données ou configurations stockées dans votre répertoire personnel.

Donc, techniquement, si le paquet est nécessaire à d'autres paquets, vous serez invité à supprimer ce paquet et tous les autres qui en dépendent. De plus, la simple suppression d'un paquet ne supprime pas les fichiers de configuration liés à celui-ci. Pour vous débarrasser du paquet toto qui n'est plus nécessaire ainsi que de tous les fichiers de configuration et dépendances associées, entrez la commande :

# apt-get purge --autoremove toto

Vous pouvez également utiliser la commande ci-dessous pour purger les fichiers de configuration après avoir exécuté une commande normale de type apt-get remove toto :

# apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')

Warning

Soyez prudent lors de la suppression des paquets. Faites attention aux messages de apt.

Forcer la suppression d'un paquet

Lors d'une mise à niveau de distribution, il peut arriver que vous deviez d'abord supprimer un paquet. Mais parfois, cela n'est pas possible avec apt-get remove car le paquet a des dépendances non satisfaites ou n'est pas complètement installé. Vous pouvez supprimer le paquet toto en utilisant la commande

# dpkg --force-all --remove toto

Connaître le contenu d'un paquet installé

Parfois, vous voulez savoir quels fichiers sont dans le paquet toto. Pour obtenir cette information, entrez la commande

$ dpkg -L toto

Obtenir la description d'un paquet

Vous ne savez pas à quoi sert le paquet toto ? Tapez simplement

$ aptitude show toto

ou

$ dpkg -p toto

Chercher le paquet dont est issu un fichier

Ne vous êtes vous jamais demandé à quel paquet appartient un certain fichier ? Pour obtenir la réponse, par exemple/usr/bin/apt-get), exécutez la commande

$ dpkg -S /usr/bin/apt-get

la réponse sera qu'il appartient au paquet apt.


CategoryPackageManagement | CategorySoftware | CategoryPackaging