Tutorial Manajemen Packet di CentOS 8 dengan Perintah DNF

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_641: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_641: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_644.3.1-2.el8     epel       
BackupPC-XS.src0.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_6432: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_0BaseOS     
cockpit-bridge.x86_64  185.1-1.el8_0BaseOS     
cockpit-system.noarch  185.1-1.el8_0BaseOS     
cockpit-ws.x86_64      185.1-1.el8_0BaseOS     
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 namestatus
AppStream CentOS-8 - AppStreamenabled: 4,928
AppStream-source     CentOS-8 - AppStream Sources   disabled
BaseOS    CentOS-8 - Base     enabled: 2,713
BaseOS-source        CentOS-8 - BaseOS Sources      disabled
PowerToolsCentOS-8 - PowerTools          disabled
base-debuginfo       CentOS-8 - Debuginfodisabled
c8-media-AppStream   CentOS-AppStream-8 - Media     disabled
c8-media-BaseOS      CentOS-BaseOS-8 - Media        disabled
centosplusCentOS-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 - Debugenabled:   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 - fasttrackdisabled

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_641,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 - Extras3

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.