Développeur FullStack & Devops

Notes et mémos techniques

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

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

apt-get pour le 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

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 🎉

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

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
rédigé le 18/08/19 , maj le 22/03/22 par Behrouze
A proposCheat SheetsOutilsVidéos