Catégories
Devops

APT

apt l’Advanced Packaging Tool (outil de paquetage avancé) est un outil en CLI présent sur les systèmes à base de Linux Debian (Ubuntu, Raspbian, Kali etc.) qui permet de chercher, d’installer ou de mettre à jour des programmes/applications packagés (fichiers archives ou packages .deb) sur nos systèmes d’exploitations.

apt succède à apt-get dont il reprend en partie la syntaxe et fonctionnalité, en améliorant l’ergonomie de la CLI (lire apt vs apt-get).
De plus contrairement à dpkg qui est de plus bas niveau et sur lequel il repose, apt gère les dépendances (installe par exemple les pré-requis).

Scripting

Les scripts shell devraient plutôt utiliser apt-get qu’apt pour éviter de rencontrer des erreurs dues au formatage de la sortie d’apt (voir ce SO), car en effet apt a été conçu pour apporter des informations plus claires à l’utilisateur en mode interactif (ex. barre d’avancement).
Cela nous est signalé par le message suivant si on utilise apt au lieu d’apt-get dans nos scripts:
WARNING : apt does not have a stable CLI interface. Use with caution in scripts.

Sources

apt se base sur des fichiers sources.list pour savoir où se trouvent les dépôts (repositories) de paquets sur internet concernant la version de notre distribution Linux et il est possible d’ajouter d’autres listes dans /etc/apt/sources.list.d/.

Commandes

Les commandes suivantes nécessitent des privilèges élevés (sudo)

apt list --installed        # liste les packages installés
apt search nom-package
apt show nom-package
apt show /etc/apt/sources.list.d/

### installer/désinstaller
apt install nom-package1 nom-package2
apt install -t jessie-backports nom-package   # install d'une ancienne version (backport)
apt install /xxx/Téléchargements/nom-package.deb

apt remove nom-package # supprime juste les binaires
apt purge nom-package # supprime les binaires ET fichiers conf

### gestion des dêpots
apt update              # cherche les MAJ
apt list --upgradable   # liste ce qu'un upgrade mettrait à jour
apt upgrade             # installe les MAJ dispo
apt full-upgrade        # upgrade avec gestion des conflicts

apt edit-sources
apt edit-sources depot-specifique.list # situé dans /etc/apt/sources.list.d/

### maintenance
apt clean
apt autoremove  # supprime les dépendances inutiles
apt --purge autoremove # idem avec les fichiers de conf

Liens

Bon article sur le nettoyage d’une distrib
2 question sur la suppression complète de packages sur AskUbuntu ici et