Aller au contenu

Linux : paquets et logiciels

Sous Ubuntu, on installe les logiciels avec un gestionnaire de paquets : il télécharge depuis des dépôts vérifiés (signés), résout les dépendances et facilite les mises à jour de tout le système en une commande.

Fenêtre de terminal
sudo apt update # met à jour la LISTE des paquets disponibles (n'installe rien)
sudo apt upgrade # installe les nouvelles versions des paquets installés
sudo apt full-upgrade # idem, avec ajout/retrait de paquets si nécessaire
sudo apt install nginx # installer
sudo apt install nginx curl git # plusieurs paquets
sudo apt remove nginx # désinstaller (garde la configuration)
sudo apt purge nginx # désinstaller ET supprimer la configuration
sudo apt autoremove # supprimer les dépendances devenues inutiles
sudo apt autoremove --purge
sudo apt clean # vider le cache de téléchargement

À retenir : toujours sudo apt update avant sudo apt install ou upgrade : update rafraîchit l’index, upgrade applique les mises à jour.

Fenêtre de terminal
sudo apt update && sudo apt upgrade -y # mise à jour habituelle

-y répond « oui » automatiquement : à éviter dans un usage interactif (on ne lit plus la liste), utile dans les scripts.

Fenêtre de terminal
apt search "serveur web" # chercher par mot-clé
apt show nginx # description, version, dépendances
apt policy nginx # versions disponibles et dépôt d'origine
apt list --installed | grep nginx # est-il installé ?
apt list --upgradable # mises à jour en attente
dpkg -L nginx # fichiers installés par le paquet
dpkg -S /usr/sbin/nginx # à quel paquet appartient ce fichier ?
apt-cache depends nginx # dépendances
apt-cache rdepends nginx # paquets qui dépendent de celui-ci

apt policy est précieux : il indique la version qui sera installée et d’où elle vient (dépôt Ubuntu, dépôt tiers). Les versions diffèrent entre Ubuntu 24.04 et 26.04 (Ubuntu Server : installation et les pages d’installation de chaque rubrique).

Fenêtre de terminal
apt policy postgresql
sudo apt install nginx=1.24.0-2ubuntu7
sudo apt-mark hold nginx # empêcher la mise à jour d'un paquet
sudo apt-mark unhold nginx
apt-mark showhold

Ubuntu organise ses paquets en composants :

Composant Contenu Support
main Logiciels libres pris en charge par Canonical Mises à jour de sécurité
restricted Pilotes propriétaires Canonical
universe Logiciels libres maintenus par la communauté Communauté (Ubuntu Pro étend la sécurité)
multiverse Logiciels non libres Limité

Fichier de sources, format deb822 sur Ubuntu 24.04 et suivants : /etc/apt/sources.list.d/ubuntu.sources :

Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Fenêtre de terminal
cat /etc/apt/sources.list.d/ubuntu.sources
ls /etc/apt/sources.list.d/
sudo add-apt-repository universe # activer un composant
sudo apt update

Les suites (noble, noble-updates, noble-security) indiquent la version et le canal : -security pour les correctifs de sécurité, -updates pour les corrections de bogues, -backports pour des versions plus récentes de certains logiciels.

Certains logiciels (Docker, Caddy, NodeSource, PostgreSQL, MongoDB) se distribuent par un dépôt propre :

Fenêtre de terminal
# 1. Importer la clé de signature dans un trousseau dédié
curl -fsSL https://exemple.org/cle.gpg | sudo gpg --dearmor -o /usr/share/keyrings/exemple.gpg
# 2. Déclarer le dépôt en limitant la clé à CE dépôt
echo "deb [signed-by=/usr/share/keyrings/exemple.gpg] https://exemple.org/apt stable main" \
| sudo tee /etc/apt/sources.list.d/exemple.list
# 3. Mettre à jour et installer
sudo apt update && sudo apt install logiciel

Un PPA (Personal Package Archive) est un dépôt hébergé sur Launchpad :

Fenêtre de terminal
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository --remove ppa:ondrej/php
sudo apt install ppa-purge && sudo ppa-purge ppa:ondrej/php # revenir aux versions de la distribution
Fenêtre de terminal
sudo apt install ./logiciel_1.2.3_amd64.deb # recommandé : résout les dépendances
sudo dpkg -i logiciel_1.2.3_amd64.deb # bas niveau ; ne résout pas les dépendances
sudo apt -f install # réparer les dépendances manquantes après dpkg
dpkg -l | grep logiciel
dpkg -s logiciel # état d'un paquet

N’installer un .deb que depuis une source officielle du logiciel, et vérifier son empreinte (sha256sum) quand elle est publiée.

Les snaps sont des paquets autonomes, mis à jour automatiquement, confinés :

Fenêtre de terminal
snap list
snap find "éditeur"
sudo snap install code --classic # --classic : sans confinement strict (éditeurs, outils de développement)
sudo snap refresh # mises à jour (aussi automatiques)
sudo snap remove code
snap info code
apt snap
Dépendances Partagées avec le système Embarquées
Mises à jour À la demande ou automatiques (sécurité) Automatiques, plusieurs fois par jour
Démarrage Rapide Parfois plus lent
Confinement Aucun Oui (sauf --classic)

Certains logiciels ne sont distribués que par snap sur Ubuntu (Firefox, par exemple). Pour les serveurs, préférer apt quand le choix existe.

Fenêtre de terminal
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
sudo unattended-upgrade --dry-run -d
cat /var/log/unattended-upgrades/unattended-upgrades.log

Par défaut, seules les mises à jour de sécurité sont appliquées. Un redémarrage peut ensuite être nécessaire :

Fenêtre de terminal
ls /var/run/reboot-required 2>/dev/null && echo "redémarrage nécessaire"
sudo apt install needrestart
sudo needrestart # indique les services à redémarrer

Voir Ubuntu Server : actions après l’installation et Linux avancé : noyau et démarrage.

Habitude Raison
Mettre à jour régulièrement (hebdomadaire au moins) Correctifs de sécurité
Lire la liste avant de valider (apt upgrade sans -y) Voir ce qui change (suppressions, noyau)
Sauvegarder avant une mise à jour importante Retour arrière (Linux avancé : sauvegarde)
Garder la configuration locale quand apt pose la question Réponse par défaut : conserver la version locale
Redémarrer après une mise à jour du noyau Le nouveau noyau n’est actif qu’au redémarrage
Changer de version majeure d’Ubuntu avec do-release-upgrade, sur une machine sauvegardée Procédure à part, jamais en urgence
Fenêtre de terminal
sudo do-release-upgrade -c # une version supérieure est-elle proposée ?
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (unattended-upgr)

Un autre programme (souvent les mises à jour automatiques) utilise apt : attendre quelques minutes. Ne pas supprimer les fichiers de verrou ; vérifier avec ps aux | grep -E "apt|dpkg".

Fenêtre de terminal
sudo dpkg --configure -a # terminer une installation interrompue
sudo apt -f install # réparer les dépendances
sudo apt update --fix-missing
sudo apt install --reinstall nginx
Fenêtre de terminal
sudo apt install build-essential # compilateur et outils (gcc, make)
./configure && make && sudo make install # à éviter : hors du contrôle d'apt

Un logiciel installé à la main n’est ni suivi ni mis à jour par apt. Préférer, dans l’ordre : paquet Ubuntu, dépôt officiel du projet, snap, binaire officiel placé dans /opt ou /usr/local, puis compilation.

Symptôme Piste
E: Unable to locate package x sudo apt update oublié, composant universe désactivé, nom incorrect (apt search)
E: Could not get lock Un autre apt tourne : patienter
The following packages have unmet dependencies sudo apt -f install, version tierce en conflit (apt policy)
GPG error … NO_PUBKEY / The repository … is not signed Clé du dépôt absente ou périmée : réimporter la clé officielle
404 Not Found à la mise à jour d’un dépôt Dépôt retiré ou mal orthographié : le corriger ou le supprimer de sources.list.d
/boot plein, installation de noyau échoue sudo apt autoremove --purge (Linux avancé : noyau et démarrage)
dpkg: error: dpkg frontend lock was locked by another process Même cause qu’au-dessus
apt update très lent Miroir lent ou IPv6 défaillant : -o Acquire::ForceIPv4=true, changer de miroir

Ubuntu 24.04 et 26.04 : différences à connaître

Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »

Les fichiers de sources utilisent le format deb822 (ubuntu.sources) sur les deux versions ; les anciens fichiers .list fonctionnent encore, et sudo apt modernize-sources (versions récentes d’apt) les convertit. Les versions des logiciels diffèrent entre 24.04 et 26.04 : apt policy <paquet> donne la version proposée. Sur 26.04, sudo est fourni par sudo-rs.