apt to dnf: Mga Katumbas sa Rocky at Fedora
Hanapin ang katumbas ng bawat apt command sa Rocky Linux, AlmaLinux, at Fedora, pati repository setup, rollback, package groups, at unattended updates.
Ang maikling sagot
Ang paglipat mula apt patungo sa dnf ay pangunahing pagbabago sa vocabulary. Ang apt install nginx ay nagiging dnf install nginx. Ang apt remove nginx ay nagiging dnf remove nginx. Walang direktang katumbas ang apt update, dahil awtomatikong nire-refresh ng dnf ang repository metadata kapag luma na ang naka-cache na kopya. Kasya sa isang screen ang madaling bahagi ng pagsasalin. Ang kapaki-pakinabang na bahagi ay ang apat na operation na walang direktang katumbas: pagdaragdag ng repository, pag-undo ng transaction, pag-install ng package group, at pagpapatakbo ng unattended updates.
Ang bawat command sa ibaba ay isinulat para patakbuhin mo sa sarili mong server. Basahin ang transaction summary na inilalabas ng dnf bago mo sagutin ang y, lalo na kapag may removal.
Aling distro ang gumagamit ng dnf, at alin ang gumagamit ng apt
Ang dnf ang package manager sa Fedora, Red Hat Enterprise Linux (RHEL), at sa mga rebuild ng RHEL: Rocky Linux, AlmaLinux, at CentOS Stream. Ang apt naman ang package manager sa Debian at sa lahat ng derived mula sa Debian, na sa VPS ay halos palaging nangangahulugang Ubuntu. Wala nang ikatlong sagot. Kung nag-aalok ang image list ng provider mo ng Rocky Linux o AlmaLinux, dnf ang makukuha mo. Kung Ubuntu ang inaalok nito, apt ang makukuha mo.
Sumusunod ang package format sa tool. Nag-i-install ang dnf ng .rpm files at rpm ang database nito. Nag-i-install ang apt ng .deb files at dpkg ang database nito. Kaya maraming vendor install page ang may tig-isang tab para sa bawat family, at kung bakit walang silbi sa Rocky Linux ang .deb na na-download mula sa release page ng isang project.
Anumang family ang mapili mo, pareho ang unang gawain sa pag-login. Nalalapat sa parehong family ang Unang sampung minuto sa bagong VPS. Nagbabago lamang ang install command.
Bawat apt command at katumbas nitong dnf
I-install, alisin, hanapin, at ipakita. Halos pareho ang mga salitang ginagamit ng dalawang panig.
# 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 nginxAng apt show ay dnf info. Ito lamang ang verb na pinalitan ng pangalan sa pangkat, pero magkaiba ang isang behavior at madalas itong nakalilito. Awtomatikong inaalis din ng dnf remove ang mga dependency na wala nang ibang gumagamit, samantalang iniiwan ng apt remove ang mga ito para sa susunod na apt autoremove. Kaya kapag nag-alis ka ng isang maliit na utility sa Rocky Linux, maaaring imungkahi nitong alisin pati ang isang dosenang library. Basahin ang listahan bago kumpirmahin.
I-refresh ang metadata, tingnan kung ano ang nakabinbin, at mag-upgrade.
# 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 upgradeMandatory ang apt update sa panig ng apt dahil ginagamit ng apt ang metadata na nasa disk at maaari nitong i-install ang isang version na ilang buwan nang wala sa archive. Sinusuri ng dnf ang edad ng cache nito bago ang bawat transaction at awtomatikong nagda-download ng bagong metadata. Kaya ginagamit lang ang sudo dnf makecache upang piliting gawin agad ang download sa halip na sa susunod na install.
Hinahati ng apt ang buong system upgrade sa dalawang command, samantalang hindi ito ginagawa ng dnf. Tumanggi ang apt upgrade na mag-alis ng anumang naka-install na package, kaya humihinto ito kapag kailangan alisin ang isang package para makumpleto ang update. Ang apt full-upgrade ang bersyong pinapayagang mag-alis ng package. Walang ganitong restriction ang dnf. Ibig sabihin, ang dnf upgrade ang katumbas ng apt full-upgrade, hindi ng apt upgrade. Mas lumang alias ang dnf update para sa parehong command at gumagana pa rin ito.
Mahalaga ang isang detalye kapag ginagawa mo itong script: nag-e-exit ang dnf check-update na may status 100 kapag may nakabinbing update at 0 kapag wala. Nag-e-exit ang apt list --upgradable na may 0 sa parehong sitwasyon, kaya kailangang i-parse ng mga script ang output nito.
Ilista kung ano ang naka-install at alamin kung aling package ang nagmamay-ari ng isang file.
# 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/nginxIba ang tanong na sinasagot ng huling linya ng bawat block kaysa sa mga naunang linya. Ang dpkg -S at rpm -qf ay naghahanap lamang sa mga package na naka-install na, kaya sinasagot nila ang tanong na “ano ang naglagay ng file na ito rito”. Naghahanap naman ang apt-file search at dnf provides sa mga repository, kaya sinasagot nila ang tanong na “ano ang dapat kong i-install para makuha ang file na ito”. Hiwalay na package ang apt-file sa Ubuntu at kailangan nito ang sudo apt-file update bago ang unang run. Walang kailangang idagdag sa dnf provides, bagama't maaaring mabagal ang unang run dahil dina-download ng dnf ang mga file list ng repository para makasagot.
Para ilista ang mga file sa loob ng package na hindi mo pa na-install, gamitin ang dnf repoquery -l nginx. Sa panig ng apt, ang katumbas nito ay apt-file list nginx.
Autoremove, linisin ang cache, at i-hold ang isang 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 nginxHindi naka-install bilang default ang versionlock sa Rocky Linux o AlmaLinux, kaya mabibigo ang unang command sa mga linyang iyon na may No such command: versionlock sa bagong setup. I-install muna ito gamit ang sudo dnf install python3-dnf-plugin-versionlock. Walang kailangang idagdag ang apt para sa apt-mark hold dahil ang hold ay isang dpkg state, hindi isang plugin.
Saan nasisira ang mapping: pagdaragdag ng repository
Ito ang bahaging nagpapahanap sa mga Ubuntu admin ng command na hindi umiiral. Walang add-apt-repository sa dnf, at walang personal package archives (PPAs). Ang PPA ay isang service na pinapatakbo ng Launchpad, at ang Launchpad ay bahagi ng Ubuntu infrastructure. Walang katumbas nito sa RPM ecosystem.
Ang mayroon ang dnf ay isang plain text file para sa bawat repository sa /etc/yum.repos.d/, na nagtatapos sa .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/gpgAng $releasever at $basearch ay mga variable ng dnf. Awtomatikong inilalagay ng dnf ang major release number at CPU architecture sa runtime. Kaya gumagana ang parehong file sa version 9 at version 10, pati sa x86_64 at aarch64.
Karamihan sa mga vendor ay nagpa-publish ng file na iyon at sinasabing i-fetch ito. Dalawang command ang sariling instructions ng Docker para sa RHEL at mga rebuild nito:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoKailangan ang unang linya dahil plugin ang config-manager, at hindi ito bahagi mismo ng dnf. Kapag nilaktawan ito, mabibigo ang ikalawang linya sa No such command: config-manager. Maaari mo ring manu-manong i-download ang parehong .repo file gamit ang curl papunta sa /etc/yum.repos.d/. Pareho ang magiging resulta. Ipinapakita ng Pag-install ng Docker sa isang VPS ang katumbas na proseso sa Debian, kung saan ang equivalent na hakbang ay nagsusulat ng source list at signing key sa dalawang magkaibang directory.
Tinutukoy ng pagkakaiba sa layout kung saan ka titingin kapag may problema ang isang repository. Pinapanatili ng apt ang mga definition sa /etc/apt/sources.list at /etc/apt/sources.list.d/, habang hiwalay na inilalagay ang signing keys sa ilalim ng /etc/apt/keyrings/. Pinapanatili naman ng dnf ang lahat sa /etc/yum.repos.d/, at URL ang key sa loob ng .repo file. Kaya isang file lang ang babasahin at isang file lang ang buburahin. Lumipat na ang mas bagong apt sa katulad na format gamit ang deb822: isang .sources file para sa bawat repository. Kung naranasan mo na ang duplicate sources error sa deb822 sa Ubuntu, nakita mo na ang katumbas na bahagi ng problemang ito sa apt.
Ang EPEL ang archive na ipinapalagay ng karamihan ng mga guide
Ang Extra Packages for Enterprise Linux (EPEL) ay isang Fedora project na nagbu-build ng Fedora packages para sa RHEL at sa mga rebuild nito. Ito ang pinakamalapit na katumbas ng universal PPA sa ecosystem na ito, at ipinapalagay ng napakaraming tutorial na naka-enable na ito. Kung sinasagot ng dnf install ang No match for argument para sa isang package na makikita sa sariling website ng project, EPEL ang unang dapat tingnan.
Sa Rocky Linux at AlmaLinux:
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
sudo dnf makecacheAng CRB ay CodeReady Builder, isang repository ng mga library na kasama sa distribution pero hindi naka-enable bilang default. Umaasa ang karamihan ng EPEL packages sa isang bagay mula rito, kaya hindi agad nagfa-fail ang pag-enable ng EPEL kapag wala ang CRB. Nagfa-fail ito kalaunan, sa oras ng installation, dahil may unresolved dependencies sa isang package na hindi mo pa naririnig. I-enable muna ang CRB upang mawala ang ganitong uri ng error.
Sa RHEL mismo, dumarating ang CRB sa pamamagitan ng iyong subscription, hindi sa pamamagitan ng config-manager, kaya sundin ang sariling EPEL instructions ng Red Hat para sa hakbang na iyon. Hindi kailangan ng Fedora ang alinman dito dahil nasa main repository nito ang mga package na bina-backport ng EPEL. Patakaran ng EPEL na huwag kailanman palitan ang package na inilalabas ng RHEL, kaya walang binabago ang pagdaragdag ng repository sa mga naka-install na sa iyong server.
dnf history undo, ang bagay na hindi kayang gawin ng apt
Itinatala ng dnf ang bawat transaction, at maaari nitong buuin ang kabaligtaran ng isang transaction.
sudo dnf history
sudo dnf history info 42
sudo dnf history undo 42Ipinapakita ng dnf history ang numbered list ng mga transaction, kasama ang command line na nagsimula sa bawat isa. Binubuo ng undo ang kabaligtarang transaction: inaalis nito ang mga package na na-install ng transaction, at ibinabalik sa dating version ang mga package na na-upgrade nito. Ito ang feature na pinakaina-miss ng mga apt user matapos lumipat.
May mahahalagang limitasyon ito, kaya dapat mong malaman ang mga ito bago ka umasa rito. Maaari lamang muling i-install ng undo ang isang package version kung mayroon pa ito sa isang enabled repository. Kapag inalis na ang lumang build sa mirror, mabibigo ang undo at magpapakita ng not-found error. Humihinto rin ang rollback sa package database. Mananatiling nabago ang config file na ni-rewrite ng upgrade, at mananatiling migrated ang database schema na ni-migrate ng isang service sa unang pagsisimula nito. Ibinabalik ng dnf ang mga file. Hindi nito ibinabalik ang iyong data.
Walang katumbas nito ang apt. Itinatala ng /var/log/apt/history.log kung ano mismo ang nangyari, kasama ang command line, pero ang pagbabasa ng log ay hindi pag-undo sa mga pagbabagong iyon. Manual ang recovery sa panig ng apt: patakbuhin ang apt list -a nginx para makita kung aling mga version ang hawak pa ng archive, pagkatapos ay gamitin ang sudo apt install nginx=<exact version string> para i-pin ang isa, at idagdag ang sudo apt-mark hold nginx upang hindi ma-undo ng susunod na upgrade ang iyong fix.
Walang apt equivalent ang mga package group
Maaaring i-install ng dnf ang isang pinangalanang set ng mga package gamit ang isang command.
dnf group list
dnf group info "Development Tools"
sudo dnf group install "Development Tools"Isinusulat ng mga lumang guide ang dnf groupinstall "Development Tools". Gumagana ang alias na iyon sa dnf 4 ngunit inalis na sa dnf 5, kaya ang dalawang-salitang dnf group install lamang ang spelling na gumagana sa lahat ng bersyon. Gamitin ito at huwag na itong pag-isipan pa.
Walang package group ang apt. Ang pinakamalapit na konsepto sa Debian ay metapackage, isang package na karaniwang walang laman at ang tanging laman ay listahan ng dependencies, gaya ng build-essential. Ang praktikal na pagkakaiba ay makikita kapag nag-aalis na: kapag inalis ang metapackage, mananatiling naka-install ang mga dependency nito hanggang patakbuhin mo ang apt autoremove, samantalang inaalis din ng dnf group remove ang mga package ng group sa parehong transaction.
unattended-upgrades at dnf-automatic
Ang parehong pamilya ng package ay may paraan para mag-install ng updates kahit walang naka-log in. Magkaiba ang mga tool na ito maliban sa kanilang layunin.
Sa Ubuntu at Debian, ang package ay unattended-upgrades, at kino-configure sa /etc/apt/apt.conf.d/50unattended-upgrades. Dito inililista ang mga origin na pinapayagan nitong pagkunan ng updates. Saklaw ng Pagse-set up ng unattended upgrades sa Ubuntu ang config file na ito at ang usapin ng reboot na kaakibat nito.
Sa Rocky Linux, AlmaLinux, at Fedora, ang package ay dnf-automatic. Ang systemd timer na ie-enable mo ang nagtatakda ng behavior.
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer
systemctl list-timers 'dnf-automatic*'Dina-download at inilalapat ng dnf-automatic-install.timer ang mga updates. Dina-download ng dnf-automatic-download.timer ang mga ito at humihinto, kaya ikaw ang mag-i-install. Nagbibigay lang ng report ang dnf-automatic-notifyonly.timer. Bawat unit na ito ay nag-o-override sa setting na apply_updates sa /etc/dnf/automatic.conf, kaya mas mahalaga ang pipiliin mong timer kaysa sa nakasaad sa config file.
Para limitahan ito sa mga security fix, itakda ang upgrade_type = security sa /etc/dnf/automatic.conf. Nakadepende ang filter na ito sa pag-publish ng iyong mga repository ng security errata, kaya suriin muna gamit ang dnf updateinfo list security. Kung walang resulta sa isang machine na may nakabinbing updates, ibig sabihin ay wala ang metadata. Sa ganitong sitwasyon, walang mai-install ang security.
Sa Fedora, pinalitan ng dnf 5 ang pangalan ng unit. Ito ay dnf5-automatic.timer, at binabasa nito ang parehong /etc/dnf/automatic.conf.
Totoo pa bang command ang yum?
Oo, at wala itong ginagawa nang mag-isa. Sa Rocky Linux, AlmaLinux, at CentOS Stream, ang /usr/bin/yum ay symbolic link na tumuturo sa dnf. Suriin ang nasa system mo:
ls -l /usr/bin/yum
dnf --versionPatuloy na lumalabas sa mga tutorial ang lumang yum syntax dahil direktang gumagana pa rin ang karamihan dito. Gumagana ang yum install, yum remove, at yum update. May isang nakasanayan na dapat nang alisin: umiiral pa bilang sariling binary ang yum-config-manager sa mga system na gumagamit ng dnf 4, pero ang dnf config-manager ang spelling na ginagamit sa kasalukuyang documentation. Ito rin ang patuloy na gagana kapag lumipat ang system sa dnf 5.
dnf 4 at dnf 5: suriin muna bago mag-copy ng command
Rewrite ang dnf 5, kaya binago nito ang spelling ng ilang command. Ipinapadala ito ng Fedora 41 at mga mas bagong release bilang dnf. Mas mabagal lumipat ang mga enterprise rebuild, kaya huwag manghula batay sa pangalan ng distribution. Patakbuhin ang dnf --version sa sarili mong server at basahin ang unang linya, dahil ang numerong iyon ang magtatakda kung aling syntax sa ibaba ang kailangan mo.
Pinakamalinaw itong makikita sa Docker, na naglalabas ng magkahiwalay na repository command para sa bawat isa. Sa RHEL at mga rebuild nito, gamit ang dnf 4:
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoSa Fedora, gamit ang dnf 5:
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repoParehong vendor at parehong gawain, pero magkaiba ang mga salita. Ginawang subcommand-driven tool ng dnf 5 ang config-manager, kaya hindi tinatanggap ang lumang --add-repo flag at makakakuha ka ng usage error sa halip na repository. Ang isa pang makikita mo ay ang pag-enable ng repository: ang dnf config-manager --set-enabled crb sa dnf 4 ay nagiging dnf config-manager setopt crb.enabled=1 sa dnf 5.
Ang talagang mahalagang pagpili
Maling batayan ang pagpili ng server distribution batay lamang sa package manager. Parehong ginagawa ng dnf at apt ang parehong trabaho, at isang hapon lang ang kailangan para matutuhan ang kanilang vocabulary. Ang tunay na makaaapekto sa buong taon mo ay ang release model sa likod ng repository. Mabilis ang release cycle ng Fedora, at humihinto itong makatanggap ng updates humigit-kumulang labintatlong buwan matapos ilabas ang isang release. Ayos ito para sa workstation, pero mahirap para sa server na ayaw mong muling i-rebuild. Sinusundan ng Rocky Linux at AlmaLinux ang RHEL, kaya may sampung taong support window ka at nananatiling sadyang stable ang mga package version. Nag-aalok ang Ubuntu ng parehong uri, at ang pagkakaiba ng Ubuntu LTS at interim releases sa isang server ay kaparehong desisyong ginagawa sa loob ng apt ecosystem.
Noong August 2026, karaniwang VPS images ang lahat ng ito. Piliin ang support window na kailangan mo, saka pag-aralan ang sampung command sa itaas.
FAQ
Ano ang katumbas ng apt update sa dnf?
Walang command na kailangan mong patakbuhin. Sinusuri ng dnf kung gaano na katagal ang naka-cache nitong metadata bago ang bawat transaction at nagda-download ito ng bagong kopya kapag expired na ang metadata. Kaya nakikita pa rin ng dnf install sa isang server na hindi mo ginalaw sa loob ng isang buwan ang mga kasalukuyang package. May sudo dnf makecache, at pinipilit nito ang pag-download na iyon, pero ang tunay na gamit nito ay ilipat ang delay sa oras na pipiliin mo sa halip na mangyari ito sa susunod mong install. Ang command na sumasagot sa “ano ang naghihintay para sa akin” ay dnf check-update. Tumatapat ito sa apt list --upgradable at nag-e-exit na may status 100 kapag may available na updates.
May katumbas ba ng PPA sa Rocky Linux o Fedora?
Wala. Ang personal package archive ay serbisyo ng Launchpad, at ang Launchpad ay imprastraktura ng Ubuntu. Kaya walang katumbas na kailangang isalin ang add-apt-repository. Ang katumbas sa RPM ay isang .repo file sa /etc/yum.repos.d/ na naglalaman ng pangalan, baseurl, at gpgkey. Ang vendor ang naglalathala ng file na iyon para sa iyo. Sa dnf 4, dina-download at inilalagay ito ng sudo dnf config-manager --add-repo <url>. Sa dnf 5 naman, sudo dnf config-manager addrepo --from-repofile <url> ang ginagamit. Para sa pangkalahatang karagdagang software, karaniwang EPEL ang sagot. I-enable ito gamit ang sudo dnf config-manager --set-enabled crb, kasunod ang sudo dnf install epel-release.
Maaari ko bang i-undo ang dnf upgrade na nakasira sa server ko?
Oo, pero may mga limitasyon. Patakbuhin ang sudo dnf history para makita ang transaction number, ang sudo dnf history info <id> para makita kung ano mismo ang binago nito, at pagkatapos ay ang sudo dnf history undo <id>. Mabibigo ang undo kung wala na ang mas lumang package version sa alinmang enabled repository, dahil walang mapagkukunan ang dnf para sa muling pag-install. Binabaligtad lamang nito ang mga pagbabago sa package. Kung may configuration file na pinalitan ng upgrade, o database na in-migrate ng isang serbisyo sa unang pagsisimula nito, mananatili ang mga iyon sa kasalukuyang estado. Walang katumbas na command ang apt. Ang mayroon lamang dito ay ang record sa /var/log/apt/history.log.
Gumagana pa ba ang yum sa Rocky Linux at AlmaLinux?
Gumagana ito dahil ang /usr/bin/yum ay symbolic link papunta sa dnf. Kumpirmahin ito sa sarili mong machine gamit ang ls -l /usr/bin/yum. Kapag nag-type ka ng yum install httpd, dnf ang pinapatakbo. Kaya karaniwang gumagana pa rin ang mga lumang tutorial. Para sa mga bagong script at documentation, gamitin ang dnf. Compatibility name na lamang ang yum. Mas mainam ding gamitin ang dnf config-manager kaysa sa mas lumang yum-config-manager binary.
Bakit gustong mag-delete ng napakaraming package ng dnf remove?
Dahil inaalis ng dnf ang mga dependency na wala nang ibang nangangailangan bilang bahagi ng parehong transaction. Samantala, iniiwan ng apt remove na naka-install ang mga ito hanggang sa patakbuhin mo nang hiwalay ang apt autoremove. Kaya ang removal na mukhang maliit sa Ubuntu ay maaaring magpakita ng mahabang listahan sa Rocky Linux. Karaniwang tama ang listahang ito, pero basahin muna ito bago kumpirmahin. Kung may package sa listahan na gusto mong panatilihin, i-install muna ito nang tahasan. Sa ganitong paraan, itatala ito ng dnf bilang package na hayagang kailangan.