Développeur FullStack & Devops

Notes et mémos techniques

apt - Advanced Packaging Tool

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 VS apt-get

apt

apt succède à dpkg qui est de plus bas niveau et sur lequel il repose et gère les dépendances (installe par exemple les pré-requis).

apt-get

apt-get devrait être favorisé dans les scripts plutôt 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

Commandes apt

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

Listing et infos

apt list --installed        # liste les packages installés
apt search nom-package
apt show nom-package

dpkg -L nom-package         # peut apporter plus d'infos qu'apt show

Installer/desinstaller

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épôts et maintenance

## gestion des dépôts
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 dist-upgrade        # deprecated, privilégier apt full-upgrade

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

un bon post sur les différences entre apt update, upgrade, dist-upgrade et full-upgrade

Maintenance

apt clean # supprime les packages et les scripts d'install de /var/cache/apt/archives/
apt autoremove  # supprime les dépendances inutiles
apt --purge autoremove # idem avec les fichiers de conf

Fichiers sources.list

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/.

Pour aller plus loin à propos des fichiers sources.list lire ce très bon article de debian-facile.

Mise à jours de l'OS

La version de l'OS peut etre mise à jour en quelques étapes simples :

MAJ des packages du système actuel

sudo apt update && sudo apt upgrade -y

Edition du sources.list

  • pour passer de Debian 9 à Debian 10, remplacer toutes les occurence de stretch par buster
  • pour passer de Debian 10 à Debian 11, remplacer toutes les occurence de buster/updates par bullseye-security et buster par bullseye.

MAJ des packages du système nouvelle version

Et enfin remettre à jour le système avec ces nouvelles références :

sudo apt update && sudo apt -y full-upgrade

Et voilà nous disposons d'une distribution Linux plus récente 🎉

Ubuntu

Pour un upgrade d'une distib Ubuntu (arrivée en EOL par exemple vers une version LTS) vérifier sa version avec lsb_release -a puis lancer l'update-manager pour effectuer l'upgrade.

Voir page concernant les versions de Ubuntu.

Astuce

Pour déterminer la date d’installation d’un package via APT il faut passer par la date des fichiers situés sous /var/lib/dpkg/info/.

Liens

What is the correct way to completely remove an application? (Stack Exchange Asku Ubuntu)

bash
linux
raspberry-pi
shell
ubuntu
apt
cli
sources.list
update
upgrade
devops
rédigé le 18/08/19, mis à jour le 14/10/22 par Behrouze
A proposCheat SheetsOutilsVidéos