Perintah dnf: Instal, Perbarui, dan Hapus Paket serta Perbedaannya dengan yum
Perintah dnf adalah perintah manajemen paket di Linux keluarga RHEL untuk mencari, menginstal, memperbarui, dan menghapus paket. Di AlmaLinux 9, mengetik yum pun menjalankan program yang sama. Di server AlmaLinux 9, kami benar-benar menjalankan search, info, provides, dan history, lalu memeriksa dari outputnya ke mana masing-masing search, info, dan provides melihat saat mencari paket, serta catatan kerja apa yang tersimpan di history.
Perintah yang mengubah sistem, seperti instal, hapus, dan pembaruan, tidak kami jalankan. Perilakunya kami periksa dari dokumentasi resmi DNF dan catatan kerja yang sudah ada di server.
1️⃣ Hubungan perintah dnf dan yum
Mudah untuk mengira bahwa mengetik yum menjalankan yum versi lama, tetapi di AlmaLinux 9, yum dan dnf sama-sama merupakan tautan ke file eksekusi yang sama, yaitu dnf-3.
ls -l /usr/bin/yum /usr/bin/dnflrwxrwxrwx 1 root root 5 May 21 04:48 /usr/bin/dnf -> dnf-3
lrwxrwxrwx 1 root root 5 May 21 04:48 /usr/bin/yum -> dnf-3Perbedaan yum dan dnf hanya pada nama yang diketik; mana pun yang Anda ketik, subperintah dan opsinya sama. Output search htop yang dijalankan dengan yum dan dengan dnf juga persis sama.
Menurut dokumentasi resmi DNF [Changes in DNF CLI compared to YUM], update dan upgrade melakukan hal yang sama, dan dokumentasi tersebut menyarankan upgrade.
Pada distribusi lama yang tidak memiliki dnf, gunakan perintah yum seperti biasa. Nama subperintah dalam artikel ini, seperti install, search, dan history, juga sama di yum.
2️⃣ Pencarian paket dengan perintah dnf: search, info, provides
Jika Anda tidak tahu nama paket yang tepat untuk program yang ingin diinstal, cari dengan search ditambah satu kata. search mencari kata itu di nama dan ringkasan (Summary) paket, lalu menaruh paket yang namanya persis sama di urutan teratas.
dnf search htopLast metadata expiration check: 0:21:53 ago on Wed Oct 28 15:24:31 2026.
========================== Name Exactly Matched: htop ==========================
htop.x86_64 : Interactive process viewerhtop hanya punya satu paket dengan nama yang persis sama, jadi hasilnya cukup satu baris di bawah [Name Exactly Matched].
dnf search wgetLast metadata expiration check: 0:22:35 ago on Wed Oct 28 15:24:31 2026.
========================== Name Exactly Matched: wget ==========================
wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
========================= Name & Summary Matched: wget =========================
perl-HTTP-Tinyish-Wget.noarch : HTTP::Tinyish wget backend
wget2-devel.x86_64 : Libraries and header files needed for using wget2 libraries
wget2-libs.x86_64 : Runtime libraries for GNU Wget2
============================== Name Matched: wget ==============================
wget2.x86_64 : An advanced file and recursive website downloaderKata yang muncul di banyak paket seperti wget keluar dalam tiga kelompok: yang namanya persis sama, yang ada di nama dan ringkasan, dan yang hanya ada di nama.
search tidak melihat kalimat deskripsi (Description), jadi tidak cocok untuk mencari kata yang hanya ada di deskripsi. Dalam hal ini, tambahkan opsi [--all] untuk memperluas pencarian sampai ke deskripsi dan URL.
Setelah tahu nama paketnya, periksa versi, ukuran, dan repositori asalnya dengan info.
dnf info htopLast metadata expiration check: 0:22:37 ago on Wed Oct 28 15:24:31 2026.
Available Packages
Name : htop
Version : 3.3.0
Release : 1.el9
Architecture : x86_64
Size : 198 k
Source : htop-3.3.0-1.el9.src.rpm
Repository : epel
Summary : Interactive process viewer
URL : http://hisham.hm/htop/
License : GPLv2+
Description : htop is an interactive text-mode process viewer for Linux, similar to
: top(1).htop yang belum terinstal muncul di info htop di bawah [Available Packages] dengan versi 3.3.0 dan repositori epel. htop hanya ada di repositori epel, jadi jika search dijalankan ulang tanpa epel, tidak ada hasil sama sekali.
dnf info wgetLast metadata expiration check: 0:22:38 ago on Wed Oct 28 15:24:31 2026.
Installed Packages
Name : wget
Version : 1.21.1
Release : 11.el9_8
Architecture : x86_64
Size : 3.1 M
Source : wget-1.21.1-11.el9_8.src.rpm
Repository : @System
From repo : appstream
Summary : A utility for retrieving files using the HTTP or FTP protocols
URL : http://www.gnu.org/software/wget/
License : GPLv3+
Description : GNU Wget is a file retrieval utility which can use either the HTTP or
: FTP protocols. Wget features include the ability to work in the
: background while you are logged out, recursive retrieval of
: directories, file name wildcard matching, remote file timestamp
: storage and comparison, use of Rest with FTP servers and Range with
: HTTP servers to retrieve files over slow or unstable connections,
: support for Proxy servers, and configurability.wget yang sudah terinstal muncul di bawah [Installed Packages]. Repository-nya @System, dan repositori asal saat diinstal tercatat sebagai appstream di baris [From repo].
Sebaliknya, jika Anda hanya tahu nama file dan tidak tahu paket mana yang memuatnya, berikan path file ke provides.
dnf provides /usr/bin/treeLast metadata expiration check: 0:22:40 ago on Wed Oct 28 15:24:31 2026.
tree-1.8.0-10.el9.x86_64 : File system tree viewer
Repo : @System
Matched from:
Filename : /usr/bin/tree
tree-1.8.0-10.el9.x86_64 : File system tree viewer
Repo : baseos
Matched from:
Filename : /usr/bin/treeHasil pencarian /usr/bin/tree terbagi dua kelompok: sisi paket tree yang terinstal (@System) dan sisi repositori (baseos). Filename di bawah [Matched from] adalah path yang benar-benar cocok. Jika Anda hanya menulis nama file tanpa path, dnf menambahkan /usr/bin/ dan /usr/sbin/ di depannya lalu mencari lagi, dan jika tetap tidak ada, perintah berakhir dengan error di bawah ini.
dnf provides nosuchfileLast metadata expiration check: 0:22:41 ago on Wed Oct 28 15:24:31 2026.
Error: No matches found. If searching for a file, try specifying the full path or using a wildcard prefix ("*/") at the beginning.Pesan error menyarankan untuk menulis path lengkap atau menambahkan wildcard [*/] di depannya. Apa yang diterima ketiga perintah sebagai input dan di mana mereka mencari dapat dibandingkan satu per satu di diagram di bawah.
3️⃣ Instalasi, penghapusan, dan pembaruan paket: install, remove, upgrade
Paket yang ditemukan diinstal dengan install. dnf tidak hanya menginstal paket yang ditentukan, tetapi juga paket dependensi yang dibutuhkannya sekaligus.
dnf install htopMenurut dokumentasi resmi, dnf menampilkan daftar paket yang akan diinstal (ringkasan transaksi) lalu bertanya apakah akan dilanjutkan; dengan [-y], dnf langsung melanjutkan tanpa bertanya.
Paket dependensi yang ikut dibutuhkan saat instalasi dapat diperiksa lebih dulu dengan repoquery [--requires].
dnf repoquery --requires htopLast metadata expiration check: 0:22:59 ago on Wed Oct 28 15:24:31 2026.
libc.so.6(GLIBC_2.34)(64bit)
libcap.so.2()(64bit)
libhwloc.so.15()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.29)(64bit)
libncursesw.so.6()(64bit)
libnl-3.so.200()(64bit)
libnl-3.so.200(libnl_3)(64bit)
libnl-genl-3.so.200()(64bit)
libnl-genl-3.so.200(libnl_3)(64bit)
libtinfo.so.6()(64bit)
rtld(GNU_HASH)Dengan [--requires] saja, yang keluar hanya nama pustaka yang dibutuhkan htop. Paket mana yang memuat pustaka itu diperiksa dengan perintah berikut.
dnf repoquery --requires --resolve htopLast metadata expiration check: 0:23:01 ago on Wed Oct 28 15:24:31 2026.
glibc-0:2.34-283.el9_8.i686
glibc-0:2.34-283.el9_8.x86_64
hwloc-libs-0:2.4.1-6.el9_7.x86_64
libcap-0:2.48-10.el9_8.1.x86_64
libnl3-0:3.11.0-1.el9.x86_64
ncurses-libs-0:6.2-12.20210508.el9.x86_64Jika ditambah [--resolve], hasilnya berubah menjadi nama paket yang menyediakan pustaka itu. Di antaranya, hwloc-libs tidak ada di server uji, sehingga akan ikut terinstal saat htop diinstal.
remove menghapus paket yang ditentukan beserta paket yang bergantung padanya, dan pada pengaturan bawaan juga menghapus paket dependensi yang tidak lagi diperlukan.
dnf remove htopMenghapus htop saja juga ikut menghapus paket dependensi yang tidak dibutuhkan paket lain, seperti hwloc-libs yang terinstal karena htop.
Paket yang dulu terinstal sebagai dependensi tetapi kini tidak dibutuhkan paket mana pun dihapus oleh autoremove. Periksa dulu daftar yang akan dihapus dengan list [--autoremove].
dnf list --autoremoveLast metadata expiration check: 0:23:09 ago on Wed Oct 28 15:24:31 2026.
Autoremove Packages
cmake-rpm-macros.noarch 3.31.8-3.el9 @appstream
grub2-tools-efi.x86_64 1:2.06-126.el9_8.alma.1 @baseos
grub2-tools-extra.x86_64 1:2.06-126.el9_8.alma.1 @baseos
libatomic.x86_64 11.5.0-14.el9.alma.1 @baseos
libvisual.x86_64 1:0.4.0-34.el9 @appstream
libwayland-server.x86_64 1.21.0-1.el9 @appstreamdnf autoremoveDi server uji, daftar itu berisi 6 paket, dan autoremove menghapus keenamnya sekaligus.
Untuk memeriksa apakah paket yang terinstal punya versi baru, gunakan check-update. Jika diberi nama paket, hanya paket itu yang diperiksa.
dnf check-update libavif libdav1dLast metadata expiration check: 0:52:20 ago on Wed Oct 28 15:24:31 2026.
libavif.x86_64 1.1.1-3.el9 epel
libdav1d.x86_64 1.5.4-1.el9 epelPerintah di atas dengan libavif dan libdav1d berakhir dengan kode keluar 100 karena keduanya punya versi baru. check-update berakhir dengan 100 jika ada pembaruan, 0 jika tidak ada, dan 1 jika terjadi error, sehingga bisa dipakai sebagai kondisi percabangan dalam skrip.
Jika list diberi nama paket, versi terinstal dan versi baru di repositori ditampilkan bersama. Dengan updateinfo list, Anda dapat memeriksa advisory mana yang mencakup pembaruan itu.
dnf list libavifLast metadata expiration check: 0:52:21 ago on Wed Oct 28 15:24:31 2026.
Installed Packages
libavif.x86_64 0.11.1-5.el9 @epel
Available Packages
libavif.x86_64 1.1.1-3.el9 epelUntuk libavif, versi terinstal 0.11.1-5.el9 muncul di bawah [Installed Packages], dan versi repositori 1.1.1-3.el9 muncul terpisah di bawah [Available Packages].
dnf updateinfo list libavifLast metadata expiration check: 0:52:24 ago on Wed Oct 28 15:24:31 2026.
FEDORA-EPEL-2026-d611eab94a bugfix libavif-1.1.1-3.el9.x86_64Versi baru itu adalah pembaruan untuk advisory bugfix FEDORA-EPEL-2026-d611eab94a. Pembaruan keamanan muncul di tempat yang sama dengan tingkat dan Sec., seperti [Moderate/Sec.].
Pembaruan dijalankan dengan upgrade. upgrade hanya menginstal versi baru sejauh dependensinya cocok, sehingga versi yang terlihat di check-update belum tentu terinstal persis seperti itu.
dnf upgrade libavifJika diberi nama paket, hanya paket itu dan paket dependensi yang dibutuhkan yang dinaikkan ke versi baru.
dnf upgradeJika nama dihilangkan, seluruh paket terinstal menjadi sasaran. Alur menampilkan ringkasan transaksi lalu bertanya apakah akan dilanjutkan sama seperti install, dan transaksi yang dijalankan tercatat di history dengan nomor.
4️⃣ Daftar repositori perintah dnf: repolist
Tempat search dan install mencari paket adalah repositori (repository). repolist menampilkan id dan nama repositori yang sedang aktif.
dnf repolistrepo id repo name
appstream AlmaLinux 9 - AppStream
baseos AlmaLinux 9 - BaseOS
epel Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras AlmaLinux 9 - Extras
nginx-stable nginx stable repo
remi-modular Remi's Modular repository for Enterprise Linux 9 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 9 - x86_64Mudah untuk mengira bahwa repositori yang tidak ada di daftar berarti tidak ada di server, tetapi output bawaan repolist hanya menampilkan repositori yang aktif. Dengan [--all], repositori yang nonaktif juga ditampilkan bersama kolom status. Di server uji, ketiga repositori CRB AlmaLinux 9 semuanya disabled.
dnf repolist --all | grep -i crbcrb AlmaLinux 9 - CRB disabled
crb-debuginfo AlmaLinux 9 - CRB - Debug disabled
crb-source AlmaLinux 9 - CRB - Source disabledJumlah paket, alamat mirror, waktu kedaluwarsa metadata, dan lokasi file konfigurasi satu repositori diperiksa dengan repoinfo.
dnf repoinfo baseosLast metadata expiration check: 0:22:55 ago on Wed Oct 28 15:24:31 2026.
Repo-id : baseos
Repo-name : AlmaLinux 9 - BaseOS
Repo-status : enabled
Repo-revision : 1793090609
Repo-updated : Tue Oct 27 17:43:29 2026
Repo-pkgs : 3458
Repo-available-pkgs: 3458
Repo-size : 21 G
Repo-mirrors : https://mirrors.almalinux.org/mirrorlist/9/baseos
Repo-baseurl : http://aws.repo.almalinux.org/almalinux/9.8/BaseOS/x86_64/os/ (9 more)
Repo-expire : 86400 second(s) (last: Wed Oct 28 15:24:26 2026)
Repo-filename : /etc/yum.repos.d/almalinux-baseos.repo
Total packages: 3458repoinfo baseos menunjukkan 3.458 paket, dan metadata diatur untuk diperiksa ulang setiap 86.400 detik (sehari). File .repo di baris [Repo-filename] adalah file konfigurasi repositori ini. Opsi [--set-enabled] dan [--set-disabled] untuk mengaktifkan dan menonaktifkan repositori dipakai bersama perintah config-manager dari dnf-plugins-core.
5️⃣ Riwayat kerja dan pembatalan perintah dnf: history
Setelah berkali-kali menginstal dan menghapus, sulit melacak apa yang diubah dan kapan, tetapi dnf memberi nomor pada setiap transaksi (transaction) dan mencatatnya di history. Jika diberi nama paket, hanya transaksi yang mengubah paket itu yang ditampilkan.
dnf history list tmuxID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
51 | install -y tmux | 2026-10-15 20:40 | Install | 1Output yang dipersempit dengan tmux hanya menyisakan satu baris, yaitu transaksi 51 yang menginstal tmux. Rentang nomor ditulis dengan dua titik, seperti [50..51].
dnf history list 50..51ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
51 | install -y tmux | 2026-10-15 20:40 | Install | 1
50 | -y -q install mlocate | 2026-10-07 19:39 | Install | 1 EEAngka di kolom [Altered] adalah jumlah paket yang berubah. Di ujung baris 50 muncul [EE], yang berarti transaksi selesai tetapi ada output peringatan atau error.
Baris perintah, paket yang berubah, dan kode hasil satu transaksi diperiksa dengan history info.
dnf history info 51Transaction ID : 51
Begin time : Thu Oct 15 20:40:51 2026
Begin rpmdb : d3db9c92a9d0f6ef9a7a1404552bb76e9d56ba7602b1fce73fa5a62170d33c5c
End time : Thu Oct 15 20:40:51 2026 (0 seconds)
End rpmdb : a862c33ee6a2f2d0479e4dc2631907dee47591c5b6795551b755c6cd090ac1df
User : root <root>
Return-Code : Success
Releasever : 9
Command Line : install -y tmux
Persistence : Persist
Comment :
Packages Altered:
Install tmux-3.2a-5.el9.x86_64 @baseosSaat transaksi 51 dibuka, [Command Line] masih memuat perintah yang dijalankan, install -y tmux, apa adanya. [Packages Altered] mencatat tmux yang terinstal dan repositori @baseos, dan [Return-Code] mencatat Success. Jika nomor dihilangkan, yang ditampilkan adalah transaksi terbaru.
Jika salah menginstal, berikan nomor transaksi ke history undo untuk menjalankan kebalikan dari transaksi itu. rollback mengembalikan keadaan paket ke saat tepat setelah transaksi yang ditentukan.
dnf history undo 51Transaksi 51 adalah instalasi tmux, jadi undo 51 menjadi transaksi kebalikan yang menghapus tmux.
dnf history rollback 50rollback 50 membatalkan semua transaksi yang dijalankan setelah 50 hingga yang terakhir, sehingga hasilnya bisa berbeda dengan undo 51 yang hanya menghapus tmux.
Menurut dokumentasi resmi, jika ada paket yang tidak bisa dikembalikan, undo dan rollback berakhir tanpa mengubah apa pun. Meskipun perubahan yang dilakukan langsung dengan rpm tidak ada di catatan, perintah ini tidak berhenti dengan error.
🔲 Simulator perintah dnf
Di simulator di bawah, Anda dapat mengetik sendiri perintah search, info, provides, repolist, dan history lalu melihat outputnya. Mengetik dengan yum pun memberi hasil yang sama.
🔢 FAQ & Konten yang Direkomendasikan



ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.