Équivalents apt et dnf sur Rocky Linux et Fedora
Retrouvez la commande dnf équivalente à chaque commande apt sur Rocky, AlmaLinux et Fedora, avec dépôts, annulation de transaction et mises à jour sans intervention.
La réponse courte
Passer d’apt à dnf revient principalement à changer de vocabulaire. apt install nginx devient dnf install nginx. apt remove nginx devient dnf remove nginx. apt update n’a pas d’équivalent direct, car dnf actualise automatiquement les métadonnées de ses dépôts lorsque la copie en cache devient obsolète. La partie simple de la traduction tient sur un écran. La partie utile concerne les quatre opérations qui ne correspondent pas directement : ajouter un dépôt, annuler une transaction, installer un groupe de paquets et exécuter des mises à jour sans intervention.
Toutes les commandes ci-dessous sont prévues pour être exécutées sur votre propre serveur. Lisez le récapitulatif de la transaction affiché par dnf avant de répondre à y, en particulier lors des suppressions.
Quelles distributions utilisent dnf et lesquelles utilisent apt
dnf est le gestionnaire de paquets de Fedora, de Red Hat Enterprise Linux (RHEL) et des reconstructions de RHEL : Rocky Linux, AlmaLinux et CentOS Stream. apt est le gestionnaire de paquets de Debian et de toutes les distributions dérivées de Debian, ce qui signifie presque toujours Ubuntu sur un VPS. Il n’y a pas de troisième réponse. Si la liste d’images de votre fournisseur propose Rocky Linux ou AlmaLinux, vous utiliserez dnf. Si elle propose Ubuntu, vous utiliserez apt.
Le format des paquets dépend de l’outil. dnf installe les fichiers .rpm et sa base de données est rpm. apt installe les fichiers .deb et sa base de données est dpkg. C’est pourquoi tant de pages d’installation des éditeurs proposent un onglet pour chaque famille, et pourquoi un fichier .deb téléchargé depuis la page des releases d’un projet est inutilisable sur Rocky Linux.
Quelle que soit la famille choisie, la première connexion demande le même travail. Les dix premières minutes sur un nouveau VPS s’appliquent aux deux. Seule la commande d’installation change.
Chaque commande apt et son équivalent dnf
Installer, supprimer, rechercher et afficher. Les commandes utilisent presque les mêmes termes des deux côtés.
# apt
sudo apt install nginx
sudo apt remove nginx
apt search nginx
apt show nginx
# dnf
sudo dnf install nginx
sudo dnf remove nginx
dnf search nginx
dnf info nginxapt show est dnf info. C’est le seul verbe renommé du groupe, mais un comportement diffère et piège souvent les utilisateurs. dnf remove supprime également les dépendances dont aucun autre paquet n’a besoin, tandis que apt remove les laisse installées pour un éventuel apt autoremove ultérieur. Ainsi, la suppression d’un petit utilitaire sur Rocky Linux peut proposer de supprimer une douzaine de bibliothèques avec lui. Lisez la liste avant de confirmer.
Actualiser les métadonnées, vérifier les mises à jour disponibles et mettre à niveau.
# apt
sudo apt update
apt list --upgradable
sudo apt install --only-upgrade nginx
sudo apt upgrade
# dnf
sudo dnf makecache
dnf check-update
sudo dnf upgrade nginx
sudo dnf upgradeapt update est obligatoire avec apt, car apt utilise les métadonnées présentes sur le disque et peut installer sans problème une version qui a quitté l’archive depuis plusieurs mois. dnf vérifie l’ancienneté de son cache avant chaque transaction et télécharge automatiquement les métadonnées à jour. sudo dnf makecache sert donc uniquement à forcer ce téléchargement immédiatement, plutôt qu’au moment de votre prochaine installation.
apt sépare la mise à niveau complète du système en deux commandes, contrairement à dnf. apt upgrade refuse de supprimer un paquet installé et s’arrête donc dès qu’une mise à jour nécessite la suppression d’un paquet. apt full-upgrade est la variante autorisée à supprimer des paquets. dnf n’impose pas cette restriction. dnf upgrade est donc l’équivalent de apt full-upgrade, et non de apt upgrade. dnf update est un ancien alias de la même commande et fonctionne toujours.
Un détail est important si vous utilisez ces commandes dans un script : dnf check-update se termine avec le code de sortie 100 lorsque des mises à jour sont disponibles, et avec 0 lorsqu’il n’y en a aucune. apt list --upgradable renvoie 0 dans les deux cas. Les scripts doivent donc analyser sa sortie.
Lister les paquets installés et déterminer quel paquet possède un fichier.
# apt
dpkg -l
dpkg -S /usr/sbin/nginx
dpkg -L nginx
apt-file search /usr/sbin/nginx
# dnf
dnf list --installed
rpm -qf /usr/sbin/nginx
rpm -ql nginx
dnf provides /usr/sbin/nginxLa dernière ligne de chaque bloc répond à une question différente de celles des lignes précédentes. dpkg -S et rpm -qf recherchent uniquement parmi les paquets déjà installés. Ils répondent donc à la question « quel paquet a installé ce fichier ? ». apt-file search et dnf provides recherchent dans les dépôts. Ils répondent à la question « quel paquet installer pour obtenir ce fichier ? ». apt-file est un paquet distinct sur Ubuntu et nécessite sudo apt-file update avant sa première exécution. dnf provides ne nécessite rien de plus, même sa première exécution peut être lente, car dnf télécharge les listes de fichiers des dépôts pour effectuer la recherche.
Pour lister les fichiers contenus dans un paquet que vous n’avez pas encore installé, utilisez dnf repoquery -l nginx. Avec apt, la commande correspondante est apt-file list nginx.
Supprimer automatiquement les dépendances inutiles, nettoyer le cache et bloquer une version.
# apt
sudo apt autoremove
sudo apt clean
sudo apt-mark hold nginx
apt-mark showhold
sudo apt-mark unhold nginx
# dnf
sudo dnf autoremove
sudo dnf clean all
sudo dnf versionlock add nginx
dnf versionlock list
sudo dnf versionlock delete nginxversionlock n’est pas installé par défaut sur Rocky Linux ni sur AlmaLinux. La première de ces lignes échoue donc avec No such command: versionlock sur un système fraîchement installé. Installez-le d’abord avec sudo dnf install python3-dnf-plugin-versionlock. apt n’a besoin de rien d’autre pour apt-mark hold, car un blocage de version correspond à un état dpkg et non à un plugin.
Là où la correspondance s’arrête : ajouter un dépôt
C’est à ce stade que les administrateurs Ubuntu cherchent une commande qui n’existe pas. Il n’y a pas de add-apt-repository dans dnf, ni d’archives personnelles de paquets (PPA). Un PPA est un service fourni par Launchpad, et Launchpad fait partie de l’infrastructure Ubuntu. Rien de comparable n’existe dans l’écosystème RPM.
À la place, dnf utilise un fichier texte simple par dépôt dans /etc/yum.repos.d/, avec l’extension .repo.
[docker-ce-stable]
name=Docker CE Stable
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg$releasever et $basearch sont des variables dnf. dnf remplace ces variables par le numéro de version majeure et l’architecture du processeur au moment de l’exécution. Le même fichier fonctionne donc avec les versions 9 et 10, ainsi qu’avec x86_64 et aarch64.
La plupart des éditeurs publient ce fichier et vous demandent de le récupérer. Les instructions officielles de Docker pour RHEL et ses dérivés se résument à deux commandes :
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoLa première ligne est nécessaire parce que config-manager est un plugin, et non une fonctionnalité intégrée à dnf. Si vous la passez, la deuxième ligne échoue avec No such command: config-manager. Vous pouvez aussi télécharger manuellement ce même fichier .repo avec curl dans /etc/yum.repos.d/. Le résultat est identique. Installer Docker sur un VPS décrit la même opération côté Debian, où l’étape équivalente écrit une source logicielle et une clé de signature dans deux répertoires différents.
La différence de structure détermine où chercher lorsqu’un dépôt pose problème. apt conserve les définitions dans /etc/apt/sources.list et /etc/apt/sources.list.d/, tandis que les clés de signature sont stockées séparément sous /etc/apt/keyrings/. dnf conserve tout dans /etc/yum.repos.d/, et la clé est une URL dans le fichier .repo. Il y a donc un seul fichier à consulter et un seul fichier à supprimer. Les versions récentes d’apt se rapprochent de cette structure avec le format deb822, qui utilise un fichier .sources par dépôt. Si vous avez rencontré l’erreur des sources dupliquées deb822 sur Ubuntu, vous avez déjà vu la partie apt de ce problème.
EPEL est le dépôt que la plupart des guides supposent activé
Extra Packages for Enterprise Linux (EPEL) est un projet Fedora qui construit des paquets Fedora pour RHEL et ses reconstructions. C’est ce qui se rapproche le plus d’un PPA universel, et un très grand nombre de tutoriels supposent qu’il est déjà activé. Si dnf install répond No match for argument pour un paquet présenté sur le site officiel du projet, EPEL est la première chose à vérifier.
Sur Rocky Linux et AlmaLinux :
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
sudo dnf makecacheCRB signifie CodeReady Builder. Il s’agit d’un dépôt de bibliothèques fourni avec la distribution, mais désactivé par défaut. La plupart des paquets EPEL dépendent d’un paquet qui s’y trouve. Activer EPEL sans CRB ne provoque donc pas d’échec immédiat. L’installation échoue plus tard, avec des dépendances non résolues vers un paquet dont vous n’avez jamais entendu parler. Activez d’abord CRB pour éviter cette catégorie d’erreurs.
Sur RHEL, CRB est fourni par votre abonnement et non par config-manager. Suivez donc les instructions officielles de Red Hat pour EPEL à cette étape. Fedora n’a besoin d’aucune de ces étapes, car son dépôt principal contient déjà les paquets rétroportés par EPEL. La politique d’EPEL consiste à ne jamais remplacer un paquet fourni par RHEL. L’ajout du dépôt ne modifie donc rien de ce qui est déjà installé sur votre serveur.
Annuler une transaction avec dnf, ce que apt ne sait pas faire
dnf enregistre chaque transaction et peut en construire l’inverse.
sudo dnf history
sudo dnf history info 42
sudo dnf history undo 42dnf history affiche la liste numérotée des transactions, avec la ligne de commande qui a lancé chacune d’elles. undo construit la transaction inverse : les paquets installés par cette transaction sont supprimés et les paquets mis à niveau reviennent à la version précédente. C’est la fonctionnalité qui manque le plus aux utilisateurs d’apt après leur passage à dnf.
Cette fonctionnalité a des limites importantes. Il faut les connaître avant de compter dessus. undo peut uniquement réinstaller une version de paquet qui existe encore dans un dépôt activé. Si l’ancienne build a été retirée du miroir, l’annulation échoue avec une erreur indiquant que le paquet est introuvable. Le rollback s’arrête également au niveau de la base de données des paquets. Un fichier de configuration réécrit par la mise à niveau reste réécrit. Un schéma de base de données migré par un service lors de son premier démarrage reste migré. dnf remet les fichiers en place. Il ne restaure pas vos données.
apt n’a pas d’équivalent. /var/log/apt/history.log enregistre exactement ce qui s’est passé, y compris la ligne de commande, mais consulter un journal ne permet pas d’annuler une transaction. Avec apt, la récupération est manuelle : exécutez apt list -a nginx pour voir quelles versions sont encore disponibles dans l’archive, puis sudo apt install nginx=<exact version string> pour en épingler une, et ajoutez sudo apt-mark hold nginx afin que la prochaine mise à niveau n’annule pas votre correction.
Les groupes de paquets n’ont pas d’équivalent avec apt
dnf peut installer un ensemble nommé de paquets en une seule commande.
dnf group list
dnf group info "Development Tools"
sudo dnf group install "Development Tools"Les anciens guides utilisent dnf groupinstall "Development Tools". Cet alias fonctionne avec dnf 4, mais il a disparu dans dnf 5. La forme en deux mots, dnf group install, est donc la seule qui fonctionne partout. Utilisez-la et n’y pensez plus.
apt ne gère pas les groupes. L’équivalent le plus proche dans Debian est un métapaquet : un paquet autrement vide dont le seul contenu est une liste de dépendances, comme build-essential. La différence pratique apparaît lors de la suppression : supprimer un métapaquet laisse ses dépendances installées jusqu’à l’exécution de apt autoremove, tandis que dnf group remove supprime les paquets du groupe dans la même transaction.
mises à jour automatiques et dnf-automatic
Les deux familles permettent d’installer des mises à jour sans qu’aucun utilisateur soit connecté. Les outils n’ont en commun que leur objectif.
Sur Ubuntu et Debian, le paquet est unattended-upgrades. Il est configuré dans /etc/apt/apt.conf.d/50unattended-upgrades, où vous indiquez les origines depuis lesquelles il est autorisé à télécharger les mises à jour. Configurer les mises à jour automatiques sur Ubuntu présente ce fichier de configuration ainsi que la question du redémarrage qui l’accompagne.
Sur Rocky Linux, AlmaLinux et Fedora, le paquet est dnf-automatic. Le timer systemd que vous activez détermine le comportement.
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer
systemctl list-timers 'dnf-automatic*'dnf-automatic-install.timer télécharge et applique les mises à jour. dnf-automatic-download.timer les télécharge puis s’arrête, en vous laissant effectuer l’installation. dnf-automatic-notifyonly.timer se contente de générer un rapport. Chacune de ces unités remplace le paramètre apply_updates défini dans /etc/dnf/automatic.conf. Le timer que vous choisissez compte donc davantage que le contenu du fichier de configuration.
Pour limiter le processus aux correctifs de sécurité, définissez upgrade_type = security dans /etc/dnf/automatic.conf. Ce filtre dépend de la publication de security errata par vos dépôts. Vérifiez donc d’abord avec dnf updateinfo list security. Un résultat vide sur une machine qui a des mises à jour en attente signifie que les métadonnées sont absentes. Dans ce cas, security n’installerait absolument rien.
Sur Fedora, dnf 5 a renommé l’unité. Il s’agit de dnf5-automatic.timer, qui lit le même /etc/dnf/automatic.conf.
La commande yum existe-t-elle toujours ?
Oui, mais elle ne fait rien par elle-même. Sur Rocky Linux, AlmaLinux et CentOS Stream, /usr/bin/yum est un lien symbolique qui pointe vers dnf. Vérifiez le vôtre :
ls -l /usr/bin/yum
dnf --versionL’ancienne syntaxe de yum apparaît encore dans de nombreux tutoriels, car la plupart des commandes sont toujours transmises directement à dnf. yum install, yum remove et yum update fonctionnent toutes. Une habitude doit toutefois être abandonnée : yum-config-manager existe encore comme binaire distinct sur les systèmes utilisant dnf 4, mais dnf config-manager est la forme utilisée par la documentation actuelle. C’est aussi celle qui continuera de fonctionner lors du passage du serveur à dnf 5.
dnf 4 et dnf 5 : vérifiez avant de copier une commande
dnf 5 est une réécriture complète. Plusieurs commandes ont changé de syntaxe. Fedora 41 et les versions ultérieures le fournissent sous la forme dnf. Les distributions enterprise rebuild ont adopté cette version plus lentement. Ne déduisez donc pas la version à partir du nom de la distribution. Exécutez dnf --version sur votre propre serveur et lisez la première ligne. Le numéro affiché détermine la syntaxe à utiliser ci-dessous.
Docker fournit l’exemple le plus clair, avec une commande de dépôt différente pour chaque version. Sur RHEL et ses rebuilds, avec dnf 4 :
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoSur Fedora, avec dnf 5 :
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repoLe fournisseur et l’objectif sont identiques, mais les commandes diffèrent. dnf 5 a transformé config-manager en outil piloté par des sous-commandes. L’ancien indicateur --add-repo n’est donc pas accepté. Vous obtenez une erreur d’utilisation au lieu de la configuration d’un dépôt. L’autre différence concerne l’activation d’un dépôt : dnf config-manager --set-enabled crb avec dnf 4 devient dnf config-manager setopt crb.enabled=1 avec dnf 5.
Le choix qui compte réellement
Choisir une distribution serveur uniquement en fonction du gestionnaire de paquets est une mauvaise approche. dnf et apt font le même travail, et leur vocabulaire s’apprend en un après-midi. Ce qui déterminera votre année, c’est le modèle de publication du dépôt. Fedora évolue rapidement et une version donnée cesse de recevoir des mises à jour environ treize mois après sa sortie. Cela convient à un poste de travail, mais c’est contraignant pour un serveur que vous ne voulez pas réinstaller. Rocky Linux et AlmaLinux suivent RHEL. Vous bénéficiez donc d’une période de support de dix ans et de versions de paquets qui restent volontairement stables. Ubuntu propose les deux modèles, et la différence entre Ubuntu LTS et les versions intermédiaires sur un serveur correspond à la même décision dans l’univers apt.
En août 2026, toutes ces distributions sont des images VPS courantes. Choisissez la période de support qui vous convient, puis apprenez les dix commandes ci-dessus.
FAQ
Quel est l’équivalent de apt update avec dnf ?
Vous n’avez aucune commande à exécuter. dnf vérifie l’ancienneté de ses métadonnées mises en cache avant chaque transaction et télécharge une copie récente lorsqu’elles ont expiré. Ainsi, dnf install sur un serveur auquel vous n’avez pas touché depuis un mois utilise toujours les paquets actuels. sudo dnf makecache existe et force bien ce téléchargement, mais sert surtout à déplacer l’attente à un moment choisi plutôt que de la subir lors de la prochaine installation. La commande qui répond à « qu’est-ce qui m’attend ? » est dnf check-update. Elle correspond à apt list --upgradable et se termine avec le code 100 lorsque des mises à jour sont disponibles.
Existe-t-il un équivalent des PPA sur Rocky Linux ou Fedora ?
Non. Les archives de paquets personnelles sont un service de Launchpad, et Launchpad fait partie de l’infrastructure Ubuntu. add-apt-repository n’a donc rien à traduire. L’équivalent RPM est un fichier .repo dans /etc/yum.repos.d/, qui contient un nom, un baseurl et un gpgkey. Les éditeurs publient ce fichier pour vous. sudo dnf config-manager --add-repo <url> avec dnf 4, ou sudo dnf config-manager addrepo --from-repofile <url> avec dnf 5, le télécharge et l’installe au bon emplacement. Pour les logiciels supplémentaires courants, la réponse est généralement EPEL. Vous l’activez avec sudo dnf config-manager --set-enabled crb, puis sudo dnf install epel-release.
Puis-je annuler une mise à niveau dnf qui a rendu mon serveur inutilisable ?
Oui, dans certaines limites. Exécutez sudo dnf history pour trouver le numéro de la transaction, sudo dnf history info <id> pour voir exactement ce qu’elle a modifié, puis sudo dnf history undo <id>. L’annulation échoue si l’ancienne version du paquet n’est plus présente dans aucun dépôt activé, car dnf n’a alors rien à réinstaller. Elle ne rétablit que les modifications apportées aux paquets. Un fichier de configuration réécrit par la mise à niveau, ou une base de données migrée par un service lors de son premier démarrage, reste inchangé. apt n’a aucune commande équivalente, seulement l’historique dans /var/log/apt/history.log.
yum fonctionne-t-il encore sur Rocky Linux et AlmaLinux ?
Oui, car /usr/bin/yum est un lien symbolique vers dnf. Vérifiez-le sur votre propre serveur avec ls -l /usr/bin/yum. La commande yum install httpd exécute dnf, de sorte que les anciens tutoriels fonctionnent encore pour l’essentiel. Écrivez les nouveaux scripts et la nouvelle documentation avec dnf, car le nom yum ne sert qu’à assurer la compatibilité. Préférez également dnf config-manager à l’ancien binaire yum-config-manager.
Pourquoi dnf remove veut-il supprimer autant de paquets ?
Parce que dnf supprime, dans le cadre de la même transaction, les dépendances dont aucun autre paquet n’a besoin, tandis que apt remove les laisse installées jusqu’à l’exécution séparée de apt autoremove. Ainsi, une suppression qui semble limitée sur Ubuntu peut afficher une longue liste sur Rocky Linux. Cette liste est généralement correcte, mais lisez-la avant de confirmer. Si elle contient un paquet que vous souhaitez conserver, installez-le explicitement au préalable afin que dnf l’enregistre comme demandé directement par l’utilisateur.