Zypper est le gestionnaire de paquets en ligne de commande d'openSUSE et
de SUSE Linux Enterprise. Cette page vous donne les commandes réellement
utiles au quotidien : installer, mettre à jour, gérer les dépôts, appliquer
les correctifs de sécurité et remettre d'aplomb un système dont les
métadonnées sont cassées. Elle s'adresse à un administrateur qui connaît déjà
apt ou dnf et qui doit opérer une machine SUSE. Deux pièges classiques sont
traités explicitement, parce qu'ils font perdre des paquets ou laissent passer
des failles : la confusion entre paquets orphelins et paquets inutiles,
et l'idée fausse que zypper patch ne poserait que des correctifs de sécurité.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Installer, rechercher et supprimer un paquet avec les commandes de base de Zypper.
- Mettre à jour un système SUSE et choisir entre
zypper updateetzypper dist-upgrade. - Ajouter, désactiver et prioriser un dépôt logiciel.
- Appliquer les correctifs de sécurité en filtrant correctement les patchs.
- Distinguer les paquets orphelins des paquets inutiles avant tout nettoyage.
- Diagnostiquer un cache corrompu, une dépendance cassée ou un verrou bloquant.
Les commandes de cette page ont été vérifiées sur openSUSE Leap 16.0 avec
Zypper 1.14.95. Les alias courts (in, up, lr, ref) fonctionnent
partout, mais les formes longues sont conservées ici pour rester lisibles.
Installer et mettre à jour des paquets
Section intitulée « Installer et mettre à jour des paquets »C'est le cœur du travail quotidien. Les commandes de lecture (search,
info) ne demandent aucun privilège : lancez-les avec votre compte normal. Les
commandes qui modifient le système (install, remove, update) exigent
sudo, puisqu'elles écrivent dans la base RPM et dans les répertoires système.
Commencez par chercher le paquet, puis vérifiez ce qu'il contient avant de l'installer :
zypper search htopzypper info htopzypper search cherche dans le nom et la description des paquets des
dépôts activés. zypper info affiche la version disponible, le dépôt d'origine,
la taille installée et l'état (installé ou non). La sortie doit indiquer
Installed : No tant que le paquet n'est pas présent.
L'installation et la suppression tiennent en deux commandes :
sudo zypper install htopsudo zypper remove htopZypper affiche un récapitulatif de transaction (paquets ajoutés, dépendances tirées, espace disque) et attend une confirmation. C'est le bon moment pour relire ce qui va être touché, en particulier quand une simple installation entraîne le retrait d'un autre paquet.
Pour la mise à jour, Zypper propose deux commandes qui ne font pas du tout la même chose, et le choix a des conséquences :
| Commande | Ce qu'elle fait | Quand l'utiliser |
|---|---|---|
sudo zypper update | Met à jour les paquets installés vers une version plus récente quand c'est possible. Ne change pas de fournisseur, n'enlève rien. | Leap et SLE, maintenance courante |
sudo zypper dist-upgrade | Effectue une mise à niveau de distribution : accepte les changements de fournisseur, les suppressions et les renommages de paquets. | Tumbleweed (rolling release), montée de version Leap |
En clair, zypper update est conservateur : s'il faut désinstaller quelque
chose pour progresser, il préfère ne rien faire. zypper dist-upgrade (alias
dup) est autoritaire : il aligne le système sur ce que les dépôts
proposent, quitte à supprimer des paquets. Sur Tumbleweed, c'est la commande
attendue ; sur un serveur Leap ou SLE en production, zypper update est
la bonne routine.
sudo zypper updatesudo zypper update htopVous pouvez restreindre la mise à jour à un seul paquet en le nommant. Vérifiez
ensuite avec zypper info htop que la version installée correspond bien à celle
annoncée par le dépôt.
Gérer les dépôts logiciels
Section intitulée « Gérer les dépôts logiciels »Un dépôt est une source de paquets identifiée par une URL et un alias. Tout ce que Zypper peut installer vient d'un dépôt activé, donc la première chose à faire sur une machine inconnue est de regarder d'où viennent ses paquets.
zypper reposzypper lr -dzypper repos (alias lr) liste les dépôts avec leur alias, leur état
(activé ou non), le contrôle GPG et la priorité. L'option -d ajoute
l'URL complète et le rafraîchissement automatique. Un dépôt sans contrôle
GPG doit vous alerter : il installe des paquets non signés.
L'ajout d'un dépôt suit toujours le même schéma, URL puis alias :
sudo zypper addrepo https://download.opensuse.org/repositories/multimedia:/libs/openSUSE_Tumbleweed/ multimedia-libssudo zypper refreshLe refresh télécharge les métadonnées du nouveau dépôt et vous demande
d'accepter sa clé GPG. Sans cette étape, Zypper ignore le dépôt : il ne sait
pas encore ce qu'il contient. Pour retirer un dépôt devenu inutile,
sudo zypper removerepo multimedia-libs suffit.
La priorité règle les conflits quand deux dépôts fournissent le même paquet. Elle est source de confusion, alors retenez la règle : plus le nombre est petit, plus le dépôt est prioritaire. La valeur par défaut est 99 sur tous les dépôts d'une installation standard.
sudo zypper modifyrepo --priority 90 multimedia-libszypper lr -pIci, la priorité 90 place multimedia-libs devant les dépôts officiels
restés à 99. C'est exactement ce qu'on veut pour un dépôt de codecs qui doit
fournir ses propres versions. La sortie de zypper lr -p doit afficher 90 dans
la colonne Priority.
Vous pouvez enfin désactiver un dépôt sans le supprimer, ce qui est pratique pour isoler un problème sans perdre sa configuration :
sudo zypper modifyrepo --disable multimedia-libssudo zypper modifyrepo --enable multimedia-libsCorrectifs de sécurité : ce que patch fait vraiment
Section intitulée « Correctifs de sécurité : ce que patch fait vraiment »C'est le point où beaucoup de documentations se trompent, y compris des mémentos
très partagés. Un patch au sens SUSE est une mise à jour packagée par
l'éditeur avec des métadonnées : une catégorie (security, recommended,
optional, feature, document, yast) et une sévérité (critical,
important, moderate, low).
Les deux commandes ci-dessous ne filtrent rien par défaut :
zypper list-patchessudo zypper patchzypper list-patches liste tous les patchs applicables, pas uniquement les
correctifs de sécurité. zypper patch installe tous les patchs nécessaires,
toutes catégories confondues. Croire l'inverse conduit à deux erreurs
symétriques : penser qu'on a « seulement » corrigé la sécurité alors qu'on a
poussé des changements fonctionnels, ou croire à tort qu'une machine soumise à
un audit n'a reçu que des correctifs de sécurité.
Pour ne travailler que sur la sécurité, le filtrage est explicite et obligatoire :
zypper list-patches --category securitysudo zypper patch --category securityL'option --category (forme courte -g) restreint aux patchs de la catégorie
demandée. Une variante utile filtre sur la sévérité plutôt que sur la
catégorie, par exemple pour ne traiter en urgence que le plus grave :
sudo zypper patch --severity critical --severity importantVérifiez le résultat en relançant zypper list-patches --category security :
la sortie doit annoncer qu'aucun patch de sécurité n'est applicable. Si vous
travaillez sur un CVE précis remonté par un scanner, Zypper sait cibler
directement :
zypper list-patches --cve=CVE-2024-6387sudo zypper patch --cve=CVE-2024-6387Une fois les correctifs posés, les processus déjà lancés continuent d'utiliser les anciennes bibliothèques chargées en mémoire. Un patch OpenSSL n'a aucun effet sur un service qui tourne encore avec l'ancienne version :
sudo zypper ps -szypper ps liste les processus qui utilisent des fichiers supprimés par les
dernières mises à jour, et -s produit un tableau court avec le nom du service
systemd concerné. Redémarrez ces services (sudo systemctl restart <service>),
ou la machine si le noyau a été mis à jour. Tant que cette étape n'est pas faite,
le correctif n'est pas réellement appliqué.
Nettoyer : orphelins et inutiles ne sont pas la même chose
Section intitulée « Nettoyer : orphelins et inutiles ne sont pas la même chose »Deux options de zypper packages sont régulièrement confondues, et l'erreur
coûte cher : elle fait supprimer des logiciels encore voulus.
| Option | Ce qu'elle montre vraiment | Faut-il supprimer ? |
|---|---|---|
--orphaned | Les paquets installés qui n'appartiennent plus à aucun dépôt configuré (ni candidat de mise à jour). | Non, pas automatiquement |
--unneeded | Les paquets dont plus rien ne dépend : tirés comme dépendance, désormais inutiles. | Oui, après relecture |
Un paquet orphelin n'est pas un paquet inutile. C'est un paquet que Zypper ne
retrouve plus dans les dépôts : un RPM installé à la main, un logiciel venu d'un
dépôt que vous avez retiré, ou un paquet abandonné lors d'une montée de version.
Il peut très bien être essentiel à votre service. Supprimer en masse la
sortie de --orphaned est le meilleur moyen de désinstaller un agent de
supervision ou un pilote propriétaire encore utilisé.
zypper packages --orphanedLa colonne Repository de la sortie affiche @System, ce qui signifie
exactement cela : ce paquet ne vient plus d'aucun dépôt connu. Traitez la liste
au cas par cas, en vous demandant pour chaque ligne d'où venait le paquet et
s'il sert encore.
Le vrai nettoyage, celui des dépendances devenues inutiles (l'équivalent de
apt autoremove), passe par --unneeded :
zypper packages --unneededsudo zypper remove nom_du_paquetRelisez la liste avant de supprimer : un paquet peut être « inutile » au sens du
solveur alors que vous l'utilisez en ligne de commande, simplement parce qu'il a
été installé comme dépendance et jamais marqué comme voulu. Sur Tumbleweed,
la mise à niveau sait faire ce ménage au passage avec
sudo zypper dist-upgrade --remove-orphaned.
Verrouiller un paquet et cibler un dépôt
Section intitulée « Verrouiller un paquet et cibler un dépôt »Certaines opérations demandent de figer un paquet, typiquement une version de noyau ou d'agent applicatif validée par un éditeur, que les mises à jour automatiques ne doivent pas déplacer. Zypper appelle cela un verrou (lock).
sudo zypper addlock kernel-defaultzypper lockssudo zypper removelock kernel-defaultzypper locks liste les verrous actifs avec leur numéro, que vous pouvez
passer directement à removelock. Un verrou oublié est une cause fréquente de
« mise à jour qui ne s'installe pas sans message clair » : quand un paquet refuse
obstinément de bouger, regardez d'abord cette liste.
L'autre besoin récurrent est de basculer un ensemble de paquets vers un dépôt précis, par exemple les codecs multimédia :
sudo zypper dist-upgrade --from multimedia-libsL'option --from restreint la mise à niveau au dépôt nommé : les autres
paquets restent où ils sont. C'est la façon propre de changer de fournisseur pour
une famille de paquets sans toucher au reste du système.
Dépannage des problèmes courants
Section intitulée « Dépannage des problèmes courants »Zypper est fiable, mais les incidents se ressemblent d'une machine à l'autre. Voici les trois symptômes les plus fréquents en production, avec la cause probable et la commande qui remet les choses en ordre.
| Symptôme | Cause probable | Correction |
|---|---|---|
Valid metadata not found ou dépôt qui échoue au refresh | Cache de métadonnées corrompu ou périmé | sudo zypper clean --all puis sudo zypper refresh --force |
| Installation refusée pour dépendance manquante ou paquet cassé | Base RPM incohérente après une opération interrompue | sudo zypper verify |
| Un paquet refuse de se mettre à jour, sans erreur explicite | Verrou posé sur le paquet | zypper locks puis sudo zypper removelock nom_du_paquet |
Le duo clean puis refresh est le premier réflexe : sudo zypper clean --all
vide les caches de métadonnées et de paquets, et sudo zypper refresh --force force un rechargement complet depuis les dépôts. Cela résout la grande
majorité des erreurs de téléchargement, y compris après un changement d'URL de
miroir.
Quand le système reste incohérent, sudo zypper verify contrôle les
dépendances de tous les paquets installés et propose d'installer ou de retirer
ce qu'il faut pour réparer. Lisez sa proposition avant d'accepter : c'est un
diagnostic, pas une baguette magique.
Si un fichier d'un paquet a été effacé ou abîmé, forcez la réinstallation plutôt que de bricoler le fichier à la main :
sudo zypper install --force opensshL'option --force réinstalle le paquet même s'il est déjà présent dans la
même version. Le journal /var/log/zypper.log (l'historique complet des
transactions et des erreurs) reste la meilleure source quand la sortie du
terminal ne suffit pas : sudo less /var/log/zypper.log.
Enfin, sur une installation openSUSE en Btrfs avec snapper, chaque transaction Zypper crée un instantané avant et après. C'est le filet de sécurité qui permet de revenir en arrière après une mise à jour qui casse le démarrage :
sudo snapper listsudo snapper rollback IDLe rollback restaure l'état du système au numéro d'instantané indiqué et
demande un redémarrage. Vérifiez avant de lancer que la ligne choisie
correspond bien au « pre » de la transaction fautive, colonne Description de
snapper list.
D'où vient Zypper
Section intitulée « D'où vient Zypper »Zypper est né dans le projet openSUSE en 2006, avec openSUSE 10.2. Les outils de l'époque (YaST2, rug, zen-updater) étaient jugés lents et mal adaptés aux mises à jour par internet. SUSE a donc bâti libzypp, la bibliothèque qui résout les dépendances, et Zypper comme client en ligne de commande. C'est ce moteur partagé qui explique pourquoi Zypper et l'interface graphique YaST prennent toujours les mêmes décisions : ils s'appuient sur le même solveur.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »zypper updateest conservateur (aucune suppression) ;zypper dist-upgradeaccepte les changements de fournisseur et les suppressions. Réservezdupà Tumbleweed et aux montées de version.zypper list-patchesetzypper patchtraitent tous les patchs applicables, pas seulement la sécurité. Le filtre--category security(ou--severity) est obligatoire pour cibler les correctifs de sécurité.- Après un patch,
zypper ps -srévèle les services encore chargés avec les anciennes bibliothèques. Sans redémarrage, le correctif n'est pas actif. packages --orphaned= paquets hors dépôt (RPM manuel, dépôt retiré). Ne jamais les supprimer en masse.packages --unneeded= paquets dont plus rien ne dépend. C'est là qu'est le vrai nettoyage, l'équivalent d'apt autoremove.- Pour les dépôts, une priorité numérique plus basse gagne ; la valeur par défaut est 99.
- Cache cassé :
zypper clean --allpuiszypper refresh --force. Dépendances incohérentes :zypper verify. Paquet figé :zypper locks. - Sur Btrfs,
snapper rollbackest le filet de sécurité après une mise à jour qui casse le démarrage.