2.2 - Installation d'applications
Toutes les distributions filles de Debian (Ubuntu, Mint, Kali, Tails, Pop, Elementary, Purism…) partage le même format de paquet logiciel, à savoir le format « deb ». Pour résumer, il s'agit d'une archive qui contient une description du contenu du paquet, les données à installer sur le système et d'éventuel script d'auto-configuration appelé « debconf ».
Logiciels
L'application Logiciels, de son vrai nom gnome-software, est une interface graphique qui permet d'installer la majorité des logiciels disposant d'une interface graphique sur le système. Cette interface fait appel à apt en arrière plan pour télécharger les paquets et leurs dépendances. Ensuite apt confiera à dpkg le soin d'installer le tout.
Logiciels peut également prendre en charge l'installation de paquet alternatif au format Flatpak et Snap, ainsi que les mises à jours de micrologiciel (firmware) comme les BIOS, UEFI et autres mise à jour de disque, dongle & co. Pour ce faire, il faut installer au choix les paquets suivant :
- gnome-software-plugin-flatpak
- gnome-software-plugin-snap
- gnome-software-plugin-fwupd
Logiciels s'adresse avant tout aux non-informaticiens qui souhaitent bénéficier d'un magasin d'application simple d'utilisation.
apt's
Les commandes apt sont les interfaces textuelles à privilégier pour manipuler efficacement les paquets d'un système reposant sur le format deb. Ces commandes exploitent des dépôts de logiciel qui prennent la forme de site web ou ftp hébergeant des bases de données de paquets prêt à être installés. La configuration de ces dépots se fait au choix dans le fichier /etc/apt/sources.list ou dans des fichiers séparés, dans le dossier /etc/apt/sources.list.d.
Exemple de fichier /etc/apt/sources.list :
# Official repos
deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
deb http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
deb http://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
👉 Les dépots de logiciels peuvent être parcouru manuellement en entrant leurs adresses dans un navigateur (ou dans un client ftp pour les dépots utilisant se protocole). Exemple, pour parcourir le dépot Debian français officiel : http://ftp.fr.debian.org/debian/.
Le dossier /etc/apt/sources.list.d peut contenir deux types de fichier.
- Des fichiers "list" au format historique :
# Fichier : /etc/apt/sources.list.d/deb-multimedia.list
deb [signed-by=/usr/share/keyrings/deb-multimedia-keyring.pgp] https://www.deb-multimedia.org trixie main non-free
- Des fichiers "sources" dans le nouveau format deb822
# Fichier : /etc/apt/sources.list.d/deb-multimedia.sources
Types: deb
Enabled: yes
URIs: https://www.deb-multimedia.org
Suites: trixie
Components: main non-free
Signed-By: /usr/share/keyrings/deb-multimedia-keyring.pgp
Ainsi, les dépôts officiels Debian du fichier /etc/apt/sources.list peuvent-êtres commentés ou supprimés puis remplacés par un fichier au format deb822 qui s'écrira ainsi :
# Fichier : /etc/apt/sources.list.d/debian.sources
Types: deb
Enabled: yes
URIs: http://ftp.de.debian.org/debian/
http://deb.debian.org/debian/
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
Enabled: yes
URIs: http://security.debian.org/debian-security
http://ftp.de.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
👉 Dans ce dernier exemple, vous noterez qu'avec le format deb822, il est possible d'indiquer plusieurs adresses de dépôts différentes proposant les mêmes collections de paquets. On parle alors de dépôts « mirroir ».
Commandes apt
Il y a de nombreuses commandes comme apt-get, apt-cache, apt-file, apt-show-versions… et une commande plus générale qui tente d'unifier les usages les plus courant dans une seule commande générale et qui se nomme simplement apt.
apt & apt-get
Historiquement, c'est apt-get qui est utiliser pour l'installation des paquets (install, remove, purge…). Dernièrement, c'est la commande apt qui lui est préféré pour les raisons évoqués ci-dessus.
#@ client
# Installation d'un paquet
sudo apt-get install nom-du-paquet
sudo apt install nom-du-paquet
# Suppression simple d'un paquet
sudo apt-get remove nom-du-paquet
sudo apt remove nom-du-paquet
# Suppresion d'un paquet et de ces éventuels fichiers de configuration
sudo apt-get purge nom-du-paquet
sudo apt purge nom-du-paquet
# Suppression des dépendances orphelines dans la foulée :
sudo apt-get purge --autoremove nom-du-paquet
sudo apt purge --autoremove nom-du-paquet
# Suppresion des dépendances orphelines après coup :
sudo apt-get autoremove --purge
sudo apt autoremove --purge
apt-cache
Historiquement, c'est apt-cache qui est utiliser pour faire des recherches dans les bases de données des dépots de paquet. Dernièrement, c'est la commande apt qui lui est préféré pour les raisons évoqués ci-dessus.
#@ client
# Recherche du nom d'un paquet
sudo apt-cache search mot-clé
sudo apt search mot-clé
# Recherche de dépendance d'un paquet (de quoi à besoin le paquet)
sudo apt-cache depends gnome
sudo apt depends gnome
# Recherche de dépendance inverse d'un paquet (qui à besoin de ce paquet)
sudo apt-cache rdepends gnome
sudo apt rdepends gnome
apt-file
La commande apt-file permet de rechercher des fichiers dans les paquets que l'on n'a pas encore installé. C'est très pratique lorsqu'un logiciel lève des erreurs en réclamant tel ou tel librairie, tel ou tel fichier. Il suffit alors de demander à apt-file dans quel paquet ce trouve le dit fichier :
#@ client
# Installation
sudo apt install apt-file
sudo apt-file update
# La recherche peut s'effectuer sur tout ou partie du chemin du fichier
sudo apt-file search bin/dstat
sudo apt-file search libc++.so.1
apt-show-version
Cette commande permet de lister toute sorte d'information de version sur les paquets installés. En particulier, elle permet de rechercher les paquets qui ont été installé manuellement. C'est à dire les paquets qui ne sont pas présent dans l'un des dépôts d'applications, généralement installé à coup de dpkg -i (voir ci-dessous)
#@ client
# Installation
sudo apt install apt-show-versions
# Recherche de paquet non mis à jour par les dépots
sudo apt-show-versions | grep 'No available version in archive'
👉 Cet outil est très pratique lorsque l'on a migré son système pour installer une version supérieur. Exemple : lorsque l'on passe de Debian 12 à Debian 13 ou de Ubuntu 22.04 à Ubuntu 24.04. Une fois la migration terminé, cette commande permettra de détecter les logiciels encore installé mais qui ne sont plus supportés par les dépôts officiels.
dpkg
La commande de bas niveau pour manipuler les paquets debian se nomme dpkg (équivalent de rpm sur les systèmes de la famille Redhat-Fedora).
👉 dpkg ne gère pas les dépendances. Toutefois, lorsque vous essayer d'installer un paquet debian trouvé sur le net et que l'installation échoue, vous pouvez tenter de lancer sudo apt -f install. Si les dépendances réclamés sont disponible dans les dépots, apt se chargera de reprendre l'installation en installant les éléments manquants.
# @client
# Installation d'un paquet
sudo dpkg -i nom-du-paquet.deb
# Suppression d'un paquet (remove)
sudo dpkg -r nom-du-paquet
# Liste des paquets installé sur le système
sudo dpkg -l
# Liste du contenu d'un paquet
sudo dpkg -L nom-du-paquet
# Relancer une phase d'installation interrompu avant la fin
sudo dpkg --configure -a
Certain paquet peuvent poser des questions durant leur installation. Si vous souhaiter répondre différemment et/ou augmenter ou diminuer le nombre de question posées, c'est la commande dpkg-reconfigure qui doit être utilisée :
# @client
# Changer la configuration du paquet « locales »
sudo dpkg-reconfigure locales
# Changer le réglage de la zone de temps
sudo dpkg-reconfigure tzdata
Vous pouvez modifier le niveau des questions qui seront posé avec 4 niveaux : critical, high, medium et low.
# @client
# Poser toutes les questions possibles :
sudo dpkg-reconfigure -plow nom-du-paquet
# Poser le moins de questions possibles (voir aucune) :
sudo dpkg-reconfigure -pcritical nom-du-paquet
Enfin, la commande debconf-show permet de lister les réglages d'un paquet :
# @client
sudo debconf-show tzdata
>>> Vous pouvez passer à la personnalisation d'Ubuntu
