명령줄에서 DNF를 사용한 CentOS 8 패키지 관리
이 페이지에서
- 요구 사항\n
- DNF 설치
- 설치 및 사용 가능한 패키지 나열\n
- 패키지 검색 및 설치
- 시스템 패키지 업데이트
- 그룹 패키지 나열 및 설치
- 저장소 나열
- 패키지 제거
- 결론
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 명령으로 패키지를 관리하는 방법을 배웠습니다. 질문이 있으면 언제든지 저에게 물어보세요.