SSD Nodes Learn 🎉 VPS mulai $5.50/bln
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-13

Padanan Perintah apt ke dnf di Rocky dan Fedora

Temukan padanan setiap perintah apt ke dnf di Rocky Linux, AlmaLinux, dan Fedora, termasuk repositori, rollback transaksi, grup paket, serta pembaruan tanpa interaksi.

Jawaban singkat

Perpindahan dari apt ke dnf terutama merupakan perubahan istilah. apt install nginx menjadi dnf install nginx. apt remove nginx menjadi dnf remove nginx. apt update tidak memiliki padanan langsung karena dnf memperbarui metadata repositorinya sendiri saat salinan yang tersimpan dalam cache sudah usang. Bagian terjemahan yang mudah hanya memerlukan satu layar. Bagian yang lebih berguna adalah empat operasi yang tidak memiliki pemetaan langsung: menambahkan repositori, membatalkan transaksi, menginstal grup paket, dan menjalankan pembaruan tanpa interaksi.

Semua perintah di bawah ini ditulis agar Anda jalankan pada server sendiri. Baca ringkasan transaksi yang ditampilkan dnf sebelum menjawab y, terutama saat menghapus paket.

Distribusi mana yang menggunakan dnf dan mana yang menggunakan apt

dnf adalah pengelola paket pada Fedora, Red Hat Enterprise Linux (RHEL), dan distribusi turunan RHEL: Rocky Linux, AlmaLinux, serta CentOS Stream. apt adalah pengelola paket pada Debian dan semua distribusi turunannya. Pada VPS, ini hampir selalu berarti Ubuntu. Tidak ada pilihan ketiga. Jika daftar image dari penyedia Anda menawarkan Rocky Linux atau AlmaLinux, Anda akan menggunakan dnf. Jika menawarkan Ubuntu, Anda akan menggunakan apt.

Format paket mengikuti tool yang digunakan. dnf menginstal file .rpm dan databasenya adalah rpm. apt menginstal file .deb dan databasenya adalah dpkg. Karena itu, banyak halaman instalasi vendor memiliki satu tab untuk setiap keluarga. Karena itu pula, file .deb yang diunduh dari halaman rilis suatu proyek tidak berguna di Rocky Linux.

Apa pun keluarga yang Anda pilih, pekerjaan saat login pertama tetap sama. Sepuluh menit pertama pada VPS baru berlaku untuk keduanya. Hanya perintah instalasinya yang berbeda.

Setiap perintah apt dan padanannya dalam dnf

Instal, hapus, cari, dan tampilkan. Perintah-perintah ini menggunakan kata yang hampir sama pada kedua sistem.

# 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 adalah dnf info. Itu satu-satunya kata kerja yang diganti namanya dalam kelompok ini, tetapi ada satu perbedaan perilaku yang sering mengecoh. dnf remove juga menghapus dependensi yang tidak lagi diperlukan oleh apa pun, sedangkan apt remove membiarkannya tetap terinstal untuk apt autoremove berikutnya. Karena itu, menghapus satu utilitas kecil di Rocky Linux dapat mengusulkan penghapusan selusin pustaka sekaligus. Baca daftarnya sebelum mengonfirmasi.

Perbarui metadata, periksa apa yang menunggu, dan lakukan 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 upgrade

apt update wajib digunakan pada sisi apt, karena apt menggunakan metadata yang tersimpan di disk dan dapat menginstal versi yang sudah berbulan-bulan lalu ditinggalkan dari arsip. dnf memeriksa usia cache sebelum setiap transaksi dan mengunduh metadata terbaru secara otomatis. Jadi, sudo dnf makecache hanya digunakan untuk memaksa pengunduhan tersebut berlangsung sekarang, bukan saat instalasi berikutnya.

apt membagi upgrade seluruh sistem menjadi dua perintah, sedangkan dnf tidak. apt upgrade menolak menghapus paket yang terinstal, sehingga proses berhenti ketika pembaruan memerlukan penghapusan paket. apt full-upgrade adalah versi yang diizinkan untuk menghapus paket. dnf tidak memiliki pembatasan tersebut. Artinya, dnf upgrade adalah padanan apt full-upgrade, bukan apt upgrade. dnf update adalah alias lama untuk perintah yang sama dan masih dapat digunakan.

Satu detail penting jika Anda membuat skrip: dnf check-update keluar dengan status 100 saat ada pembaruan yang menunggu, dan 0 saat tidak ada pembaruan. apt list --upgradable keluar dengan status 0 dalam kedua kondisi tersebut, sehingga skrip harus mengurai outputnya.

Tampilkan paket yang terinstal dan cari tahu paket yang memiliki suatu 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/nginx

Baris terakhir pada setiap blok menjawab pertanyaan yang berbeda dari baris-baris sebelumnya. dpkg -S dan rpm -qf hanya mencari paket yang sudah terinstal, sehingga keduanya menjawab pertanyaan, "paket apa yang menempatkan file ini di sini". apt-file search dan dnf provides mencari repositori, sehingga keduanya menjawab pertanyaan, "paket apa yang harus diinstal untuk mendapatkan file ini". apt-file adalah paket terpisah di Ubuntu dan memerlukan sudo apt-file update sebelum dijalankan untuk pertama kali. dnf provides tidak memerlukan apa pun, tetapi proses pertama dapat lambat karena dnf mengunduh daftar file repositori untuk menjawab pertanyaan tersebut.

Untuk menampilkan file di dalam paket yang belum Anda instal, gunakan dnf repoquery -l nginx. Pada sisi apt, padanannya adalah apt-file list nginx.

Hapus otomatis, bersihkan cache, dan tahan suatu versi.

# 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 tidak terinstal secara default di Rocky Linux atau AlmaLinux. Karena itu, baris pertama di antara baris-baris tersebut gagal dengan No such command: versionlock pada sistem baru. Instal terlebih dahulu dengan sudo dnf install python3-dnf-plugin-versionlock. apt tidak memerlukan apa pun untuk apt-mark hold, karena penahanan versi merupakan status dpkg, bukan plugin.

Saat pemetaan tidak berlaku: menambahkan repositori

Inilah bagian yang membuat administrator Ubuntu mencari perintah yang sebenarnya tidak ada. Tidak ada add-apt-repository di dnf, dan tidak ada arsip paket pribadi (PPA). PPA adalah layanan yang dijalankan oleh Launchpad, sedangkan Launchpad merupakan infrastruktur Ubuntu. Tidak ada komponen di dunia RPM yang menyediakan layanan tersebut.

Sebagai gantinya, dnf menggunakan satu file teks biasa untuk setiap repositori di /etc/yum.repos.d/, dengan akhiran .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 dan $basearch adalah variabel dnf. dnf mengisi nomor rilis utama dan arsitektur CPU saat runtime. Dengan demikian, file yang sama dapat digunakan pada versi 9 dan versi 10, serta pada x86_64 dan aarch64.

Sebagian besar vendor menerbitkan file tersebut dan meminta Anda mengunduhnya. Instruksi resmi Docker untuk RHEL dan turunannya terdiri atas dua perintah:

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

Baris pertama diperlukan karena config-manager adalah plugin, bukan bagian dari dnf itu sendiri. Jika langkah ini dilewati, baris kedua gagal dengan No such command: config-manager. Anda juga dapat mengunduh file .repo yang sama dengan curl secara manual ke /etc/yum.repos.d/. Hasilnya identik. Menginstal Docker pada VPS menjelaskan langkah yang sama pada Debian. Pada Debian, langkah tersebut menulis daftar sumber dan kunci penandatanganan ke dua direktori yang berbeda.

Perbedaan tata letak menentukan lokasi yang harus diperiksa ketika repositori bermasalah. apt menyimpan definisi di /etc/apt/sources.list dan /etc/apt/sources.list.d/, sedangkan kunci penandatanganan disimpan secara terpisah di bawah /etc/apt/keyrings/. dnf menyimpan semuanya di /etc/yum.repos.d/. Kuncinya berupa URL di dalam file .repo, sehingga hanya ada satu file yang perlu dibaca dan satu file yang perlu dihapus. Versi apt yang lebih baru mulai menggunakan bentuk yang sama melalui format deb822, dengan satu file .sources untuk setiap repositori. Jika Anda pernah mengalami error sumber duplikat deb822 di Ubuntu, berarti Anda sudah menemukan bagian apt dari masalah ini.

EPEL adalah repositori yang diasumsikan tersedia oleh sebagian besar panduan

Extra Packages for Enterprise Linux (EPEL) adalah proyek Fedora yang membangun paket Fedora untuk RHEL dan distribusi turunannya. EPEL adalah pilihan yang paling mendekati PPA universal, dan sangat banyak tutorial mengasumsikan bahwa EPEL sudah diaktifkan. Jika dnf install menjawab No match for argument untuk paket yang dapat Anda lihat di situs web resmi proyek tersebut, EPEL adalah hal pertama yang perlu diperiksa.

Pada Rocky Linux dan AlmaLinux:

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

CRB adalah CodeReady Builder, yaitu repositori pustaka yang disertakan dalam distribusi, tetapi tidak diaktifkan secara default. Sebagian besar paket EPEL bergantung pada sesuatu di dalamnya, sehingga mengaktifkan EPEL tanpa CRB tidak langsung menimbulkan kegagalan. Kegagalan baru terjadi saat instalasi, dengan dependensi yang tidak terselesaikan pada paket yang belum pernah Anda dengar. Aktifkan CRB terlebih dahulu agar jenis error tersebut tidak terjadi.

Pada RHEL, CRB diperoleh melalui subscription, bukan melalui config-manager. Karena itu, ikuti instruksi EPEL resmi dari Red Hat untuk langkah tersebut. Fedora tidak memerlukan semua ini karena repositori utamanya sudah menyediakan paket yang di-backport oleh EPEL. Kebijakan EPEL adalah tidak pernah mengganti paket yang dirilis oleh RHEL. Karena itu, penambahan repositori ini tidak mengubah apa pun yang sudah terinstal di server Anda.

dnf history undo, fitur yang tidak tersedia di apt

dnf mencatat setiap transaksi dan dapat membuat kebalikan dari salah satunya.

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

dnf history menampilkan daftar transaksi bernomor beserta baris perintah yang memulai masing-masing transaksi. undo membuat transaksi kebalikan: paket yang dipasang oleh transaksi tersebut akan dihapus, sedangkan paket yang diperbarui akan dikembalikan ke versi sebelumnya. Fitur ini adalah hal yang paling dirindukan pengguna apt setelah beralih.

Fitur ini memiliki batasan yang perlu dipahami sebelum diandalkan. undo hanya dapat memasang ulang versi paket yang masih tersedia di repositori yang diaktifkan. Jika build lama sudah dihapus dari mirror, proses undo gagal dengan error not-found. Rollback juga hanya berlaku sampai tingkat basis data paket. File konfigurasi yang ditulis ulang oleh proses upgrade tetap dalam kondisi tersebut, dan skema basis data yang dimigrasikan service saat pertama kali dijalankan tetap sudah dimigrasikan. dnf mengembalikan file. dnf tidak mengembalikan data Anda.

apt tidak memiliki fitur yang setara. /var/log/apt/history.log mencatat apa yang terjadi secara tepat, termasuk baris perintah, tetapi membaca log tidak sama dengan membatalkan perubahan. Pemulihan pada apt harus dilakukan secara manual: jalankan apt list -a nginx untuk melihat versi yang masih tersedia di archive, lalu jalankan sudo apt install nginx=<exact version string> untuk menetapkan salah satunya, dan tambahkan sudo apt-mark hold nginx agar upgrade berikutnya tidak membatalkan perbaikan Anda.

Grup paket tidak memiliki padanan apt

dnf dapat menginstal sekumpulan paket yang ditentukan namanya dalam satu perintah.

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

Panduan lama menulis dnf groupinstall "Development Tools". Alias tersebut berfungsi pada dnf 4 dan sudah dihapus pada dnf 5, sehingga dua kata dnf group install adalah satu-satunya penulisan yang berfungsi di semua versi. Gunakan bentuk tersebut dan tidak perlu memikirkannya lagi.

apt tidak memiliki grup. Konsep Debian yang paling mendekati adalah metapackage, yaitu paket yang pada dasarnya kosong dan hanya berisi daftar dependensi, seperti build-essential. Perbedaan praktisnya terlihat saat penghapusan: menghapus metapackage akan membiarkan dependensinya tetap terinstal sampai Anda menjalankan apt autoremove, sedangkan dnf group remove menghapus paket-paket dalam grup bersamanya dalam transaksi yang sama.

unattended-upgrades dan dnf-automatic

Kedua keluarga tersebut menyediakan cara untuk menginstal pembaruan tanpa ada pengguna yang login. Selain tujuan itu, keduanya tidak memiliki kesamaan.

Pada Ubuntu dan Debian, paketnya adalah unattended-upgrades dan dikonfigurasi dalam /etc/apt/apt.conf.d/50unattended-upgrades. Di sana, Anda mencantumkan origin yang boleh digunakan untuk mengunduh paket. Menyiapkan unattended upgrades pada Ubuntu membahas file konfigurasi tersebut dan pertanyaan tentang reboot yang menyertainya.

Pada Rocky Linux, AlmaLinux, dan Fedora, paketnya adalah dnf-automatic. Timer systemd yang Anda aktifkan menentukan perilakunya.

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

dnf-automatic-install.timer mengunduh dan menerapkan pembaruan. dnf-automatic-download.timer mengunduh pembaruan lalu berhenti, sehingga Anda yang harus menginstalnya. dnf-automatic-notifyonly.timer hanya memberikan laporan. Setiap unit tersebut menggantikan pengaturan apply_updates dalam /etc/dnf/automatic.conf. Karena itu, timer yang Anda pilih lebih penting daripada isi file konfigurasi.

Untuk membatasi pembaruan hanya pada perbaikan keamanan, tetapkan upgrade_type = security dalam /etc/dnf/automatic.conf. Filter tersebut bergantung pada repository yang menyediakan security errata. Karena itu, periksa terlebih dahulu dengan dnf updateinfo list security. Hasil kosong pada mesin yang memiliki pembaruan tertunda berarti metadata tersebut tidak tersedia. Dalam kondisi itu, security tidak akan menginstal apa pun.

Pada Fedora, dnf 5 mengganti nama unit tersebut. Namanya adalah dnf5-automatic.timer, dan unit itu membaca /etc/dnf/automatic.conf yang sama.

Apakah yum masih merupakan perintah yang valid?

Ya, tetapi perintah tersebut tidak melakukan apa pun dengan sendirinya. Pada Rocky Linux, AlmaLinux, dan CentOS Stream, /usr/bin/yum adalah tautan simbolis yang mengarah ke dnf. Periksa sistem Anda:

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

Sintaks yum lama masih sering muncul dalam tutorial karena sebagian besar sintaks tersebut tetap diteruskan langsung. yum install, yum remove, dan yum update semuanya tetap berfungsi. Ada satu kebiasaan yang sebaiknya ditinggalkan: yum-config-manager masih tersedia sebagai biner tersendiri pada sistem dengan dnf 4, tetapi dnf config-manager adalah penulisan yang digunakan dokumentasi saat ini dan tetap berfungsi ketika sistem beralih ke dnf 5.

dnf 4 dan dnf 5: periksa sebelum menyalin perintah

dnf 5 merupakan penulisan ulang, dan mengubah penulisan beberapa perintah. Fedora 41 dan versi setelahnya menyertakannya sebagai dnf. Distribusi turunan enterprise lebih lambat beralih, jadi jangan menebak berdasarkan nama distribusi. Jalankan dnf --version pada server Anda sendiri dan baca baris pertama, karena nomor tersebut menentukan sintaks yang harus digunakan di bawah ini.

Contoh paling jelas berasal dari Docker, yang menyediakan perintah repositori berbeda untuk masing-masing versi. Pada RHEL dan distribusi turunannya, dengan dnf 4:

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

Pada Fedora, dengan dnf 5:

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

Vendor dan tujuannya sama, tetapi perintahnya berbeda. dnf 5 mengubah config-manager menjadi alat berbasis subperintah, sehingga flag lama --add-repo tidak diterima dan Anda mendapatkan error penggunaan, bukan repositori. Perintah lain yang akan Anda temui adalah untuk mengaktifkan repositori: dnf config-manager --set-enabled crb pada dnf 4 menjadi dnf config-manager setopt crb.enabled=1 pada dnf 5.

Pilihan yang benar-benar penting

Memilih distribusi server hanya berdasarkan package manager adalah dasar pertimbangan yang keliru. dnf dan apt melakukan pekerjaan yang sama, dan istilahnya dapat dipelajari dalam satu sore. Hal yang memengaruhi penggunaan Anda selama bertahun-tahun adalah model rilis di balik repository. Fedora bergerak cepat, dan suatu rilis berhenti menerima update sekitar tiga belas bulan setelah dirilis. Model ini sesuai untuk workstation, tetapi menyulitkan server yang tidak ingin Anda bangun ulang. Rocky Linux dan AlmaLinux mengikuti RHEL, sehingga Anda mendapatkan periode dukungan sepuluh tahun dan versi package yang sengaja dipertahankan agar tetap stabil. Ubuntu menyediakan kedua model tersebut, dan perbedaan antara Ubuntu LTS dan rilis interim Ubuntu pada server merupakan keputusan yang sama dalam ekosistem apt.

Per Agustus 2026, semuanya merupakan image VPS yang umum. Pilih periode dukungan yang Anda inginkan, lalu pelajari sepuluh perintah di atas.

FAQ

Apa padanan dnf untuk apt update?

Tidak ada perintah yang harus Anda jalankan. dnf memeriksa usia metadata yang disimpan dalam cache sebelum setiap transaksi dan mengunduh salinan terbaru saat metadata tersebut kedaluwarsa. Dengan demikian, dnf install pada server yang tidak Anda kelola selama sebulan tetap melihat paket terbaru. sudo dnf makecache tersedia dan memang memaksa pengunduhan tersebut, tetapi kegunaan utamanya adalah memindahkan waktu tunggu ke waktu yang Anda pilih, bukan ke proses instalasi berikutnya. Perintah untuk menjawab “apa yang menunggu saya” adalah dnf check-update. Perintah ini memetakan ke apt list --upgradable dan keluar dengan status 100 jika tersedia pembaruan.

Apakah ada padanan PPA di Rocky Linux atau Fedora?

Tidak ada. Arsip paket pribadi merupakan layanan Launchpad, sedangkan Launchpad adalah infrastruktur Ubuntu. Jadi, add-apt-repository tidak memiliki padanan untuk diterjemahkan. Padanan RPM adalah file .repo di /etc/yum.repos.d/ yang berisi nama, baseurl, dan gpgkey. Vendor menerbitkan file tersebut untuk Anda. Pada dnf 4, sudo dnf config-manager --add-repo <url> menempatkannya dengan mengunduh file tersebut, sedangkan pada dnf 5, sudo dnf config-manager addrepo --from-repofile <url> melakukan hal yang sama. Untuk perangkat lunak tambahan umum, jawabannya biasanya EPEL. Aktifkan EPEL dengan sudo dnf config-manager --set-enabled crb, lalu jalankan sudo dnf install epel-release.

Dapatkah saya membatalkan upgrade dnf yang merusak server?

Ya, dengan beberapa batasan. Jalankan sudo dnf history untuk menemukan nomor transaksi, sudo dnf history info <id> untuk melihat perubahan secara terperinci, lalu jalankan sudo dnf history undo <id>. Pembatalan gagal jika versi paket yang lebih lama tidak lagi tersedia di repositori mana pun yang diaktifkan, karena dnf tidak memiliki sumber untuk menginstalnya kembali. Pembatalan ini juga hanya mengembalikan perubahan paket. File konfigurasi yang ditulis ulang oleh upgrade, atau database yang dimigrasikan oleh service saat pertama kali dijalankan, tetap dalam kondisi tersebut. apt sama sekali tidak memiliki perintah yang setara. apt hanya memiliki catatan di /var/log/apt/history.log.

Apakah yum masih berfungsi di Rocky Linux dan AlmaLinux?

yum berfungsi karena /usr/bin/yum adalah symbolic link ke dnf. Konfirmasikan pada server Anda sendiri dengan ls -l /usr/bin/yum. Mengetik yum install httpd akan menjalankan dnf, sehingga sebagian besar tutorial lama masih berfungsi. Gunakan dnf dalam script dan dokumentasi baru karena nama yum hanya dipertahankan untuk kompatibilitas. Gunakan dnf config-manager, bukan binary yum-config-manager yang lebih lama.

Mengapa dnf remove ingin menghapus begitu banyak paket?

Karena dnf menghapus dependensi yang tidak diperlukan oleh paket lain sebagai bagian dari transaksi yang sama. Sebaliknya, apt remove membiarkannya tetap terinstal sampai Anda menjalankan apt autoremove secara terpisah. Akibatnya, penghapusan yang tampak kecil di Ubuntu dapat menampilkan daftar panjang di Rocky Linux. Daftar tersebut biasanya benar, tetapi baca terlebih dahulu sebelum mengonfirmasi. Jika ada paket dalam daftar yang ingin Anda pertahankan, instal paket tersebut secara eksplisit terlebih dahulu agar dnf mencatatnya sebagai paket yang memang diinginkan.