Outils pour utilisateurs

Outils du site


sysadmin:linux:debian:gestion-paquets-debian

Gérer les paquets

apt-get est l'interface en ligne de commande du gestionnaire de paquet APT (Advanced Packaging Tools) propre aux distributions basées sur Debian. Synaptic est un frontend de plus haut niveau.

Rechercher un paquet

apt-cache n'opère aucune modification sur le système. La commande parcours les paquets présents dans le cache et extrait les informations des méta-données.

Rechercher un motif seulement dans un nom de paquet, apt-cache pkgnames peut être utilisé. Sans argument, la commande retourne sur la sortie standard le nom de tous les paquets.

yoann@janus:~$ sudo apt-cache pkgnames | wc -l
40773
yoann@janus:~$ sudo apt-cache pkgnames twisted
twisted
twisted-doc-api
twisted-doc

apt-cache search permet de rechercher à partir d'un motif (expressions rationnelles POSIX) une chaine présente dans le nom ou la description de l'ensemble des paquets.

yoann@janus:~$ sudo apt-cache search ^fire dev
firebird2.0-dev - Development files for Firebird - an RDBMS based on InterBase 6.0 code
firebird2.1-dev - Development files for Firebird - an RDBMS based on InterBase 6.0 code
libfwbuilder-dev - Firewall Builder API library development files
libfwbuilder8 - Firewall Builder API library
firefox-2-dev - Safe and easy web browser from Mozilla - transitional package
firefox-3.0-dev - Safe and easy web browser from Mozilla - transitional package
firefox-3.5-dev - Safe and easy web browser from Mozilla - transitional package
firefox-dev - Safe and easy web browser from Mozilla - development files
xul-ext-webdeveloper - web developer extension for the Iceweasel/Firefox web browser
firefox-webdeveloper - paquet factice de transition

Dans l'exemple ci-dessus, on recherche dans tous les paquets une chaine commencant par “fire” et contenant “dev”.

Afficher la description des paquets passés en paramètre:

yoann@janus:~$ sudo apt-cache show twm
Package: twm
Priority: optional
Section: universe/x11
Installed-Size: 388
...
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu

Retrouver le paquet contenant le fichier

Pour retrouver le nom du paquet d'installation d'un fichier, utiliser la commande apt-file avec le chemin complet du fichier:

$ apt-file search /usr/share/dict/words

Lister les dépendances

Pour un paquet non installé, utiliser dpkg-deb:

dpkg-deb --info elasticsearch-7.7.0-no-jdk-amd64.deb

Lister les fichiers d'un paquet

Pour un paquet installé

Pour lister les fichiers contenus dans le paquet .deb nommé monPaquet, invoquer dpkg avec l'option -L:

$ dpkg -L monPaquet

Pour un paquet non installé

Si le paquet n'est pas installé mais est présent sur le système de fichier (dans le cache apt ou téléchargement d'une archivee .deb):

$ dpkg-deb --contents ./usb-creator-gtk_0.2.56.1_amd64.deb

dpkg-deb est l'utilitaire de manipulation des paquets .deb. On peut notamment:

  • lister le contenu avec l'option --contents
  • extraire les fichiers avec --extract

Remarque: Extraire les fichiers via dpkg-deb ne suffit par à faire une installation correcte. Utiliser dpkg pour installer un paquet.

Une solution alternative pour lister des fichiers d'une archive non installée, non présente sur la machine, utiliser apt-file.

$ sudo apt-file list monPaquet

Forcer l'installation

On peut forcer l'installation d'un paquet, l'argument --force-help permet d'afficher les options disponibles:

dpkg --force-help
dpkg --force-architecture --ignore-depends=libc6 -i elasticsearch-7.7.0-no-jdk-amd64.deb

Il est possible de forcer l'installation sans prendre en compte une ou plusieurs dépendances:

 

Réinstaller un paquet

Si des fichiers contenus dans un paquet sont manquant, écrasés ou corrompu, le paquet peut être réinstallé avec l'option --reinstall.

# apt-get install --reinstall monPaquet

Désinstaller un paquet

L'utilitaire apt-get possède deux arguments pour désinstaller un paquet:

  • apt-get remove pour désinstaller les fichiers d'un paquet en conservant les fichiers de configuration.
  • apt-get purge pour supprimer tous les fichiers.
$ sudo apt-get purge monPaquet

Lister les versions

Pour lister les versions disponibles d'un paquet, utiliser la commande apt-cache avec l'argument showpkg:

$ apt-cache showpkg libcurl3

Spécifier une architecture

Il est possible d'installer des binaire compilés pour une autre architecture (autre ABI). Notamment pour pouvoir bénéficier de programme 32 bits sur un système 64 bits. Pour préciser une architecture suffixer le nom du paquet par le caractère : et le nom de l'architecture:

$ sudo apt-get install libc6:i386
Si les paquets ne sont pas disponibles c'est que l'architecture n'est pas paramétrée. Voir le wiki multiarch pour plus de détails.

Supprimer le cache

Le cache apt contient les paquets deb précédemment installés. Ils sont conservés dans /var/cache/apt/archives uniquement pour permettre une réinstallation hors-ligne. Leur suppression ne supprime en rien une application déjà installée et permet de récupérer de l'espace disque si la partition commence à en manquer:

$ du -h /var/cache/apt/archives/
4,0K	/var/cache/apt/archives/partial
405M	/var/cache/apt/archives/
$ sudo apt-get clean 
$ du -h /var/cache/apt/archives/
4,0K	/var/cache/apt/archives/partial
52K	/var/cache/apt/archives/

Dans l'exemple ci dessus on constate qu’après invocation de la commande apt-get clean 405 Mo ont été libérés.

Utiliser un proxy

Modifier le fichier de configuration /etc/apt/apt.conf en introduisant ou modifiant la ligne:

Acquire::http::Proxy "http://proxyServerAddress:proxyPort";
Acquire::https::Proxy "http://proxyServerAddress:proxyPort";

Si une authentification est nécessaire:

Acquire::http::Proxy "http://user:pass@proxyServerAddress:proxyPort";
Acquire::https::Proxy "http://user:pass@proxyServerAddress:proxyPort";
Selon les version d'Ubuntu, le fichier /etc/apt/apt.conf peut ne pas exister. Dans ce cas, créer un fichier /etc/apt/apt.conf.d/99-proxy-server ayant le même contenu que proposer ci-dessus.

Gestion des clés

# Lister les clés enregistrées
$ apt-key list
 
# supprimer une clé (après expiration par exemple)
apt-key del deb@sury.org
 
# ajouter une clé
wget -nv -O - https://packages.sury.org/php/apt.gpg | apt-key add

Anomalies

Sources introuvables

Pour les plus anciennes version d'Ubuntu, on peut rencontrer des problèmes lors de la mise à jour ou de l'installation des paquets car les URLs ont été modifiées, consulter le wiki erreurs-404-sources-apt.

Erreurs dépendances

Lors d'une mise à jour via apt-get update && apt-get upgrade sur un système de fichiers ne présentant plus assez d'espace, l'installation fut interrompue et les dépendances cassées. Les commandes apt-get remove ou apt-get purge qui auraient pu permettre de libérer de l'espace refusaient de s’exécuter tant que la commande apt-get install -f n’était pas correctement exécutée. Malheureusement celle-ci retournait également des erreur de dépendances.

Dans ce cas, la commande dpkg avec les options --force-all et -P a permis de supprimer les paquet présentant des erreurs de dépendances:

dpkg --force-all -P paquet

Une fois ces paquets supprimés, il redevient possible de libérer de l'espace disque via apt-get purge/remove/autoremove . Pour terminer, on peut réinstaller les paquets initialement en erreur.

Références

sysadmin/linux/debian/gestion-paquets-debian.txt · Dernière modification : 2021/04/06 09:16 de 92.154.112.189