웹사이트 검색

명령줄에서 DNF를 사용한 CentOS 8 패키지 관리


이 페이지에서

  1. 요구 사항\n
  2. DNF 설치
  3. 설치 및 사용 가능한 패키지 나열\n
  4. 패키지 검색 및 설치
  5. 시스템 패키지 업데이트
  6. 그룹 패키지 나열 및 설치
  7. 저장소 나열
  8. 패키지 제거
  9. 결론

DNF는 Dandified YUM의 약자로 RPM 기반 Linux 배포용 소프트웨어 패키지 관리자입니다. Fedora/RHEL/CentOS 운영 체제에서 패키지를 설치, 업데이트 및 제거하는 데 사용됩니다. Fedora 22, CentOS8 및 RHEL8의 기본 패키지 관리자입니다. DNF는 YUM의 차세대 버전이며 RPM 기반 시스템에서 YUM을 대체하기 위한 것입니다. DNF는 강력하고 yum에서 찾을 수 있는 것보다 강력한 기능을 가지고 있습니다. DNF를 사용하면 패키지 그룹을 쉽게 유지하고 종속성 문제를 자동으로 해결할 수 있습니다.

이 튜토리얼에서는 CentOS 8에서 DNF로 패키지를 관리하는 방법을 설명합니다.

요구 사항

  • CentOS 8을 실행하는 서버.\n
  • 루트 비밀번호가 서버에 설정됩니다.\n

DNF 설치

기본적으로 DNF는 CentOS 8 운영 체제에 사전 설치되어 있습니다. 설치되어 있지 않은 경우 다음 명령을 실행하여 설치할 수 있습니다.

yum install dnf

다음으로 다음 명령을 사용하여 DNF 버전을 확인할 수 있습니다.

dnf --version

다음 출력이 표시되어야 합니다.

4.0.9
  Installed: dnf-0:4.0.9.2-5.el8.noarch at Friday 04 October 2019 05:27:09 AM GMT
  Built    : CentOS Buildsys <> at Monday 13 May 2019 07:35:13 PM GMT

  Installed: rpm-0:4.14.2-9.el8.x86_64 at Friday 04 October 2019 05:20:17 AM GMT
  Built    : CentOS Buildsys <> at Saturday 11 May 2019 02:04:19 AM GMT

설치된 패키지 및 사용 가능한 패키지 나열

다음 명령을 사용하여 시스템에 설치된 모든 패키지를 나열할 수 있습니다.

dnf list installed

다음 출력에 설치된 모든 패키지가 표시되어야 합니다.

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 

다음 명령을 사용하여 설치 및 사용 가능한 모든 패키지를 나열할 수도 있습니다.

dnf list

다음 출력이 표시되어야 합니다.

Last metadata expiration check: 4 days, 22:47:10 ago on Friday 04 October 2019 02:14:39 AM EDT.
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             
:
:

다음 명령을 사용하여 사용 가능한 패키지만 나열할 수도 있습니다.

dnf list available

다음 출력이 표시되어야 합니다.

Last metadata expiration check: 4 days, 22:48:21 ago on Friday 04 October 2019 02:14:39 AM EDT.
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                  

패키지 검색 및 설치

다음 명령을 사용하여 설치하려는 모든 패키지를 검색할 수 있습니다.

dnf search httpd

다음 출력이 표시되어야 합니다.

========================================================= 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

이제 다음 명령을 사용하여 httpd 패키지를 설치할 수 있습니다.

dnf install httpd

httpd 패키지를 다시 설치하려면 다음 명령을 실행하십시오.

dnf reinstall httpd

패키지를 설치하지 않고 다운로드해야 하는 경우도 있습니다. 다음 명령을 사용하여 특정 패키지를 다운로드할 수 있습니다.

dnf download httpd

다음 명령을 사용하여 httpd 패키지의 세부 정보를 볼 수도 있습니다.

dnf info httpd

다음 출력이 표시되어야 합니다.

Last metadata expiration check: 0:01:02 ago on Wednesday 09 October 2019 01:07:23 AM EDT.
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.

시스템 패키지 업데이트

먼저 다음 명령을 사용하여 시스템의 모든 시스템 패키지에 대한 업데이트를 확인할 수 있습니다.

dnf check-update

다음 출력이 표시되어야 합니다.

Last metadata expiration check: 0:00:10 ago on Wednesday 09 October 2019 01:10:16 AM EDT.
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     

이제 다음 명령을 사용하여 시스템에 설치된 모든 패키지를 업데이트할 수 있습니다.

dnf update

특정 패키지를 업데이트하려면 다음 명령을 실행합니다.

dnf update httpd

그룹 패키지 나열 및 설치

다음 명령을 사용하여 모든 그룹 패키지를 나열할 수 있습니다.

dnf grouplist

다음 목록을 가져와야 합니다.

Last metadata expiration check: 0:03:42 ago on Wednesday 09 October 2019 01:10:16 AM EDT.
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

이제 다음 명령을 사용하여 특정 그룹 패키지를 설치합니다.

dnf groupinstall 'System Tools'

다음 명령을 사용하여 그룹 패키지를 업데이트할 수도 있습니다.

dnf groupupdate 'System Tools'

리포지토리 나열

다음 명령을 사용하여 모든 리포지토리를 나열할 수 있습니다.

dnf repolist all

다음 출력이 표시되어야 합니다.

Last metadata expiration check: 0:10:39 ago on Wednesday 09 October 2019 01:10:16 AM EDT.
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

이제 다음 명령을 사용하여 시스템에서 활성화된 리포지토리만 나열합니다.

dnf repolist

다음 출력이 표시되어야 합니다.

Last metadata expiration check: 0:12:14 ago on Wednesday 09 October 2019 01:10:16 AM EDT.
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

패키지 제거

다음 명령을 사용하여 시스템에서 원하지 않는 패키지를 제거할 수 있습니다.

dnf remove httpd

다음으로 다음 명령을 실행하여 httpd 패키지와 함께 설치된 원치 않는 종속성을 제거합니다.

dnf autoremove

다음 명령을 사용하여 캐시된 모든 패키지를 정리할 수 있습니다.

dnf clean all

다음 명령을 사용하여 그룹 패키지를 제거할 수도 있습니다.

dnf groupremove 'System Tools'

결론

위의 튜토리얼에서는 CentOS 8에서 DNF 명령으로 패키지를 관리하는 방법을 배웠습니다. 질문이 있으면 언제든지 저에게 물어보세요.