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.
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
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
Pour un paquet non installé, utiliser dpkg-deb:
dpkg-deb --info elasticsearch-7.7.0-no-jdk-amd64.deb
Pour lister les fichiers contenus dans le paquet .deb nommé monPaquet, invoquer dpkg avec l'option -L:
$ dpkg -L monPaquet
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:
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
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:
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
L'utilitaire apt-get possède deux arguments pour désinstaller un paquet:
$ sudo apt-get purge monPaquet
Pour lister les versions disponibles d'un paquet, utiliser la commande apt-cache avec l'argument showpkg:
$ apt-cache showpkg libcurl3
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
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.
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";
# 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
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.
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.