DNF (Dandified YUM) adalah software package manager untuk distribusi Linux berbasis RPM yang digunakan untuk menginstal, memperbarui dan menghapus paket dalam sistem operasi Fedora /CentOS/RHEL.

DNF adalah package manager default Fedora 22, CentOS 8 dan RHEL8. DNF adalah versi YUM generasi berikutnya dan dimaksudkan sebagai pengganti YUM dalam sistem berbasis RPM.

DNF memiliki fitur lebih kuat daripada yum, hal ini karena DNF memudahkan pengguna untuk memelihara packet, atau kelompok packet dan mampu menyelesaikan masalah dependency secara otomatis.

Dalam tutorial ini, kita akan belajar cara mengelola packet dengan perintah DNF di CentOS 8.

Persyaratan

  • Server yang menjalankan CentOS 8.
  • Masuk sebagai root atauĀ userĀ dengan hak sudo.

Cara Install DNF

Secara default, DNF sudah diinstal sebelumnya dalam sistem operasi CentOS 8. Jika tidak diinstal, Anda dapat menginstalnya dengan menjalankan perintah berikut:

yum install dnf

Selanjutnya, Anda dapat memeriksa versi DNF dengan perintah berikut:

dnf --version

Anda akan melihat output berikut:

4.0.9
  Installed: dnf-0:4.0.9.2-5.el8.noarch at Monday 14 October 2019 05:27:09 AM UTC
  Built    : CentOS Buildsys <[email protected]> at Monday 13 May 2019 07:35:13 PM UTC

  Installed: rpm-0:4.14.2-9.el8.x86_64 at Monday 14 October 2019 05:20:17 AM UTC
  Built    : CentOS Buildsys <[email protected]> at Saturday 11 May 2019 02:04:19 AM UTC

Lihat Paket yang Terinstall di CentOS 8

Anda dapat melihat semua paket yang diinstal pada sistem CentOS 8 dengan perintah berikut:

dnf list installed

Anda akan melihat semua paket yang diinstal di output berikut:

Installed Packages
NetworkManager.x86_64                 1:1.14.0-14.el8                                        @anaconda 
NetworkManager-config-server.noarch   1:1.14.0-14.el8                                        @anaconda 
NetworkManager-libnm.x86_64           1:1.14.0-14.el8                                        @anaconda 
NetworkManager-team.x86_64            1:1.14.0-14.el8                                        @anaconda 
NetworkManager-tui.x86_64             1:1.14.0-14.el8                                        @anaconda 
PackageKit.x86_64                     1.1.12-2.el8                                           @AppStream
PackageKit-glib.x86_64                1.1.12-2.el8                                           @AppStream
acl.x86_64                            2.2.53-1.el8                                           @anaconda 
adcli.x86_64                          0.8.2-2.el8                                            @anaconda 
at.x86_64                             3.1.20-11.el8                                          @anaconda 
attr.x86_64                           2.4.48-3.el8                                           @anaconda 
audit.x86_64                          3.0-0.10.20180831git0047a6c.el8                        @anaconda 
audit-libs.x86_64                     3.0-0.10.20180831git0047a6c.el8                        @anaconda 
authselect.x86_64                     1.0-13.el8                                             @anaconda 
authselect-compat.x86_64              1.0-13.el8                                             @AppStream
authselect-libs.x86_64                1.0-13.el8                                             @anaconda 
avahi-libs.x86_64                     0.7-19.el8                                             @anaconda 
basesystem.noarch                     11-5.el8                                               @anaconda 

Untuk melihat daftar semua paket yang diinstal dan tersedia dengan perintah berikut:

dnf list

Anda akan melihat output berikut:

Last metadata expiration check: 4 days, 22:47:10 ago on Monday 14 October 2019 02:14:39 AM UTC.
Installed Packages
NetworkManager.x86_64                                      1:1.14.0-14.el8                                        @anaconda             
NetworkManager-config-server.noarch                        1:1.14.0-14.el8                                        @anaconda             
NetworkManager-libnm.x86_64                                1:1.14.0-14.el8                                        @anaconda             
NetworkManager-team.x86_64                                 1:1.14.0-14.el8                                        @anaconda             
NetworkManager-tui.x86_64                                  1:1.14.0-14.el8                                        @anaconda             
PackageKit.x86_64                                          1.1.12-2.el8                                           @AppStream            
PackageKit-glib.x86_64                                     1.1.12-2.el8                                           @AppStream            
acl.x86_64                                                 2.2.53-1.el8                                           @anaconda             
adcli.x86_64                                               0.8.2-2.el8                                            @anaconda             
at.x86_64                                                  3.1.20-11.el8                                          @anaconda             
attr.x86_64                                                2.4.48-3.el8                                           @anaconda             
audit.x86_64                                               3.0-0.10.20180831git0047a6c.el8                        @anaconda             
audit-libs.x86_64                                          3.0-0.10.20180831git0047a6c.el8                        @anaconda             
authselect.x86_64                                          1.0-13.el8                                             @anaconda             
authselect-compat.x86_64                                   1.0-13.el8                                             @AppStream            
authselect-libs.x86_64                                     1.0-13.el8                                             @anaconda             
avahi-libs.x86_64                                          0.7-19.el8                                             @anaconda             
:
:

Anda juga dapat melihat daftar hanya paket yang tersedia dengan perintah berikut:

dnf list available

Anda akan melihat output berikut:

Last metadata expiration check: 4 days, 22:48:21 ago on Monday 14 October 2019 02:14:39 AM UTC.
Available Packages
BackupPC.src                                               4.3.1-2.el8                                      epel-source           
BackupPC.x86_64                                            4.3.1-2.el8                                      epel                  
BackupPC-XS.src                                            0.59-3.el8                                       epel-source           
BackupPC-XS.x86_64                                         0.59-3.el8                                       epel                  
BackupPC-XS-debuginfo.x86_64                               0.59-3.el8                                       epel-debuginfo        
BackupPC-XS-debugsource.x86_64                             0.59-3.el8                                       epel-debuginfo        
BackupPC-debuginfo.x86_64                                  4.3.1-2.el8                                      epel-debuginfo        
BackupPC-debugsource.x86_64                                4.3.1-2.el8                                      epel-debuginfo        
CGSI-gSOAP.src                                             1.3.11-7.el8                                     epel-source           
CGSI-gSOAP.x86_64                                          1.3.11-7.el8                                     epel                  
CGSI-gSOAP-debuginfo.x86_64                                1.3.11-7.el8                                     epel-debuginfo        
CGSI-gSOAP-debugsource.x86_64                              1.3.11-7.el8                                     epel-debuginfo        
CGSI-gSOAP-devel.x86_64                                    1.3.11-7.el8                                     epel                  

Mencari dan Install Paket di CentOS 8

Anda dapat mencari paket apa pun yang ingin Anda instal dengan perintah berikut:

dnf search httpd

Anda akan melihat output berikut:

========================================================= Name Exactly Matched: httpd =========================================================
httpd.x86_64 : Apache HTTP Server
======================================================== Name & Summary Matched: httpd ========================================================
centos-logos-httpd.noarch : CentOS-related icons and pictures used by httpd
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
python3-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
============================================================= Name Matched: httpd =============================================================
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
httpd-manual.noarch : Documentation for the Apache HTTP server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
httpd-filesystem.noarch : The basic directory layout for the Apache HTTP server
=========================================================== Summary Matched: httpd ============================================================
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server

Anda sekarang dapat menginstal paket httpd dengan perintah berikut:

dnf install httpd

Untuk reinstall paket httpd misalnya, jalankan perintah berikut:

dnf reinstall httpd

Anda juga dapat mengunduh paket httpd tanpa harus menginstalnya dengan perintah berikut:

dnf download httpd

Anda juga dapat melihat detail paket httpd dengan perintah berikut:

dnf info httpd

Anda akan mendapatkan output berikut:

Last metadata expiration check: 0:01:02 ago on Saturday 19 October 2019 01:07:23 AM UTC.
Available Packages
Name         : httpd
Version      : 2.4.37
Release      : 11.module_el8.0.0+172+85fc1f40
Arch         : x86_64
Size         : 1.7 M
Source       : httpd-2.4.37-11.module_el8.0.0+172+85fc1f40.src.rpm
Repo         : AppStream
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.

Update Packet di Sistem dengan Perintah DNF

Anda dapat memeriksa update untuk semua paket di sistem dengan perintah berikut:

dnf check-update

Anda akan mendapatkan output berikut:

Last metadata expiration check: 0:00:10 ago on Saturday 19 October 2019 01:10:16 AM UTC.
bind-export-libs.x86_64           32:9.11.4-17.P2.el8_0.1            BaseOS     
bind-libs.x86_64                  32:9.11.4-17.P2.el8_0.1            AppStream  
bind-libs-lite.x86_64             32:9.11.4-17.P2.el8_0.1            AppStream  
bind-license.noarch               32:9.11.4-17.P2.el8_0.1            AppStream  
bind-utils.x86_64                 32:9.11.4-17.P2.el8_0.1            AppStream  
bpftool.x86_64                    4.18.0-80.7.1.el8_0                BaseOS     
cockpit.x86_64                    185.1-1.el8_0                      BaseOS     
cockpit-bridge.x86_64             185.1-1.el8_0                      BaseOS     
cockpit-system.noarch             185.1-1.el8_0                      BaseOS     
cockpit-ws.x86_64                 185.1-1.el8_0                      BaseOS     
epel-release.noarch               8-6.el8                            epel       
epel-release.src                  8-6.el8                            epel-source
iptables.x86_64                   1.8.2-9.el8_0.1                    BaseOS     
iptables-ebtables.x86_64          1.8.2-9.el8_0.1                    BaseOS     
iptables-libs.x86_64              1.8.2-9.el8_0.1                    BaseOS     
kernel.x86_64                     4.18.0-80.7.1.el8_0                BaseOS     
kernel-core.x86_64                4.18.0-80.7.1.el8_0                BaseOS     
kernel-modules.x86_64             4.18.0-80.7.1.el8_0                BaseOS     
kernel-tools.x86_64               4.18.0-80.7.1.el8_0                BaseOS     
kernel-tools-libs.x86_64          4.18.0-80.7.1.el8_0                BaseOS     

Anda sekarang dapat memperbarui semua paket yang diinstal di sistem dengan perintah berikut:

dnf update

Untuk memperbarui paket tertentu, jalankan perintah berikut:

dnf update httpd

List dan Install Group Packages

Anda dapat melihat semua daftar paket grup dengan perintah berikut:

dnf grouplist

Anda akan mendapatkan daftar berikut:

Last metadata expiration check: 0:03:42 ago on Saturday 19 October 2019 01:10:16 AM UTC.
Available Environment Groups:
   Server with GUI
   Minimal Install
   Workstation
   KDE Plasma Workspaces
   Virtualization Host
   Custom Operating System
Installed Environment Groups:
   Server
Installed Groups:
   Container Management
   Headless Management
Available Groups:
   .NET Core Development
   RPM Development Tools
   Smart Card Support
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Network Servers
   Scientific Support
   Security Tools
   System Tools
   Fedora Packager

Sekarang, instal paket Grup spesifik dengan perintah berikut:

dnf groupinstall 'System Tools'

Anda juga dapat update paket Grup dengan perintah berikut:

dnf groupupdate 'System Tools'

Daftar Repositori

Anda dapat membuat daftar semua repositori dengan perintah berikut:

dnf repolist all

Anda akan melihat output berikut:

Last metadata expiration check: 0:10:39 ago on Saturday 19 October 2019 01:10:16 AM UTC.
repo id                                    repo name                                                                             status
AppStream                                  CentOS-8 - AppStream                                                                  enabled: 4,928
AppStream-source                           CentOS-8 - AppStream Sources                                                          disabled
BaseOS                                     CentOS-8 - Base                                                                       enabled: 2,713
BaseOS-source                              CentOS-8 - BaseOS Sources                                                             disabled
PowerTools                                 CentOS-8 - PowerTools                                                                 disabled
base-debuginfo                             CentOS-8 - Debuginfo                                                                  disabled
c8-media-AppStream                         CentOS-AppStream-8 - Media                                                            disabled
c8-media-BaseOS                            CentOS-BaseOS-8 - Media                                                               disabled
centosplus                                 CentOS-8 - Plus                                                                       disabled
centosplus-source                          CentOS-8 - Plus Sources                                                               disabled
cr                                         CentOS-8 - cr                                                                         disabled
*epel                                      Extra Packages for Enterprise Linux 8 - x86_64                                        enabled: 1,816
*epel-debuginfo                            Extra Packages for Enterprise Linux 8 - x86_64 - Debug                                enabled: 1,187
epel-playground                            Extra Packages for Enterprise Linux 8 - Playground - x86_64                           disabled
epel-playground-debuginfo                  Extra Packages for Enterprise Linux 8 - Playground - x86_64 - Debug                   disabled
epel-playground-source                     Extra Packages for Enterprise Linux 8 - Playground - x86_64 - Source                  disabled
*epel-source                               Extra Packages for Enterprise Linux 8 - x86_64 - Source                               enabled:   792
*epel-testing                              Extra Packages for Enterprise Linux 8 - Testing - x86_64                              enabled:   538
*epel-testing-debuginfo                    Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Debug                      enabled:   347
*epel-testing-source                       Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Source                     enabled:   216
extras                                     CentOS-8 - Extras                                                                     enabled:     3
extras-source                              CentOS-8 - Extras Sources                                                             disabled
fasttrack                                  CentOS-8 - fasttrack                                                                  disabled

Sekarang, buat list hanya repositori yang diaktifkan pada sistem dengan perintah berikut:

dnf repolist

Anda akan melihat output berikut:

Last metadata expiration check: 0:12:14 ago on Saturday 19 October 2019 01:10:16 AM UTC.
repo id                                        repo name                                                                                 status
AppStream                                      CentOS-8 - AppStream                                                                      4,928
BaseOS                                         CentOS-8 - Base                                                                           2,713
*epel                                          Extra Packages for Enterprise Linux 8 - x86_64                                            1,816
*epel-debuginfo                                Extra Packages for Enterprise Linux 8 - x86_64 - Debug                                    1,187
*epel-source                                   Extra Packages for Enterprise Linux 8 - x86_64 - Source                                     792
*epel-testing                                  Extra Packages for Enterprise Linux 8 - Testing - x86_64                                    538
*epel-testing-debuginfo                        Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Debug                            347
*epel-testing-source                           Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Source                           216
extras                                         CentOS-8 - Extras                                                                             3

Hapus Paket dengan perintah dnf

Anda dapat menghapus paket yang tidak diinginkan dari sistem dengan perintah berikut:

dnf remove httpd

Selanjutnya, hapus dependensi yang tidak diinginkan yang diinstal dengan paket httpd dengan menjalankan perintah berikut:

dnf autoremove

Untuk membersihkan semua paket yang di-cache agar tidak memenuhi ruang di hard disk, jalankan dengan perintah berikut:

dnf clean all

Anda juga dapat menghapus paket secara grup dengan perintah berikut:

dnf groupremove 'System Tools'

Perintah di atas akan menghapus semua packet yang berada di group System Tools

Kesimpulan

Dalam tutorial di atas, kita belajar cara mengelola paket dengan perintah DNF di CentOS 8.