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.
apt : la commande à connaître
Section intitulée « apt : la commande à connaître »sudo apt update # met à jour la LISTE des paquets disponibles (n'installe rien)sudo apt upgrade # installe les nouvelles versions des paquets installéssudo apt full-upgrade # idem, avec ajout/retrait de paquets si nécessairesudo apt install nginx # installersudo apt install nginx curl git # plusieurs paquetssudo apt remove nginx # désinstaller (garde la configuration)sudo apt purge nginx # désinstaller ET supprimer la configurationsudo apt autoremove # supprimer les dépendances devenues inutilessudo apt autoremove --purgesudo 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.
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.
Rechercher et s’informer
Section intitulée « Rechercher et s’informer »apt search "serveur web" # chercher par mot-cléapt show nginx # description, version, dépendancesapt policy nginx # versions disponibles et dépôt d'origineapt list --installed | grep nginx # est-il installé ?apt list --upgradable # mises à jour en attentedpkg -L nginx # fichiers installés par le paquetdpkg -S /usr/sbin/nginx # à quel paquet appartient ce fichier ?apt-cache depends nginx # dépendancesapt-cache rdepends nginx # paquets qui dépendent de celui-ciapt 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).
Installer une version précise
Section intitulée « Installer une version précise »apt policy postgresqlsudo apt install nginx=1.24.0-2ubuntu7sudo apt-mark hold nginx # empêcher la mise à jour d'un paquetsudo apt-mark unhold nginxapt-mark showholdLes dépôts
Section intitulée « Les dépôts »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: debURIs: http://archive.ubuntu.com/ubuntu/Suites: noble noble-updates noble-backportsComponents: main restricted universe multiverseSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgcat /etc/apt/sources.list.d/ubuntu.sourcesls /etc/apt/sources.list.d/sudo add-apt-repository universe # activer un composantsudo apt updateLes 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.
Dépôts tiers et PPA
Section intitulée « Dépôts tiers et PPA »Certains logiciels (Docker, Caddy, NodeSource, PostgreSQL, MongoDB) se distribuent par un dépôt propre :
# 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ôtecho "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 installersudo apt update && sudo apt install logicielUn PPA (Personal Package Archive) est un dépôt hébergé sur Launchpad :
sudo add-apt-repository ppa:ondrej/phpsudo add-apt-repository --remove ppa:ondrej/phpsudo apt install ppa-purge && sudo ppa-purge ppa:ondrej/php # revenir aux versions de la distributiondpkg : installer un fichier .deb
Section intitulée « dpkg : installer un fichier .deb »sudo apt install ./logiciel_1.2.3_amd64.deb # recommandé : résout les dépendancessudo dpkg -i logiciel_1.2.3_amd64.deb # bas niveau ; ne résout pas les dépendancessudo apt -f install # réparer les dépendances manquantes après dpkgdpkg -l | grep logicieldpkg -s logiciel # état d'un paquetN’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 :
snap listsnap 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 codesnap info codeapt |
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.
Mises à jour de sécurité automatiques
Section intitulée « Mises à jour de sécurité automatiques »sudo apt install unattended-upgradessudo dpkg-reconfigure -plow unattended-upgradessudo unattended-upgrade --dry-run -dcat /var/log/unattended-upgrades/unattended-upgrades.logPar défaut, seules les mises à jour de sécurité sont appliquées. Un redémarrage peut ensuite être nécessaire :
ls /var/run/reboot-required 2>/dev/null && echo "redémarrage nécessaire"sudo apt install needrestartsudo needrestart # indique les services à redémarrerVoir Ubuntu Server : actions après l’installation et Linux avancé : noyau et démarrage.
Mises à jour : bonnes habitudes
Section intitulée « Mises à jour : bonnes habitudes »| 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 |
sudo do-release-upgrade -c # une version supérieure est-elle proposée ?Verrous et problèmes courants
Section intitulée « Verrous et problèmes courants »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".
sudo dpkg --configure -a # terminer une installation interrompuesudo apt -f install # réparer les dépendancessudo apt update --fix-missingsudo apt install --reinstall nginxCompiler à partir des sources : dernier recours
Section intitulée « Compiler à partir des sources : dernier recours »sudo apt install build-essential # compilateur et outils (gcc, make)./configure && make && sudo make install # à éviter : hors du contrôle d'aptUn 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.
Dépannage
Section intitulée « Dépannage »| 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.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Manuels :
man apt,man dpkg,man sources.list, Documentation Ubuntu : gestion des paquets - Suite : Processus, services et réseau de base