Panduan Cepat untuk Pengelola Paket DNF
Diterbitkan: 2020-06-06DNF adalah sistem manajemen paket default pada sebagian besar distribusi Linux berbasis RPM sekarang.
DNF mengunduh paket dari repositori, menginstal, menghapus, dan memperbarui paket. Itu melakukan resolusi ketergantungan otomatis untuk paket yang Anda instal, perbarui, atau hapus dan instal semua paket yang diperlukan untuk memenuhi persyaratan ketergantungan.
Di Fedora, ini telah menjadi pengelola paket default sejak Fedora 22. Di RHEL 8.x, ini sekarang menjadi pengelola paket default.
DNF menyediakan manajemen paket yang aman dengan mengaktifkan verifikasi tanda tangan GPG pada paket bertanda tangan GPG. DNF tidak akan menginstal paket apa pun yang tidak ditandatangani dengan kunci yang benar untuk repositori tersebut.
Untuk kompatibilitas mundur, RHEL 8.x juga memiliki perintah YUM, meskipun ini merupakan tautan ke DNF.
Mengapa DNF?
DNF atau Dandified YUM adalah YUM generasi berikutnya. Dibandingkan dengan YUM, DNF memiliki pemanfaatan memori yang lebih baik, manajemen ketergantungan yang lebih baik, dan kemampuan untuk menjalankan menggunakan Python 2 & Python 3.
Manajemen Paket dengan DNF
Anda harus memiliki hak superuser untuk menggunakan Perintah DNF untuk menginstal, memperbarui, atau menghapus paket. Berikut adalah sekumpulan perintah DNF yang sering digunakan oleh sysadmin.
Mencari paket
Untuk mencari paket yang diinstal atau tersedia di semua repositori, gunakan
$ sudo dnf search <em>package_name</em>
Misalnya untuk mencari paket Nmap:
$ sudo dnf search nmap
Last metadata expiration check: 0:05:14 ago on Tue 02 Jun 2020 08:38:09 PM UTC. ==================================== Name Exactly Matched: nmap ===================================== nmap.x86_64 : Network exploration tool and security scanner =================================== Name & Summary Matched: nmap ==================================== nmap-ncat.x86_64 : Nmap's Netcat replacement
Daftar paket
Untuk melihat daftar semua paket yang diinstal dan tersedia:
$ sudo dnf list all
Installed Packages GConf2.x86_64 3.2.6-22.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms NetworkManager.x86_64 1:1.22.8-4.el8 @anaconda NetworkManager-libnm.x86_64 1:1.22.8-4.el8 @anaconda NetworkManager-team.x86_64 1:1.22.8-4.el8 @anaconda NetworkManager-tui.x86_64 1:1.22.8-4.el8 ...
Untuk mendaftar semua paket yang diinstal:
$ sudo dnf list installed
Installed Packages NetworkManager.x86_64 1:1.22.8-4.el8 @anaconda NetworkManager-libnm.x86_64 1:1.22.8-4.el8 @anaconda NetworkManager-team.x86_64 1:1.22.8-4.el8 @anaconda NetworkManager-tui.x86_64 1:1.22.8-4.el8 @anaconda PackageKit.x86_64 1.1.12-4.el8 @AppStream PackageKit-glib.x86_64 1.1.12-4.el8 @AppStream WALinuxAgent.noarch 2.2.38-1.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms abattis-cantarell-fonts.noarch 0.0.25-4.el8 @AppStream acl.x86_64 2.2.53-1.el8 @anaconda ...
Untuk mendaftar semua paket yang tersedia:
$ sudo dnf list available
Last metadata expiration check: 1:15:10 ago on Tue 02 Jun 2020 05:37:11 PM UTC. Available Packages CUnit.i686 2.1.3-17.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms CUnit.x86_64 2.1.3-17.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms CUnit-devel.i686 2.1.3-17.el8 rhui-codeready-builder-for-rhel-8-x86_64-rhui-rpms CUnit-devel.x86_64 2.1.3-17.el8 rhui-codeready-builder-for-rhel-8-x86_64-rhui-rpms ...
Misalnya, untuk mendaftar semua paket MySQL yang tersedia:
$ sudo dnf list available "mysql*"
Last metadata expiration check: 1:17:04 ago on Tue 02 Jun 2020 05:37:11 PM UTC. Available Packages mysql.x86_64 8.0.17-3.module+el8.0.0+3898+e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms mysql-common.x86_64 8.0.17-3.module+el8.0.0+3898+e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms mysql-devel.x86_64 8.0.17-3.module+el8.0.0+3898+e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms mysql-errmsg.x86_64 8.0.17-3.module+el8.0.0+3898+e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms mysql-libs.x86_64 8.0.17-3.module+el8.0.0+3898+e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms mysql-server.x86_64 8.0.17-3.module+el8.0.0+3898+e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms mysql-test.x86_64 8.0.17-3.module+el8.0.0+3898+e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms
Menampilkan informasi paket
Untuk menampilkan informasi tentang sebuah paket:
$ sudo dnf info <em>package_name </em>
Misalnya, untuk menampilkan info tentang server httpd:
$ sudo dnf info httpd
Last metadata expiration check: 0:15:04 ago on Mon 01 Jun 2020 11:23:11 PM UTC. Available Packages Name : httpd Version : 2.4.37 Release : 21.module+el8.2.0+5008+cca404a3 Architecture : x86_64 Size : 1.4 M Source : httpd-2.4.37-21.module+el8.2.0+5008+cca404a3.src.rpm Repository : rhui-rhel-8-for-x86_64-appstream-rhui-rpms Summary : Apache HTTP Server URL : https://httpd.apache.org/ License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
Menginstal paket
Menginstal satu paket
Untuk menginstal satu paket dan semua dependensinya yang tidak diinstal:
$ sudo dnf install package_name
Misalnya, untuk menginstal Nginx:
$ sudo dnf install nginx
Dependencies resolved. =========================================================================================== Package Arch Version Repository Size =========================================================================================== Installing: nginx x86_64 1:1.14.1-9.module+el8.0.0+4108+af250afe rhui-rhel-8-for-x86_64-appstream-rhui-rpms 570 k Installing dependencies: gd x86_64 2.2.5-6.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 144 k jbigkit-libs x86_64 2.1-14.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 55 k ..
Ini akan menginstal Nginx dan semua persyaratan dependensi yang tidak diinstal.
Menginstal banyak paket
Anda juga dapat menginstal banyak paket dengan menambahkan nama paket ke perintah ini. Misalnya, untuk menginstal Nginx, PHP & server MySQL, masukkan:
$ sudo dnf install nginx php mysql-server
Dependencies resolved. =========================================================================================== Package Arch Version Repository Size =========================================================================================== Installing: mysql-server x86_64 8.0.17-3.module+el8.0.0+3898+e09bb8de rhui-rhel-8-for-x86_64-appstream-rhui-rpms 22 M nginx x86_64 1:1.14.1-9.module+el8.0.0+4108+af250afe rhui-rhel-8-for-x86_64-appstream-rhui-rpms 570 k php x86_64 7.2.24-1.module+el8.2.0+4601+7c76a223 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 1.5 M Installing dependencies: apr x86_64 1.6.3-9.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 125 k apr-util x86_64 1.6.1-6.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 105 k gd x86_64 2.2.5-6.el8 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 144 k httpd x86_64 2.4.37-21.module+el8.2.0+5008+cca404a3 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 1.4 M httpd-filesystem noarch 2.4.37-21.module+el8.2.0+5008+cca404a3 ...
Menginstal paket dengan nama file binernya
Jika Anda tahu nama file biner yang akan diinstal, tetapi bukan nama paketnya, itupun sudah cukup untuk menginstal paket yang relevan.

Misalnya, jika Anda memasukkan:
$ sudo dnf install /usr/sbin/named
Last metadata expiration check: 1:21:25 ago on Tue 02 Jun 2020 05:37:11 PM UTC. Dependencies resolved. ===================================================================================================== Package Arch Version Repository Size ===================================================================================================== Installing: bind x86_64 32:9.11.13-5.el8_2 rhui-rhel-8-for-x86_64-appstream-rhui-rpms 2.1 M Transaction Summary ===================================================================================================== Install 1 Package Total download size: 2.1 M Installed size: 4.5 M Is this ok [y/N]:
DNF mencari dan menemukan paket yang menyediakan /usr/sbin/
bernama dan meminta Anda untuk menginstalnya.
Menemukan paket mana yang memiliki file
Jika Anda mengetahui nama file dan ingin menemukan paket mana yang menyediakannya (terinstal atau tidak), gunakan:
$ sudo dnf provides <em>file_name</em>
Misalnya, untuk menemukan paket mana yang diberi nama, biner untuk server DNS menggunakan:
$ sudo dnf provides named
Last metadata expiration check: 1:27:30 ago on Mon 01 Jun 2020 11:23:11 PM UTC. bind-32:9.11.4-16.P2.el8.x86_64 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) : server Repo : rhui-rhel-8-for-x86_64-appstream-rhui-rpms Matched from: Filename : /usr/sbin/named
Menghapus paket
Untuk menghapus paket:
sudo dnf remove <em>package_name</em>
Tapi hati-hati, DNF tidak dapat menghapus paket tanpa juga menghapus paket yang bergantung padanya. Untuk menghapus paket nmap gunakan:
$ sudo dnf remove nmap Dependencies resolved. ===================================================================================================== Package Architecture Version Repository Size ===================================================================================================== Removing: nmap x86_64 2:7.70-5.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 24 M Transaction Summary ===================================================================================================== Remove 1 Package Freed space: 24 M Is this ok [y/N]:
Mengelola grup paket
Grup paket adalah kumpulan paket yang terkait erat dan melayani tujuan yang sama. Menginstal grup paket menginstal satu set paket, menghemat banyak waktu.
Daftar semua grup paket
Untuk mendaftar semua grup paket:
$ sudo dnf group list
Available Environment Groups: Server with GUI Server Workstation Custom Operating System Virtualization Host Installed Environment Groups: Minimal Install Installed Groups: Security Tools Container Management Available Groups: Legacy UNIX Compatibility Development Tools Scientific Support .NET Core Development Graphical Administration Tools Headless Management RPM Development Tools Network Servers System Tools Smart Card Support
Daftar semua paket dalam grup
Untuk mendaftar semua paket dalam grup:
$ sudo dnf group info <em>package_name</em>
Misalnya, untuk melihat paket di grup Alat Keamanan:
$ sudo dnf group info “security tools”
Group: Security Tools Description: Security tools for integrity and trust verification. Default Packages: scap-security-guide Optional Packages: aide hmaccalc openscap openscap-engine-sce openscap-utils scap-security-guide-doc scap-workbench tpm-quote-tools tpm-tools tpm2-tools trousers
Menginstal grup paket
Menginstal grup akan menginstal semua paket dalam grup. Untuk menginstal grup paket gunakan:
sudo dnf group install <em>package_group_name</em>
Misalnya, untuk menginstal grup "Server Jaringan":
$ sudo dnf group install “Network Servers”
Last metadata expiration check: 1:40:14 ago on Wed 03 Jun 2020 05:53:11 PM UTC. Dependencies resolved. =========================================================================================== Package Architecture Version Repository Size =========================================================================================== Installing Groups: Network Servers Transaction Summary =========================================================================================== Is this ok [y/N]:
Menghapus grup paket
Untuk menghapus grup paket:
sudo dnf remove <em>package_name</em>
Jadi, untuk menghapus grup paket "Alat Keamanan":
$ sudo dnf group remove "security tools"
Dependencies resolved. ===================================================================================================== Package Arch Version Repository Size ===================================================================================================== Removing: scap-security-guide noarch 0.1.48-7.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 182 M Removing unused dependencies: GConf2 x86_64 3.2.6-22.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 6.3 M libxslt x86_64 1.1.32-4.el8 @rhui-rhel-8-for-x86_64-baseos-rhui-rpms 734 k openscap x86_64 1.3.2-6.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 58 M openscap-scanner x86_64 1.3.2-6.el8 @rhui-rhel-8-for-x86_64-appstream-rhui-rpms 137 k xml-common noarch 0.6.3-50.el8 @rhui-rhel-8-for-x86_64-baseos-rhui-rpms 78 k Removing Groups: Security Tools Transaction Summary ===================================================================================================== Remove 6 Packages Freed space: 247 M Is this ok [y/N]:
Memperbarui paket
Memperbarui semua paket
Untuk memperbarui semua paket dan dependensinya, Anda dapat menggunakan:
$ sudo dnf upgrade
Last metadata expiration check: 1:09:31 ago on Tue 02 Jun 2020 08:38:09 PM UTC. Dependencies resolved. Nothing to do. Complete!
Ini menginstal semua pembaruan yang dapat diinstal. Baik pemutakhiran dnf dan pemutakhiran dnf memiliki efek yang sama, tetapi pemutakhiran dnf lebih disukai.
Memperbarui satu paket
Untuk memperbarui satu paket, jalankan:
$ sudo dnf upgrade package_name
Misalnya, untuk memperbarui paket python:
$ sudo dnf upgrade python
Kesimpulan
Mempelajari DNF dapat bermanfaat karena seringkali merupakan cara tercepat untuk melakukan tugas administrasi sistem. Jika tertarik untuk mempelajari RHEL 8 maka Anda dapat melihat kursus Udemy ini.