SSD Nodes Learn Hosting plans →
Gidsen Matt ConnorDoor Matt Connor · Bijgewerkt 2026-09-04

Van apt naar dnf: commando's voor Rocky en Fedora

Ontdek de dnf equivalenten voor uw vertrouwde apt commando's op Rocky Linux, AlmaLinux en Fedora. Inclusief uitleg over repository beheer en het terugdraaien van wijzigingen.

Het korte antwoord

De overstap van apt naar dnf is grotendeels een verandering van terminologie. apt install nginx wordt dnf install nginx. apt remove nginx wordt dnf remove nginx. apt update heeft geen direct equivalent, omdat dnf de metadata van repositories automatisch ververst wanneer de gecachte kopie verouderd is. De eenvoudige helft van de vertaling past op één scherm. De nuttige helft bestaat uit de vier bewerkingen die geen directe tegenhanger hebben: een repository toevoegen, een transactie ongedaan maken, een pakketgroep installeren en onbeheerde updates uitvoeren.

Elk onderstaand commando is geschreven om op uw eigen server uit te voeren. Lees de transactiesamenvatting die dnf toont voordat u y beantwoordt, zeker bij het verwijderen van pakketten.

Welke distributies gebruiken dnf en welke gebruiken apt

dnf is de pakketbeheerder op Fedora, op Red Hat Enterprise Linux (RHEL) en op de rebuilds van RHEL: Rocky Linux, AlmaLinux en CentOS Stream. apt is de pakketbeheerder op Debian en op alles wat is afgeleid van Debian, wat op een VPS bijna altijd Ubuntu betekent. Er is geen derde antwoord. Als de lijst met images van uw provider Rocky Linux of AlmaLinux aanbiedt, krijgt u dnf. Als deze Ubuntu aanbiedt, krijgt u apt. Waarom de ene kant van die splitsing vier namen draagt voor wat grotendeels hetzelfde systeem is, is een verhaal dat de moeite waard is om te kennen voordat u tussen beide kiest, en hoe Red Hat Linux veranderde in Fedora, RHEL, CentOS, Rocky en AlmaLinux legt uit waar elk vandaan komt.

Het pakketformaat volgt de tool. dnf installeert .rpm-bestanden en de database is rpm. apt installeert .deb-bestanden en de database is dpkg. Dat is de reden waarom zoveel installatiepagina's van leveranciers één tabblad voor elke familie hebben, en waarom een .deb die van de releasepagina van een project is gedownload, nutteloos is op Rocky Linux.

Bij welke familie u ook terechtkomt, de eerste keer inloggen is hetzelfde werk. De eerste tien minuten op een nieuwe VPS is op beide van toepassing. Alleen het installatiecommando verandert.

Elk apt-commando en het dnf-equivalent

Installeren, verwijderen, zoeken en tonen. Deze gebruiken vrijwel dezelfde termen aan beide kanten.

# 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 nginx

apt show is dnf info. Dit is het enige hernoemde werkwoord in de groep, maar het gedrag verschilt op één punt en dat zorgt vaak voor verwarring. dnf remove verwijdert ook afhankelijkheden die door geen enkel ander pakket meer nodig zijn, terwijl apt remove deze geïnstalleerd laat voor een latere apt autoremove. Het verwijderen van één klein hulpprogramma op Rocky Linux kan er dus toe leiden dat een dozijn bibliotheken wordt mee verwijderd. Lees de lijst door voordat u bevestigt.

Metadata verversen, controleren wat er klaarstaat en upgraden.

# 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 upgrade

apt update is verplicht aan de kant van apt, omdat apt de metadata gebruikt die op de schijf staat en zonder problemen een versie installeert die al maanden uit het archief is verwijderd. dnf controleert de leeftijd van de cache vóór elke transactie en downloadt zelf verse metadata, dus sudo dnf makecache is alleen bedoeld om die download nu af te dwingen in plaats van tijdens uw volgende installatie.

apt splitst de volledige systeemupgrade in tweeën, dnf doet dat niet. apt upgrade weigert geïnstalleerde pakketten te verwijderen, dus het stopt zodra een update vereist dat een pakket wordt verwijderd. apt full-upgrade is de versie die wel mag verwijderen. dnf heeft die beperking niet, wat betekent dat dnf upgrade het equivalent is van apt full-upgrade, niet van apt upgrade. dnf update is een ouder alias voor hetzelfde commando en werkt nog steeds.

Eén detail is van belang als u dit script: dnf check-update sluit af met status 100 wanneer er updates klaarstaan en 0 wanneer dat niet zo is. apt list --upgradable sluit in beide gevallen af met 0, dus scripts moeten de uitvoer ervan parsen.

Lijst wat er is geïnstalleerd en achterhaal welk pakket een bestand bezit.

# 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/nginx

De laatste regel van elk blok beantwoordt een andere vraag dan de voorgaande. dpkg -S en rpm -qf doorzoeken alleen pakketten die al zijn geïnstalleerd; ze beantwoorden dus de vraag "wat heeft dit bestand hier geplaatst". apt-file search en dnf provides doorzoeken de repositories; ze beantwoorden dus de vraag "wat moet ik installeren om dit bestand te krijgen". apt-file is een afzonderlijk pakket op Ubuntu en vereist sudo apt-file update vóór het eerste gebruik. dnf provides heeft niets extra's nodig, hoewel de eerste uitvoering traag kan zijn omdat dnf de bestandslijsten van de repository downloadt om de vraag te beantwoorden.

Gebruik dnf repoquery -l nginx om de bestanden in een pakket te tonen dat u nog niet hebt geïnstalleerd. Aan de kant van apt is dat apt-file list nginx.

Autoremove, cache opschonen, een versie vasthouden.

# 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 nginx

versionlock is standaard niet geïnstalleerd op Rocky Linux of AlmaLinux, dus de eerste van die regels faalt met No such command: versionlock op een nieuwe machine. Installeer het eerst met sudo dnf install python3-dnf-plugin-versionlock. apt heeft niets extra's nodig voor apt-mark hold, omdat een hold een dpkg-status is in plaats van een plugin.

Waar de mapping tekortschiet: een repository toevoegen

Dit is het punt waarop Ubuntu-beheerders zoeken naar een commando dat niet bestaat. Er is geen add-apt-repository in dnf en er zijn geen personal package archives (PPA's). Een PPA is een dienst die door Launchpad wordt beheerd, en Launchpad is Ubuntu-infrastructuur. Niets in de RPM-wereld host zoiets.

Wat dnf in plaats daarvan heeft, is één plat tekstbestand per repository in /etc/yum.repos.d/, eindigend op .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 en $basearch zijn dnf-variabelen. dnf vult tijdens runtime uw major-versienummer en uw CPU-architectuur in, waardoor hetzelfde bestand werkt op versie 9 en versie 10, en op x86_64 en aarch64.

De meeste leveranciers publiceren dat bestand en instrueren u om het op te halen. De eigen instructies van Docker voor RHEL en de rebuilds daarvan bestaan uit twee commando's:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

De eerste regel is nodig omdat config-manager een plugin is en geen onderdeel van dnf zelf. Slaat u deze over, dan faalt de tweede regel met No such command: config-manager. Niets belet u om datzelfde .repo-bestand handmatig te downloaden met curl naar /etc/yum.repos.d/; het resultaat is identiek. Docker installeren op een VPS doorloopt de Debian-kant van dezelfde taak, waarbij de equivalente stap een bronnenlijst en een ondertekeningssleutel in twee verschillende mappen schrijft.

Het verschil in structuur bepaalt waar u zoekt wanneer een repository niet naar behoren werkt. apt bewaart definities in /etc/apt/sources.list en /etc/apt/sources.list.d/, waarbij ondertekeningssleutels apart worden opgeslagen onder /etc/apt/keyrings/. dnf bewaart alles in /etc/yum.repos.d/, en de sleutel is een URL binnen het .repo-bestand, waardoor er één bestand is om te lezen en één bestand om te verwijderen. Nieuwere versies van apt zijn naar dezelfde vorm geëvolueerd met het deb822-formaat, één .sources-bestand per repository. Als u bent gestuit op de deb822 duplicate sources-fout op Ubuntu, dan heeft u de apt-helft van dit probleem al ontmoet.

EPEL is het archief waar de meeste handleidingen vanuit gaan

Extra Packages for Enterprise Linux (EPEL) is een Fedora-project dat Fedora-pakketten bouwt voor RHEL en de bijbehorende rebuilds. Het is het dichtstbijzijnde equivalent van een universele PPA in deze wereld, en een zeer groot aantal handleidingen gaat ervan uit dat dit al is ingeschakeld. Als dnf install antwoordt met No match for argument voor een pakket dat u op de website van het project zelf kunt zien, is EPEL het eerste wat u moet controleren.

Op Rocky Linux en AlmaLinux:

sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
sudo dnf makecache

CRB staat voor CodeReady Builder, een repository met bibliotheken die bij de distributie wordt geleverd, maar standaard niet is ingeschakeld. De meeste EPEL-pakketten zijn afhankelijk van onderdelen uit deze repository; het inschakelen van EPEL zonder CRB mislukt daarom niet op dat moment. Het mislukt pas later, tijdens de installatie, door onopgeloste afhankelijkheden van een pakket waar u nog nooit van heeft gehoord. Schakel eerst CRB in en dit type fout verdwijnt.

Op RHEL zelf komt CRB beschikbaar via uw abonnement in plaats van via config-manager, dus volg voor die stap de eigen EPEL-instructies van Red Hat. Fedora heeft dit niet nodig, omdat de hoofd-repository al de pakketten bevat die EPEL backport. Het beleid van EPEL is om nooit een pakket te vervangen dat door RHEL wordt geleverd; het toevoegen van de repository verandert dus niets aan wat er al op uw server is geïnstalleerd.

dnf history undo, de functie die apt niet heeft

dnf legt elke transactie vast en kan het omgekeerde van een transactie opbouwen.

sudo dnf history
sudo dnf history info 42
sudo dnf history undo 42

dnf history toont een genummerde lijst van transacties met de opdrachtregel die elke transactie heeft gestart. undo construeert de tegenovergestelde transactie: pakketten die door die transactie zijn geïnstalleerd, worden verwijderd en pakketten die zijn geüpgraded, keren terug naar de versie die u voorheen had. Dit is de functie die apt-gebruikers het meest missen na de overstap.

Er zijn reële beperkingen en het is verstandig deze te kennen voordat u op deze functie vertrouwt. undo kan alleen een pakketversie opnieuw installeren die nog steeds bestaat in een ingeschakelde repository. Zodra de oude build uit de mirror is verwijderd, mislukt de undo-actie met een 'not-found'-foutmelding. Een rollback stopt bovendien bij de pakketdatabase. Een configuratiebestand dat door de upgrade is herschreven, blijft herschreven en een databaseschema dat door een service bij de eerste start is gemigreerd, blijft gemigreerd. dnf plaatst de bestanden terug, maar herstelt uw data niet.

apt heeft geen equivalent. /var/log/apt/history.log legt precies vast wat er is gebeurd, inclusief de opdrachtregel, maar het lezen van een logbestand is niet hetzelfde als het ongedaan maken van een actie. Herstel aan de kant van apt is handmatig: voer apt list -a nginx uit om te zien welke versies het archief nog bevat, gebruik vervolgens sudo apt install nginx=<exact version string> om een versie vast te pinnen en voeg sudo apt-mark hold nginx toe zodat de volgende upgrade uw correctie niet ongedaan maakt.

Pakketgroepen hebben geen equivalent in apt

dnf kan een benoemde set pakketten in één commando installeren.

dnf group list
dnf group info "Development Tools"
sudo dnf group install "Development Tools"

Oudere handleidingen schrijven dnf groupinstall "Development Tools". Dat alias werkt in dnf 4, maar is verwijderd in dnf 5. Daarom is het tweekoppige dnf group install de enige schrijfwijze die overal werkt. Gebruik deze en besteed er verder geen aandacht aan.

apt kent geen groepen. Het dichtstbijzijnde concept in Debian is een metapakket: een verder leeg pakket waarvan de enige inhoud een lijst met afhankelijkheden is, zoals build-essential. Het praktische verschil zit in het verwijderen: het verwijderen van een metapakket laat de afhankelijkheden geïnstalleerd totdat u apt autoremove uitvoert, terwijl dnf group remove de pakketten van de groep in dezelfde transactie verwijdert.

unattended-upgrades en dnf-automatic

Beide families bieden een manier om updates te installeren zonder dat er een gebruiker is ingelogd. De tools delen niets behalve hun doel.

Op Ubuntu en Debian is het pakket unattended-upgrades, geconfigureerd in /etc/apt/apt.conf.d/50unattended-upgrades, waar u de bronnen vermeldt waarvan het pakket updates mag ophalen. Het instellen van unattended upgrades op Ubuntu behandelt dat configuratiebestand en de bijbehorende vraag over herstarten.

Op Rocky Linux, AlmaLinux en Fedora is het pakket dnf-automatic, en de systemd-timer die u inschakelt bepaalt het gedrag.

sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer
systemctl list-timers 'dnf-automatic*'

dnf-automatic-install.timer downloadt en past updates toe. dnf-automatic-download.timer downloadt ze en stopt, waarna de installatie aan u is. dnf-automatic-notifyonly.timer rapporteert alleen. Elk van deze units overschrijft de apply_updates-instelling in /etc/dnf/automatic.conf, dus de timer die u kiest is belangrijker dan wat er in het configuratiebestand staat. Het installeren van een update herstart niet automatisch de processen die nog de oude code draaien, dus het is raadzaam om te controleren welke van die updates een herstart vereisen en welke slechts een herstart van de service nodig hebben voordat u ervan uitgaat dat de server volledig is gepatcht.

Om dit te beperken tot beveiligingsupdates, stelt u upgrade_type = security in /etc/dnf/automatic.conf in. Dat filter is afhankelijk van het feit of uw repositories beveiligings-errata publiceren, dus controleer dit eerst met dnf updateinfo list security. Een leeg resultaat op een systeem met openstaande updates betekent dat de metadata ontbreekt, en security zou in dat geval niets installeren.

Op Fedora heeft dnf 5 de unit hernoemd. Dit is dnf5-automatic.timer, en deze leest hetzelfde /etc/dnf/automatic.conf.

Is yum nog steeds een geldig commando?

Ja, en het voert zelf geen acties uit. Op Rocky Linux, AlmaLinux en CentOS Stream is /usr/bin/yum een symbolische link die naar dnf verwijst. Controleer dit op uw systeem:

ls -l /usr/bin/yum
dnf --version

Oude yum-syntaxis verschijnt nog steeds in handleidingen omdat het meeste direct wordt doorgegeven. yum install, yum remove en yum update werken allemaal. Eén gewoonte kunt u beter afleren: yum-config-manager bestaat nog steeds als eigen binary op dnf 4-systemen, maar dnf config-manager is de schrijfwijze die in de huidige documentatie wordt gebruikt. Dit is de schrijfwijze die blijft werken wanneer de server wordt gemigreerd naar dnf 5.

dnf 4 en dnf 5: controleer het commando voordat u het kopieert

dnf 5 is een herschreven versie, waarbij de schrijfwijze van diverse commando's is gewijzigd. Fedora 41 en latere versies leveren dit als dnf. De enterprise-rebuilds stappen minder snel over, dus ga niet af op de naam van de distributie. Voer dnf --version uit op uw eigen server en lees de eerste regel; dit nummer bepaalt welke syntaxis u hieronder moet gebruiken.

Het duidelijkste voorbeeld is afkomstig van Docker, dat voor beide versies een ander repository-commando publiceert. Op RHEL en de rebuilds daarvan, met dnf 4:

sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

Op Fedora, met dnf 5:

sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo

Dezelfde leverancier, dezelfde taak, andere woorden. dnf 5 heeft config-manager veranderd in een tool die op subcommando's is gebaseerd, waardoor de oude vlag --add-repo niet wordt geaccepteerd en u een gebruiks-foutmelding krijgt in plaats van een repository. Een ander commando dat u zult tegenkomen is het inschakelen van een repository: dnf config-manager --set-enabled crb in dnf 4 wordt dnf config-manager setopt crb.enabled=1 in dnf 5.

De keuze die er werkelijk toe doet

Het kiezen van een serverdistributie op basis van enkel de pakketbeheerder is de verkeerde insteek. dnf en apt verrichten hetzelfde werk en het vocabulaire is in een middag te leren. Wat uw jaar bepaalt, is het release-model achter de repository. Fedora beweegt snel en een specifieke release ontvangt ongeveer dertien maanden na verschijning geen updates meer; dit is prima voor een werkstation, maar onpraktisch voor een server die u niet opnieuw wilt opbouwen. Rocky Linux en AlmaLinux volgen RHEL, waardoor u een ondersteuningsperiode van tien jaar krijgt en pakketversies die bewust stabiel blijven. Ubuntu biedt beide vormen aan, en het verschil tussen Ubuntu LTS en interim-releases op een server is dezelfde beslissing die binnen de wereld van apt wordt genomen.

Sinds augustus 2026 zijn dit allemaal gangbare VPS-images. Kies de gewenste ondersteuningsperiode en leer vervolgens de tien bovenstaande commando's.

FAQ

Wat is het dnf-equivalent van apt update?

Er is geen commando dat u handmatig hoeft uit te voeren. dnf controleert vóór elke transactie hoe oud de gecachte metadata is en downloadt een nieuwe kopie zodra deze is verlopen. Hierdoor ziet dnf install op een server die u een maand niet heeft aangeraakt, nog steeds de actuele pakketten. sudo dnf makecache bestaat wel en dwingt die download af, maar het werkelijke nut is om de vertraging te verplaatsen naar een tijdstip van uw keuze in plaats van tijdens uw volgende installatie. Het commando dat beantwoordt "wat staat er voor mij klaar" is dnf check-update, wat verwijst naar apt list --upgradable en afsluit met status 100 wanneer er updates beschikbaar zijn.

Is er een PPA-equivalent op Rocky Linux of Fedora?

Nee. Personal package archives zijn een dienst van Launchpad en Launchpad is Ubuntu-infrastructuur, dus add-apt-repository heeft geen equivalent. Het RPM-equivalent is een .repo-bestand in /etc/yum.repos.d/ dat een naam, een baseurl en een gpgkey bevat. Leveranciers publiceren dat bestand voor u, en sudo dnf config-manager --add-repo <url> op dnf 4, of sudo dnf config-manager addrepo --from-repofile <url> op dnf 5, downloadt dit naar de juiste locatie. Voor algemene extra software is het antwoord meestal EPEL, dat u inschakelt met sudo dnf config-manager --set-enabled crb gevolgd door sudo dnf install epel-release.

Kan ik een dnf upgrade ongedaan maken die mijn server heeft beschadigd?

Ja, binnen bepaalde grenzen. Voer sudo dnf history uit om het transactienummer te vinden, sudo dnf history info <id> om precies te zien wat er is gewijzigd, en vervolgens sudo dnf history undo <id>. Het ongedaan maken mislukt als de oudere pakketversie niet langer aanwezig is in een ingeschakelde repository, omdat dnf dan niets heeft om opnieuw te installeren. Het draait bovendien alleen pakketwijzigingen terug. Een configuratiebestand dat door de upgrade is herschreven, of een database die bij de eerste start door een service is gemigreerd, blijft ongewijzigd. apt heeft in het geheel geen equivalent commando, enkel het logboek in /var/log/apt/history.log.

Werkt yum nog op Rocky Linux en AlmaLinux?

Het werkt omdat /usr/bin/yum een symbolische link is naar dnf. Bevestig dit op uw eigen systeem met ls -l /usr/bin/yum. Het typen van yum install httpd voert dnf uit, dus oude handleidingen werken meestal nog steeds. Schrijf nieuwe scripts en documentatie met dnf, aangezien de naam yum enkel voor compatibiliteit dient, en geef de voorkeur aan dnf config-manager boven het oudere yum-config-manager-binary.

Waarom wil dnf remove zoveel pakketten verwijderen?

Omdat dnf afhankelijkheden die door niets anders nodig zijn verwijdert als onderdeel van dezelfde transactie, terwijl apt remove deze geïnstalleerd laat totdat u apt autoremove afzonderlijk uitvoert. Een verwijdering die op Ubuntu klein lijkt, kan op Rocky Linux dus een lange lijst weergeven. De lijst is meestal correct, maar lees deze door voordat u bevestigt. Als er een pakket op staat dat u wilt behouden, installeer het dan eerst expliciet zodat dnf het registreert als een pakket dat u zelf wilt behouden.