[관련 게시물]
2020/01/13 - [리눅스/CentOS] - DNF 명령 - DNF 명령 연재 목록
2020/01/27 - [리눅스/CentOS] - DNF 명령 관리 - 명령 별명(Alias), 대화식 쉘(Shell), 도움말(Help)
2020/01/30 - [리눅스/CentOS] - DNF 트랜잭션 관리 - 트랜잭션 이력(History)
2020/02/03 - [리눅스/CentOS] - DNF 배포판 동기화 - 배포판 동기화(Distro-Sync)
2020/02/05 - [리눅스/CentOS] - DNF 모듈 관리 - 모듈 관리(Module)
안내
앞으로 상당 기간에 걸쳐 RPM 기반 리눅스 배포판을 위한 패키지 관리도구 DNF에 대해 연재하게 되었습니다.
이 연재는 레드햇 계열 리눅스를 처음 접하는 분들을 위해 위 사이트의 내용 중 초심자가 꼭 알야야 하거나 또는 알면 유용한 것들을 선별하여 내용을 작성하였습니다.
잘못된 정보가 있다면 댓글로 제보해주시면 감사하겠습니다.
연재 항목은 다음과 같습니다.
2020/01/13 - [리눅스/CentOS] - DNF 명령 - DNF 명령 연재 목록
2020/01/27 - [리눅스/CentOS] - DNF 명령 관리 - 명령 별명(Alias), 대화식 쉘(Shell), 도움말(Help)
2020/01/30 - [리눅스/CentOS] - DNF 트랜잭션 관리 - 트랜잭션 이력(History)
2020/02/03 - [리눅스/CentOS] - DNF 배포판 동기화 - 배포판 동기화(Distro-Sync)
2020/02/05 - [리눅스/CentOS] - DNF 모듈 관리 - 모듈 관리(Module)
2020/02/09 - [리눅스/CentOS] - DNF 명령줄 옵션 연재 목록
2020/02/11 - [리눅스/CentOS] - DNF 명령줄 분류별 옵션 - [01] 패키지 관리
2020/02/13 - [리눅스/CentOS] - DNF 분류별 명령줄 옵션 - [02] 환경 설정
2020/02/15 - [리눅스/CentOS] - DNF 분류별 명령줄 옵션 - [03] 부가 기능
2020/02/17 - [리눅스/CentOS] - DNF 분류별 명령줄 옵션 - [04] 정보 확인
2020/02/20 - [리눅스/CentOS] - DNF 환경 설정[구성] 파일(dnf.conf) [main] 섹션 옵션
2020/02/22 - [리눅스/CentOS] - DNF 저장소 옵션(Repo Options)과 저장소 변수(Repo Variables)
dnf 명령 목록
Alias
Auto Remove
Check
Check-Update
Clean
Deplist
Distro-Sync
Distribution-Syncronization
DowngradeErase
GroupGroups
Help
History
Info
Install
ListLocalinstall
Makecache
Mark
Module
Provides
Reinstall
Remove
Repoinfo
Repolist
Repoquery
Repo-Pkgs
Repository-Packages
Search
Shell
Swap
Update
Updateinfo
Update-Minimal
Upgrade-Minimal
Update-To
Upgrade-To
패키지 기본 관리
[패키지 기본 관리]
패키지 설치 : Install / Localinstall
패키지 재설치 : Reinstall
패키지 제거 : Remove / Erase
패키지 자동 제거 : Auto Remove
패키지 제거와 설치 동시 작업 : Swap
패키지 정보 확인 : Info
패키지 목록 : List
패키지 종속성 리스트 확인 : Deplist
패키지 문제점 확인 : Check
패키지 그룹화 : Group / Groups
패키지 관리 작업 표시 : Mark
패키지 검색 : Search
시스템 내 조건을 만족하는 패키지 검색 : Provides
일반 계정에 관리자 권한 부여
Wheel 그룹 설정
패키지 설치나 제거 등의 작업을 하기 위해서는 관리자 권한을 지닌 root 계정에서 실행해야 합니다. 그러나 모든 시스템 작업을 root 계정에서 수행하다 보면 되돌릴 수 없는 치명적 실수를 범할 수 있습니다. 따라서 번거롭지만 관리자 권한이 필요한 명령을 사용할 경우 root 계정으로 로그인하지 않고 일반 계정에서 명령 앞에 sudo를 붙여 실행함으로써 실수로 인한 작업을 줄이곤 합니다.
그렇다고 해서 아무 일반 계정 사용자가 관리자 권한을 획득해 사용할 수 있는 것은 아닙니다. 일반 계정 사용자가 sudo 명령을 사용하기 위해서는 해당 계정이 wheel그룹에 속해 있어야 합니다.
wheel그룹은 관리자 권한을 대행하는 그룹입니다. 이 그룹에 속한 계정은 관리자 권한이 필요한 작업을 명령 앞에 sudo를 붙여 실행할 수 있습니다.
만약 특정 일반 계정에게 관리자 권한을 부여하기 위해서는 해당 계정을 wheel 그룹에 속하도록 설정해주어야 합니다. wheel 그룹에 일반 계정 포함 명령은 다음과 같습니다.
# useradd -G wheel 계정명
앞으로 관리자 권한이 필요한 명령의 경우 sudo를 붙이도록 하겠습니다.
Install (패키지 설치)
저장소에서 패키지 설치
$ sudo dnf install [패키지명]
패키지를 설치하는 가장 일반적인 명령어입니다.
[study@localhost ~]$ sudo dnf install httpd [sudo] study의 암호: CentOS-8 - AppStream 1.6 kB/s | 4.3 kB 00:02 CentOS-8 - Base 1.2 kB/s | 3.9 kB 00:03 CentOS-8 - Extras 604 B/s | 1.5 kB 00:02 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: httpd x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 1.7 M 종속성 설치: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k centos-logos-httpd noarch 80.5-2.el8 AppStream 24 k httpd-filesystem noarch 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 35 k httpd-tools x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 102 k mod_http2 x86_64 1.11.3-3.module_el8.0.0+185+5908b0db AppStream 158 k 약한 의존성 설치하기: apr-util-bdb x86_64 1.6.1-6.el8 AppStream 25 k apr-util-openssl x86_64 1.6.1-6.el8 AppStream 27 k Enabling module streams: httpd 2.4 거래 요약 ================================================================================ 설치 9 꾸러미 총 다운로드 크기 : 2.3 M 설치 크기 : 6.0 M 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: (1/9): apr-util-bdb-1.6.1-6.el8.x86_64.rpm 22 kB/s | 25 kB 00:01 (2/9): apr-1.6.3-9.el8.x86_64.rpm 106 kB/s | 125 kB 00:01 (3/9): apr-util-1.6.1-6.el8.x86_64.rpm 89 kB/s | 105 kB 00:01 (4/9): apr-util-openssl-1.6.1-6.el8.x86_64.rpm 184 kB/s | 27 kB 00:00 (5/9): centos-logos-httpd-80.5-2.el8.noarch.rpm 253 kB/s | 24 kB 00:00 (6/9): httpd-filesystem-2.4.37-12.module_el8.0. 339 kB/s | 35 kB 00:00 (7/9): httpd-tools-2.4.37-12.module_el8.0.0+185 870 kB/s | 102 kB 00:00 (8/9): httpd-2.4.37-12.module_el8.0.0+185+5908b 5.7 MB/s | 1.7 MB 00:00 (9/9): mod_http2-1.11.3-3.module_el8.0.0+185+59 1.1 MB/s | 158 kB 00:00 -------------------------------------------------------------------------------- 합계 738 kB/s | 2.3 MB 00:03 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Installing : apr-1.6.3-9.el8.x86_64 1/9 스크립틀릿 실행: apr-1.6.3-9.el8.x86_64 1/9 Installing : apr-util-bdb-1.6.1-6.el8.x86_64 2/9 Installing : apr-util-openssl-1.6.1-6.el8.x86_64 3/9 Installing : apr-util-1.6.1-6.el8.x86_64 4/9 스크립틀릿 실행: apr-util-1.6.1-6.el8.x86_64 4/9 Installing : httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_ 5/9 스크립틀릿 실행: httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db 6/9 Installing : httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db 6/9 Installing : centos-logos-httpd-80.5-2.el8.noarch 7/9 Installing : mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64 8/9 Installing : httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 9/9 스크립틀릿 실행: httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 9/9 확인 중 : apr-1.6.3-9.el8.x86_64 1/9 확인 중 : apr-util-1.6.1-6.el8.x86_64 2/9 확인 중 : apr-util-bdb-1.6.1-6.el8.x86_64 3/9 확인 중 : apr-util-openssl-1.6.1-6.el8.x86_64 4/9 확인 중 : centos-logos-httpd-80.5-2.el8.noarch 5/9 확인 중 : httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 6/9 확인 중 : httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db 7/9 확인 중 : httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_ 8/9 확인 중 : mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64 9/9 설치됨: httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 apr-util-bdb-1.6.1-6.el8.x86_64 apr-util-openssl-1.6.1-6.el8.x86_64 apr-1.6.3-9.el8.x86_64 apr-util-1.6.1-6.el8.x86_64 centos-logos-httpd-80.5-2.el8.noarch httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db.noarch httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64 완료되었습니다! [study@localhost ~]$
명령을 위와 같이 진행이 됩니다. 진행 과정을 요약하면 다음과 같습니다.
1. 저장소 확인
2. 설치할 패키지 정보 출력
3. 트랜잭션(거래) 정보 요약
4. 명령 실행 여부 확인
5. 명령 트랜잭션 준비
6. 명령 수행과 스크립틀릿 실행
7. 패키지별 트랜잭션 작업 확인
8. 명령 실행된 패키지명 출력
9. 완료
위 과정은 패키지의 설치 및 제거 작업에서 동일하게 수행됩니다.
어떤 패키지를 설치할 땐 해당 패키지를 설치하고 실행하는데 필요한 관련 패키지들도 함께 설치되는데 이들 패키지들을 종속성(= 의존성) 관계가 있다고 합니다.
저장소에서 rpm 설치 트랜잭션(실제 설치 수행) 없이 패키지 세트 다운로드
sudo dnf --downloadonly install [패키지명]
때에 따라서는 패키지를 바로 설치하는 것이 아니라 일단 다운받기만 하는 경우가 있습니다. 그럴 땐 위 명령처럼 인스톨 명령에 --downloadonly 옵션을 붙여 실행해주시면 됩니다.
그러나 옵션을 붙이는 위치에 주의할 필요가 있습니다.
옵션 위치에 른 오류
위 링크의 공식 안내 문서에 따르면 DNF 명령은 일정한 문법을 가지고 있습니다.
dnf [options] <command> [<args>...]
dnf [옵션] [명령어] [인수(변수)]
옵션은 앞에 -나 --표시를 붙여 옵션임을 알려줍니다. dnf는 50개가 넘는 옵션을 가지고 있습니다. 그래서 사용하는 명령과 필요한 작업에 맞춰 선택해 사용할 수 있습니다.
[study@localhost ~]$ sudo --downloadonly dnf install httpd sudo: 인식할 수 없는 옵션 '--downloadonly' usage: sudo -h | -K | -k | -V usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user] usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command] usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [] usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ... [study@localhost ~]$
옵션을 dnf 앞에 위치시키면 위처럼 오류가 발생합니다.
정상적인 옵션 사용
[study@localhost ~]$ pwd /home/study [study@localhost ~]$ sudo dnf --downloadonly install httpd [sudo] study의 암호: CentOS-8 - AppStream 1.4 kB/s | 4.3 kB 00:03 CentOS-8 - Base 1.4 kB/s | 3.9 kB 00:02 CentOS-8 - Extras 599 B/s | 1.5 kB 00:02 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: httpd x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 1.7 M 종속성 설치: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k centos-logos-httpd noarch 80.5-2.el8 AppStream 24 k httpd-filesystem noarch 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 35 k httpd-tools x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 102 k mod_http2 x86_64 1.11.3-3.module_el8.0.0+185+5908b0db AppStream 158 k 약한 의존성 설치하기: apr-util-bdb x86_64 1.6.1-6.el8 AppStream 25 k apr-util-openssl x86_64 1.6.1-6.el8 AppStream 27 k Enabling module streams: httpd 2.4 거래 요약 ================================================================================ 설치 9 꾸러미 총 다운로드 크기 : 2.3 M 설치 크기 : 6.0 M DNF는 해당 거래에 대한 패키지 만 다운로드합니다. 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: (1/9): apr-util-bdb-1.6.1-6.el8.x86_64.rpm 23 kB/s | 25 kB 00:01 (2/9): apr-1.6.3-9.el8.x86_64.rpm 116 kB/s | 125 kB 00:01 (3/9): apr-util-1.6.1-6.el8.x86_64.rpm 97 kB/s | 105 kB 00:01 (4/9): apr-util-openssl-1.6.1-6.el8.x86_64.rpm 899 kB/s | 27 kB 00:00 (5/9): centos-logos-httpd-80.5-2.el8.noarch.rpm 666 kB/s | 24 kB 00:00 (6/9): httpd-filesystem-2.4.37-12.module_el8.0. 976 kB/s | 35 kB 00:00 (7/9): httpd-tools-2.4.37-12.module_el8.0.0+185 2.2 MB/s | 102 kB 00:00 (8/9): mod_http2-1.11.3-3.module_el8.0.0+185+59 2.0 MB/s | 158 kB 00:00 (9/9): httpd-2.4.37-12.module_el8.0.0+185+5908b 6.5 MB/s | 1.7 MB 00:00 -------------------------------------------------------------------------------- 합계 858 kB/s | 2.3 MB 00:02 완료되었습니다! 다운로드 된 패키지는 다음 번 성공적인 트랜잭션까지 캐시에 저장되었습니다. 캐시 된 패키지를 제거하려면 'dnf clean packages'. [study@localhost ~]$
dnf 명령을 문법에 맞춰 정상적으로 사용하면 위처럼 무사히 실행됩니다.
위 예시를 보면 다운로드된 패키지는 다음 번 성공적인 트랜잭션까지 캐시에 저장되었다고 알려줍니다. 이렇게 다운받은 패키지는 CentOS 8의 경우, /var/cache/dnf의 하위 디렉터리에 저장됩니다.
해당 패키지는 AppStream 저장소에서 다운받은 것이라 /var/cache/dnf 아래 AppStream-16자리 영숫자/packages 디렉터리 안에 다운받아집니다.
다운받은 패키지 위치 확인은 find 명령을 활용하면 됩니다. 이에 대한 내용은 바로 아래 '다운로드한 rpm 패키지에서 설치' 항목에서 자세히 설명하도록 하겠습니다.
이때 중요한 것은 '다운로드된 패키지는 다음 번 성공적인 트랜잭션까지 캐시에 저장되었다'는 문구를 그냥 지나치면 안됩니다. 이 이야기는 다음 트랜잭션(예를 들어 새 패키지의 설치나 제거 등의 작업)이 수행되면 다운받아진 패키지는 자동으로 삭제된다는 것입니다. 따라서 다운받자 마자 패키지들을 다른 디렉터리에 복사해두어야 합니다.
참고
DNF 공식 문서의 dnf 명령 문법에서는 옵션을 dnf 바로 뒤에 붙이도록 설명하고 있습니다만, dnf 뒤라면 옵션을 어느 위치에 붙이든 상관 없습니다.
즉, dnf 바로 뒤에 붙여도 되고, 명령어 뒤에 붙여도 되며, 패키지명 등 인수 뒤에 붙여도 상관 없습니다.
다운받은 패키지를 자동으로 이동시킬 수도 있습니다. 사용자 입장에서는 해당 패키지를 지정 디렉터리에 다운받는 것과 같습니다.
--downloaddir= 옵션을 사용합니다.
[study@localhost ~]$ mkdir pkgs [study@localhost ~]$ sudo dnf --downloadonly --downloaddir=/home/study/pkgs install mc [sudo] study의 암호: 마지막 메타 데이터 만료 확인 : 0:03:25 전에 2020년 02월 09일 (일) 오전 11시 34분 10초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: mc x86_64 1:4.8.19-9.el8 AppStream 1.9 M 거래 요약 ================================================================================ 설치 1 꾸러미 총 다운로드 크기 : 1.9 M 설치 크기 : 6.8 M DNF는 해당 거래에 대한 패키지 만 다운로드합니다. 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: mc-4.8.19-9.el8.x86_64.rpm 32 kB/s | 1.9 MB 01:02 -------------------------------------------------------------------------------- 합계 31 kB/s | 1.9 MB 01:03 완료되었습니다! 다운로드 된 패키지는 다음 번 성공적인 트랜잭션까지 캐시에 저장되었습니다. 캐시 된 패키지를 제거하려면 'dnf clean packages'. [study@localhost ~]$ cd pkgs [study@localhost pkgs]$ ls mc-4.8.19-9.el8.x86_64.rpm [study@localhost pkgs]$
다운로드한 rpm 패키지에서 설치
sudo dnf install [시스템 내 패키지 파일 경로]
우린 앞서 --downloadonly 옵션을 통해 저장소에서 패키지를 다운받았습니다. 그러나 이렇게 패키지를 다운받을 수도 있지만 이외에도 다양한 경로로 패키지 파일을 받을 수 있습니다.
이렇게 다운받은 패키지를 이제 설치해보도록 합시다.
다운받은 패키지 위치 확인
먼저 다운받은 패키지의 위치를 확인할 필요가 있습니다. 리눅스에서 파일을 검색할 땐 find 명령을 이용합니다.
find [디렉터리] -name [파일명]
find 명령어의 기본 사용법은 위와 같습니다. 그러나 디렉터리 중에는 관리자 권한이 필요한 경우도 있고, 파일명을 정확히 알지 못하는 경우도 있습니다. 따라서 보통 아래와 같이 적곤 합니다.
sudo find / -name 파일명 일부*
이렇게 하면 관리자 권한으로 시스템 최상위 디렉터리에서부터 모든 하위 디렉터리를 포함하여 파일명 일부를 이름에 포함한 모든 파일을 검색하게 됩니다.
아래는 그 예시입니다.
[study@localhost ~]$ sudo find / -name httpd-2.4.37-12* /var/cache/dnf/AppStream-a520ed22b0a8a736/packages/httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64.rpm find: ‘/run/user/1000/gvfs’: 허가 거부 [study@localhost ~]$
조건에 맞는 해당 파일의 전체 경로와 파일명이 출력됩니다.
참고
find: ‘/run/user/1000/gvfs’: 허가 거부
위 문구는 우리가 반드시 고쳐야 하는 오류는 아닙니다.
이에 대한 자세한 설명은 아래 링크를 참고하시기 바랍니다.
[study@localhost ~]$ cd /var/cache/dnf/AppStream-a520ed22b0a8a736/packages [study@localhost packages]$ ls apr-1.6.3-9.el8.x86_64.rpm apr-util-1.6.1-6.el8.x86_64.rpm apr-util-bdb-1.6.1-6.el8.x86_64.rpm apr-util-openssl-1.6.1-6.el8.x86_64.rpm centos-logos-httpd-80.5-2.el8.noarch.rpm httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64.rpm httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db.noarch.rpm httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64.rpm mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64.rpm [study@localhost packages]$
cd 명령어로 패키지가 위치한 디렉터리로 이동해 ls 명령어를 실행하면 해당 디렉터리 안에 존재하는 파일들을 확인할 수 있습니다.
참고
/var/cache는 캐시 디렉터리입니다. 따라서 조건이 달성되면 그 안의 내용들은 지워지므로 이 안에 있는 파일이 필요한 경우 미리 다른 디렉터리로 이동 또는 복사해두어야 합니다.
다운받은 패키지 설치
sudo dnf install 경로/파일명.rpm
시스템에 위치한 패키지를 설치하는 명령어입니다.
[study@localhost packages]$ sudo dnf install ./httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64.rpm 마지막 메타 데이터 만료 확인 : 0:06:11 전에 2020년 01월 14일 (화) 오전 11시 34분 00초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: httpd x86_64 2.4.37-12.module_el8.0.0+185+5908b0db @commandline 1.7 M 종속성 설치: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k centos-logos-httpd noarch 80.5-2.el8 AppStream 24 k httpd-filesystem noarch 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 35 k httpd-tools x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 102 k mod_http2 x86_64 1.11.3-3.module_el8.0.0+185+5908b0db AppStream 158 k 약한 의존성 설치하기: apr-util-bdb x86_64 1.6.1-6.el8 AppStream 25 k apr-util-openssl x86_64 1.6.1-6.el8 AppStream 27 k Enabling module streams: httpd 2.4 거래 요약 ================================================================================ 설치 9 꾸러미 총합 크기: 2.3 M 설치 크기 : 6.0 M 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: [SKIPPED] apr-1.6.3-9.el8.x86_64.rpm: Already downloaded [SKIPPED] apr-util-1.6.1-6.el8.x86_64.rpm: Already downloaded [SKIPPED] apr-util-bdb-1.6.1-6.el8.x86_64.rpm: Already downloaded [SKIPPED] apr-util-openssl-1.6.1-6.el8.x86_64.rpm: Already downloaded [SKIPPED] centos-logos-httpd-80.5-2.el8.noarch.rpm: Already downloaded [SKIPPED] httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db.noarch.rpm: Already downloaded [SKIPPED] httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64.rpm: Already downloaded [SKIPPED] mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64.rpm: Already downloaded -------------------------------------------------------------------------------- 합계 59 MB/s | 600 kB 00:00 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Installing : apr-1.6.3-9.el8.x86_64 1/9 스크립틀릿 실행: apr-1.6.3-9.el8.x86_64 1/9 Installing : apr-util-bdb-1.6.1-6.el8.x86_64 2/9 Installing : apr-util-openssl-1.6.1-6.el8.x86_64 3/9 Installing : apr-util-1.6.1-6.el8.x86_64 4/9 스크립틀릿 실행: apr-util-1.6.1-6.el8.x86_64 4/9 Installing : httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_ 5/9 스크립틀릿 실행: httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db 6/9 Installing : httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db 6/9 Installing : centos-logos-httpd-80.5-2.el8.noarch 7/9 Installing : mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64 8/9 Installing : httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 9/9 스크립틀릿 실행: httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 9/9 확인 중 : apr-1.6.3-9.el8.x86_64 1/9 확인 중 : apr-util-1.6.1-6.el8.x86_64 2/9 확인 중 : apr-util-bdb-1.6.1-6.el8.x86_64 3/9 확인 중 : apr-util-openssl-1.6.1-6.el8.x86_64 4/9 확인 중 : centos-logos-httpd-80.5-2.el8.noarch 5/9 확인 중 : httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db 6/9 확인 중 : httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_ 7/9 확인 중 : mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64 8/9 확인 중 : httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 9/9 설치됨: httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 apr-util-bdb-1.6.1-6.el8.x86_64 apr-util-openssl-1.6.1-6.el8.x86_64 apr-1.6.3-9.el8.x86_64 apr-util-1.6.1-6.el8.x86_64 centos-logos-httpd-80.5-2.el8.noarch httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db.noarch httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64 완료되었습니다! [study@localhost packages]$
특정 패키지 버전 설치
sudo dnf install [패키지 버전]
특정 버전으로 패키지를 설치하는 명령입니다.
패키지가 이미 설치되어 있으면 자동으로 특정 버전으로 다운 그레이드 또는 업그레이드를 시도합니다.
사용 가능한 모든 버전의 패키지 목록 확인
[study@localhost packages]$ dnf list httpd --showduplicates CentOS-8 - AppStream 1.1 MB/s | 6.3 MB 00:05 CentOS-8 - Base 1.8 MB/s | 7.9 MB 00:04 CentOS-8 - Extras 571 B/s | 2.1 kB 00:03 설치된 패키지 httpd.x86_64 2.4.37-12.module_el8.0.0+185+5908b0db @@commandline 사용 가능한 패키지 httpd.x86_64 2.4.37-12.module_el8.0.0+185+5908b0db @@commandline httpd.x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream [study@localhost packages]$
먼저 활성화되어 있는 저장소들 내 특정 패키지의 모든 버전을 확인해봅시다.
dnf의 list 명령을 사용하여 원하는 조건의 패키지 목록을 확인할 수 있습니다. --showduplicates는 중복 패키지를 표시하는 옵션으로 이것은 동일 패키지의 상이한 버전도 보여줍니다.
[study@localhost ~]$ sudo dnf install httpd-2.4.37-12.module_el8.0.0+185+5908b0db 마지막 메타 데이터 만료 확인 : 0:18:22 전에 2020년 01월 14일 (화) 오전 11시 40분 38초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: httpd x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 1.7 M 종속성 설치: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k centos-logos-httpd noarch 80.5-2.el8 AppStream 24 k httpd-filesystem noarch 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 35 k httpd-tools x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 102 k mod_http2 x86_64 1.11.3-3.module_el8.0.0+185+5908b0db AppStream 158 k 약한 의존성 설치하기: apr-util-bdb x86_64 1.6.1-6.el8 AppStream 25 k apr-util-openssl x86_64 1.6.1-6.el8 AppStream 27 k 거래 요약 ================================================================================ 설치 9 꾸러미 총 다운로드 크기 : 2.3 M 설치 크기 : 6.0 M 이게 괜찮습니까 [y / N] :
사용 가능한 최신 버전의 패키지 설치
sudo --best dnf install [패키지명]
활성화된 저장소들 중에서 사용 가능한 최신 버전의 패키지를 설치합니다.
패키지가 이미 설치되어 있으면 최신 버전으로 자동 업그레이드를 시도합니다. 최신 버전의 패키지를 설치할 수 없으면 설치가 실패합니다.
[study@localhost ~]$ sudo dnf --best install httpd 마지막 메타 데이터 만료 확인 : 0:22:16 전에 2020년 01월 14일 (화) 오전 11시 40분 38초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: httpd x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 1.7 M 종속성 설치: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k centos-logos-httpd noarch 80.5-2.el8 AppStream 24 k httpd-filesystem noarch 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 35 k httpd-tools x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 102 k mod_http2 x86_64 1.11.3-3.module_el8.0.0+185+5908b0db AppStream 158 k 약한 의존성 설치하기: apr-util-bdb x86_64 1.6.1-6.el8 AppStream 25 k apr-util-openssl x86_64 1.6.1-6.el8 AppStream 27 k 거래 요약 ================================================================================ 설치 9 꾸러미 총 다운로드 크기 : 2.3 M 설치 크기 : 6.0 M 이게 괜찮습니까 [y / N] :
패키지명이 아닌 널리 알려진 애플리케이션명으로 설치할 수 있는 경우
sudo dnf install [애플리케이션명]
vim은 리눅스에서 널리 활용되는 텍스트편집기 애플리케이션입니다.
vim은 애플리케이션의 공식 이름이지, 이 애플리케이션의 패키지명은 아닙니다. vim의 정확한 패키지명은 vim-enhanced입니다.
일반적으로 패키지명이 정확히 입력되지 않으면DNF는 패키지를 인식하지 못하여 설치에 실패하게 됩니다.
그러나 vim은 리눅스 진영에서 워낙 오랬동안 널리 쓰여온 애플리케이션이라 DNF 개발진들이 vim만 쳐도 그에 대응되는 vim-enhanced 패키지로 자동 연결되도록 설계해준 것입니다.
[study@localhost ~]$ sudo dnf install vim 마지막 메타 데이터 만료 확인 : 0:25:06 전에 2020년 01월 14일 (화) 오전 11시 40분 38초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: vim-enhanced x86_64 2:8.0.1763-10.el8 AppStream 1.4 M 종속성 설치: gpm-libs x86_64 1.20.7-15.el8 AppStream 39 k vim-common x86_64 2:8.0.1763-10.el8 AppStream 6.3 M vim-filesystem noarch 2:8.0.1763-10.el8 AppStream 48 k 거래 요약 ================================================================================ 설치 4 꾸러미 총 다운로드 크기 : 7.8 M 설치 크기 : 30 M 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: (1/4): gpm-libs-1.20.7-15.el8.x86_64.rpm 91 kB/s | 39 kB 00:00 (2/4): vim-filesystem-8.0.1763-10.el8.noarch.rp 60 kB/s | 48 kB 00:00 (3/4): vim-enhanced-8.0.1763-10.el8.x86_64.rpm 61 kB/s | 1.4 MB 00:22 (4/4): vim-common-8.0.1763-10.el8.x86_64.rpm 103 kB/s | 6.3 MB 01:03 -------------------------------------------------------------------------------- 합계 123 kB/s | 7.8 MB 01:04 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Installing : vim-filesystem-2:8.0.1763-10.el8.noarch 1/4 Installing : vim-common-2:8.0.1763-10.el8.x86_64 2/4 Installing : gpm-libs-1.20.7-15.el8.x86_64 3/4 스크립틀릿 실행: gpm-libs-1.20.7-15.el8.x86_64 3/4 Installing : vim-enhanced-2:8.0.1763-10.el8.x86_64 4/4 스크립틀릿 실행: vim-enhanced-2:8.0.1763-10.el8.x86_64 4/4 스크립틀릿 실행: vim-common-2:8.0.1763-10.el8.x86_64 4/4 확인 중 : gpm-libs-1.20.7-15.el8.x86_64 1/4 확인 중 : vim-common-2:8.0.1763-10.el8.x86_64 2/4 확인 중 : vim-enhanced-2:8.0.1763-10.el8.x86_64 3/4 확인 중 : vim-filesystem-2:8.0.1763-10.el8.noarch 4/4 설치됨: vim-enhanced-2:8.0.1763-10.el8.x86_64 gpm-libs-1.20.7-15.el8.x86_64 vim-common-2:8.0.1763-10.el8.x86_64 vim-filesystem-2:8.0.1763-10.el8.noarch 완료되었습니다! [study@localhost ~]$
패키지의 URL을 통한 설치
sudo dnf install [URL 경로]
패키지를 저장소가 아니라 업로드된 웹주소를 이용해 바로 설치할 수도 있습니다.
[study@localhost ~]$ sudo dnf install http://mirror.kakao.com/centos/8.0.1905/extras/x86_64/os/Packages/epel-release-8-5.el8.noarch.rpm [sudo] study의 암호: CentOS-8 - AppStream 1.9 kB/s | 4.3 kB 00:02 CentOS-8 - Base 1.6 kB/s | 3.9 kB 00:02 CentOS-8 - Extras 664 B/s | 1.5 kB 00:02 epel-release-8-5.el8.noarch.rpm 21 kB/s | 22 kB 00:01 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: epel-release noarch 8-5.el8 @commandline 22 k 거래 요약 ================================================================================ 설치 1 꾸러미 총합 크기: 22 k 설치 크기 : 30 k 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Installing : epel-release-8-5.el8.noarch 1/1 스크립틀릿 실행: epel-release-8-5.el8.noarch 1/1 확인 중 : epel-release-8-5.el8.noarch 1/1 설치됨: epel-release-8-5.el8.noarch 완료되었습니다! [study@localhost ~]$
보통 명령어 다음에 적는 인수로 패키지명을 적는데 위는 패키지명 대신 카카오 미러에 있는 패키지의 웹주소를 적어 설치한 예입니다.
모듈 설치
sudo dnf install ['@모듈명']
dnf는 패키지 뿐만 아니라 모듈도 설치할 수 있습니다. 그런데 모듈은 패키지명 대신 '@모듈명'을 적어 설치합니다.
[study@localhost ~]$ sudo dnf install '@docker' [sudo] study의 암호: 마지막 메타 데이터 만료 확인 : 0:02:00 전에 2020년 01월 14일 (화) 오후 12시 40분 57초. Warning: Module or 그룹 'docker' 존재하지 않는다. 오류: 할 것이 없음. [study@localhost ~]$위는 저장소에 해당 모듈이 없기 때문에 출력되는 내용입니다.
환경 그룹 설치
sudo dnf install ['@환경 그룹명']
[study@localhost ~]$ sudo dnf install '@server' [sudo] study의 암호: CentOS-8 - AppStream 1.8 kB/s | 4.3 kB 00:02 CentOS-8 - Base 1.4 kB/s | 3.9 kB 00:02 CentOS-8 - Extras 586 B/s | 1.5 kB 00:02 no group 'dns-server' from environment 'server-product-environment' 그룹 패키지 "centos-release-eula"에 일치하는 항목이 없습니다. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing group/module packages: buildah x86_64 1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7 AppStream 5.3 M containernetworking-plugins x86_64 0.7.4-3.git9ebe139.module_el8.0.0+58+91b614e7 AppStream 14 M podman x86_64 1.0.5-1.gitf604175.module_el8.0.0+194+ac560166 AppStream 9.1 M NetworkManager-config-server noarch 1:1.14.0-14.el8 BaseOS 115 k 종속성 설치: container-selinux noarch 2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7 AppStream 43 k containers-common x86_64 1:0.1.32-3.git1715c90.module_el8.0.0+58+91b614e7 AppStream 31 k criu x86_64 3.10-7.el8 AppStream 482 k libnet x86_64 1.1.6-15.el8 AppStream 67 k oci-systemd-hook x86_64 1:0.1.15-2.git2d0b8a3.module_el8.0.0+58+91b614e7 AppStream 39 k protobuf-c x86_64 1.3.0-4.el8 AppStream 37 k runc x86_64 1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91b614e7 AppStream 2.3 M fuse3-libs x86_64 3.2.1-12.el8 BaseOS 94 k 약한 의존성 설치하기: fuse-overlayfs x86_64 0.3-2.module_el8.0.0+58+91b614e7 AppStream 48 k slirp4netns x86_64 0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91b614e7 AppStream 55 k Enabling module streams: container-tools rhel8 Installing Environment Groups: Server Installing Groups: Container Management Core Hardware Support Headless Management Server product core Standard 거래 요약 ================================================================================ 설치 14 꾸러미 총 다운로드 크기 : 32 M 설치 크기 : 117 M 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: CentOS-8 - AppStream194% [======================================-] 1.1 kB/s | 1.(1/14): buildah-1.5-3.gite94b4f9.module_el8.0.0 2.6 MB/s | 5.3 MB 00:02 (2/14): container-selinux-2.94-1.git1e99f1d.mod 20 kB/s | 43 kB 00:02 (3/14): containers-common-0.1.32-3.git1715c90.m 315 kB/s | 31 kB 00:00 (4/14): containernetworking-plugins-0.7.4-3.git 4.0 MB/s | 14 MB 00:03 (5/14): fuse-overlayfs-0.3-2.module_el8.0.0+58+ 35 kB/s | 48 kB 00:01 (6/14): oci-systemd-hook-0.1.15-2.git2d0b8a3.mo 39 kB/s | 39 kB 00:01 (7/14): libnet-1.1.6-15.el8.x86_64.rpm 39 kB/s | 67 kB 00:01 (8/14): protobuf-c-1.3.0-4.el8.x86_64.rpm 39 kB/s | 37 kB 00:00 (9/14): criu-3.10-7.el8.x86_64.rpm 41 kB/s | 482 kB 00:11 (10/14): slirp4netns-0.1-2.dev.gitc4e1bc5.modul 43 kB/s | 55 kB 00:01 (11/14): NetworkManager-config-server-1.14.0-14 46 kB/s | 115 kB 00:02 (12/14): fuse3-libs-3.2.1-12.el8.x86_64.rpm 47 kB/s | 94 kB 00:02 (13/14): runc-1.0.0-55.rc5.dev.git2abd837.modul 57 kB/s | 2.3 MB 00:42 (14/14): podman-1.0.5-1.gitf604175.module_el8.0 94 kB/s | 9.1 MB 01:38 -------------------------------------------------------------------------------- 합계 303 kB/s | 32 MB 01:46 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Installing : container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0 1/14 스크립틀릿 실행: container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0 1/14 Installing : slirp4netns-0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+9 2/14 Installing : fuse3-libs-3.2.1-12.el8.x86_64 3/14 스크립틀릿 실행: fuse3-libs-3.2.1-12.el8.x86_64 3/14 Installing : fuse-overlayfs-0.3-2.module_el8.0.0+58+91b614e7.x86_ 4/14 Installing : containers-common-1:0.1.32-3.git1715c90.module_el8.0 5/14 Installing : protobuf-c-1.3.0-4.el8.x86_64 6/14 Installing : oci-systemd-hook-1:0.1.15-2.git2d0b8a3.module_el8.0. 7/14 Installing : libnet-1.1.6-15.el8.x86_64 8/14 스크립틀릿 실행: libnet-1.1.6-15.el8.x86_64 8/14 Installing : criu-3.10-7.el8.x86_64 9/14 Installing : runc-1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+9 10/14 Installing : containernetworking-plugins-0.7.4-3.git9ebe139.modul 11/14 Installing : podman-1.0.5-1.gitf604175.module_el8.0.0+194+ac56016 12/14 Installing : buildah-1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7. 13/14 Installing : NetworkManager-config-server-1:1.14.0-14.el8.noarch 14/14 스크립틀릿 실행: NetworkManager-config-server-1:1.14.0-14.el8.noarch 14/14 확인 중 : buildah-1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7. 1/14 확인 중 : container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0 2/14 확인 중 : containernetworking-plugins-0.7.4-3.git9ebe139.modul 3/14 확인 중 : containers-common-1:0.1.32-3.git1715c90.module_el8.0 4/14 확인 중 : criu-3.10-7.el8.x86_64 5/14 확인 중 : fuse-overlayfs-0.3-2.module_el8.0.0+58+91b614e7.x86_ 6/14 확인 중 : libnet-1.1.6-15.el8.x86_64 7/14 확인 중 : oci-systemd-hook-1:0.1.15-2.git2d0b8a3.module_el8.0. 8/14 확인 중 : podman-1.0.5-1.gitf604175.module_el8.0.0+194+ac56016 9/14 확인 중 : protobuf-c-1.3.0-4.el8.x86_64 10/14 확인 중 : runc-1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+9 11/14 확인 중 : slirp4netns-0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+9 12/14 확인 중 : NetworkManager-config-server-1:1.14.0-14.el8.noarch 13/14 확인 중 : fuse3-libs-3.2.1-12.el8.x86_64 14/14 설치됨: buildah-1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7.x86_64 containernetworking-plugins-0.7.4-3.git9ebe139.module_el8.0.0+58+91b614e7.x86_64 podman-1.0.5-1.gitf604175.module_el8.0.0+194+ac560166.x86_64 NetworkManager-config-server-1:1.14.0-14.el8.noarch fuse-overlayfs-0.3-2.module_el8.0.0+58+91b614e7.x86_64 slirp4netns-0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91b614e7.x86_64 container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7.noarch containers-common-1:0.1.32-3.git1715c90.module_el8.0.0+58+91b614e7.x86_64 criu-3.10-7.el8.x86_64 libnet-1.1.6-15.el8.x86_64 oci-systemd-hook-1:0.1.15-2.git2d0b8a3.module_el8.0.0+58+91b614e7.x86_64 protobuf-c-1.3.0-4.el8.x86_64 runc-1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91b614e7.x86_64 fuse3-libs-3.2.1-12.el8.x86_64 완료되었습니다! [study@localhost ~]$
참고
dnf install 명령어를 사용한 모듈과 환경 그룹 설치는 인수 형태가 동일합니다.
dnf install 다음에 @을 붙이고 모듈명이나 환경 그룹명을 적어주시면 됩니다.
@모듈명 or 환경 그룹명에 따옴표(' ')로 싸는 것이 원칙이나 공백이 없는 경우 굳이 싸지 않아도 됩니다. 단 공백이 있는 경우 반드시 따옴표로 싸주어야 합니다.
인수에 공백이 있는데 따옴표로 싸지 않은 경우
[study@localhost ~]$ sudo dnf install @server with gui [sudo] study의 암호: CentOS-8 - AppStream 1.4 kB/s | 4.3 kB 00:03 CentOS-8 - Base 1.4 kB/s | 3.9 kB 00:02 CentOS-8 - Extras 546 B/s | 1.5 kB 00:02 no group 'dns-server' from environment 'server-product-environment' 인수와 일치하는 항목 없음 : with 인수와 일치하는 항목 없음 : gui 오류: 경기를 찾을 수 없습니다. [study@localhost ~]$
인수에 공백이 있어 따옴표로 싼 경우
[study@localhost ~]$ sudo dnf install '@server with gui' 마지막 메타 데이터 만료 확인 : 0:01:04 전에 2020년 01월 15일 (수) 오후 07시 41분 52초. no group 'dns-server' from environment 'graphical-server-environment' 그룹 패키지 "hpijs"에 일치하는 항목이 없습니다. 그룹 패키지 "centos-release-eula"에 일치하는 항목이 없습니다. 종속성이 해결되었습니다. ================================================================================= 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================= Installing group/module packages: buildah x86_64 1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7 AppStream 5.3 M containernetworking-plugins x86_64 0.7.4-3.git9ebe139.module_el8.0.0+58+91b614e7 AppStream 14 M podman x86_64 1.0.5-1.gitf604175.module_el8.0.0+194+ac560166 AppStream 9.1 M NetworkManager-config-server noarch 1:1.14.0-14.el8 BaseOS 115 k rasdaemon x86_64 0.6.1-2.el8 BaseOS 101 k 종속성 설치: container-selinux noarch 2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7 AppStream 43 k containers-common x86_64 1:0.1.32-3.git1715c90.module_el8.0.0+58+91b614e7 AppStream 31 k criu x86_64 3.10-7.el8 AppStream 482 k libnet x86_64 1.1.6-15.el8 AppStream 67 k oci-systemd-hook x86_64 1:0.1.15-2.git2d0b8a3.module_el8.0.0+58+91b614e7 AppStream 39 k perl-DBD-SQLite x86_64 1.58-1.module_el8.0.0+76+73395213 AppStream 186 k perl-DBI x86_64 1.641-2.module_el8.0.0+66+fe1eca09 AppStream 740 k protobuf-c x86_64 1.3.0-4.el8 AppStream 37 k runc x86_64 1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91b614e7 AppStream 2.3 M fuse3-libs x86_64 3.2.1-12.el8 BaseOS 94 k 약한 의존성 설치하기: fuse-overlayfs x86_64 0.3-2.module_el8.0.0+58+91b614e7 AppStream 48 k slirp4netns x86_64 0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91b614e7 AppStream 55 k Enabling module streams: container-tools rhel8 perl-DBD-SQLite 1.58 perl-DBI 1.641 Installing Environment Groups: Server with GUI Installing Groups: Container Management Core Fonts GNOME Guest Desktop Agents Hardware Monitoring Utilities Hardware Support Headless Management Internet Browser Multimedia Common NetworkManager submodules Printing Client Server product core Standard 거래 요약 ================================================================================= 설치 17 꾸러미 총 다운로드 크기 : 33 M 설치 크기 : 119 M 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: (1/17): container-selinux-2.94-1.git1e99f1d.modu 33 kB/s | 43 kB 00:01 (2/17): containers-common-0.1.32-3.git1715c90.mo 95 kB/s | 31 kB 00:00 (3/17): buildah-1.5-3.gite94b4f9.module_el8.0.0+ 2.4 MB/s | 5.3 MB 00:02 (4/17): fuse-overlayfs-0.3-2.module_el8.0.0+58+9 44 kB/s | 48 kB 00:01 (5/17): containernetworking-plugins-0.7.4-3.git9 3.1 MB/s | 14 MB 00:04 (6/17): libnet-1.1.6-15.el8.x86_64.rpm 50 kB/s | 67 kB 00:01 (7/17): oci-systemd-hook-0.1.15-2.git2d0b8a3.mod 39 kB/s | 39 kB 00:01 (8/17): perl-DBD-SQLite-1.58-1.module_el8.0.0+76 49 kB/s | 186 kB 00:03 (9/17): podman-1.0.5-1.gitf604175.module_el8.0.0 5.3 MB/s | 9.1 MB 00:01 (10/17): protobuf-c-1.3.0-4.el8.x86_64.rpm 28 kB/s | 37 kB 00:01 (11/17): runc-1.0.0-55.rc5.dev.git2abd837.module 2.8 MB/s | 2.3 MB 00:00 (12/17): slirp4netns-0.1-2.dev.gitc4e1bc5.module 47 kB/s | 55 kB 00:01 (13/17): criu-3.10-7.el8.x86_64.rpm 38 kB/s | 482 kB 00:12 (14/17): fuse3-libs-3.2.1-12.el8.x86_64.rpm 53 kB/s | 94 kB 00:01 (15/17): NetworkManager-config-server-1.14.0-14. 38 kB/s | 115 kB 00:03 (16/17): rasdaemon-0.6.1-2.el8.x86_64.rpm 35 kB/s | 101 kB 00:02 (17/17): perl-DBI-1.641-2.module_el8.0.0+66+fe1e 52 kB/s | 740 kB 00:14 --------------------------------------------------------------------------------- 합계 1.4 MB/s | 33 MB 00:22 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Installing : container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+ 1/17 스크립틀릿 실행: container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+ 1/17 Installing : slirp4netns-0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91 2/17 Installing : fuse3-libs-3.2.1-12.el8.x86_64 3/17 스크립틀릿 실행: fuse3-libs-3.2.1-12.el8.x86_64 3/17 Installing : fuse-overlayfs-0.3-2.module_el8.0.0+58+91b614e7.x86_6 4/17 Installing : containers-common-1:0.1.32-3.git1715c90.module_el8.0. 5/17 Installing : protobuf-c-1.3.0-4.el8.x86_64 6/17 Installing : perl-DBI-1.641-2.module_el8.0.0+66+fe1eca09.x86_64 7/17 Installing : perl-DBD-SQLite-1.58-1.module_el8.0.0+76+73395213.x86 8/17 Installing : oci-systemd-hook-1:0.1.15-2.git2d0b8a3.module_el8.0.0 9/17 Installing : libnet-1.1.6-15.el8.x86_64 10/17 스크립틀릿 실행: libnet-1.1.6-15.el8.x86_64 10/17 Installing : criu-3.10-7.el8.x86_64 11/17 Installing : runc-1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91 12/17 Installing : containernetworking-plugins-0.7.4-3.git9ebe139.module 13/17 Installing : podman-1.0.5-1.gitf604175.module_el8.0.0+194+ac560166 14/17 Installing : buildah-1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7.x 15/17 Installing : rasdaemon-0.6.1-2.el8.x86_64 16/17 Installing : NetworkManager-config-server-1:1.14.0-14.el8.noarch 17/17 스크립틀릿 실행: NetworkManager-config-server-1:1.14.0-14.el8.noarch 17/17 확인 중 : buildah-1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7.x 1/17 확인 중 : container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+ 2/17 확인 중 : containernetworking-plugins-0.7.4-3.git9ebe139.module 3/17 확인 중 : containers-common-1:0.1.32-3.git1715c90.module_el8.0. 4/17 확인 중 : criu-3.10-7.el8.x86_64 5/17 확인 중 : fuse-overlayfs-0.3-2.module_el8.0.0+58+91b614e7.x86_6 6/17 확인 중 : libnet-1.1.6-15.el8.x86_64 7/17 확인 중 : oci-systemd-hook-1:0.1.15-2.git2d0b8a3.module_el8.0.0 8/17 확인 중 : perl-DBD-SQLite-1.58-1.module_el8.0.0+76+73395213.x86 9/17 확인 중 : perl-DBI-1.641-2.module_el8.0.0+66+fe1eca09.x86_64 10/17 확인 중 : podman-1.0.5-1.gitf604175.module_el8.0.0+194+ac560166 11/17 확인 중 : protobuf-c-1.3.0-4.el8.x86_64 12/17 확인 중 : runc-1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91 13/17 확인 중 : slirp4netns-0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91 14/17 확인 중 : NetworkManager-config-server-1:1.14.0-14.el8.noarch 15/17 확인 중 : fuse3-libs-3.2.1-12.el8.x86_64 16/17 확인 중 : rasdaemon-0.6.1-2.el8.x86_64 17/17 설치됨: buildah-1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7.x86_64 containernetworking-plugins-0.7.4-3.git9ebe139.module_el8.0.0+58+91b614e7.x86_64 podman-1.0.5-1.gitf604175.module_el8.0.0+194+ac560166.x86_64 NetworkManager-config-server-1:1.14.0-14.el8.noarch rasdaemon-0.6.1-2.el8.x86_64 fuse-overlayfs-0.3-2.module_el8.0.0+58+91b614e7.x86_64 slirp4netns-0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91b614e7.x86_64 container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7.noarch containers-common-1:0.1.32-3.git1715c90.module_el8.0.0+58+91b614e7.x86_64 criu-3.10-7.el8.x86_64 libnet-1.1.6-15.el8.x86_64 oci-systemd-hook-1:0.1.15-2.git2d0b8a3.module_el8.0.0+58+91b614e7.x86_64 perl-DBD-SQLite-1.58-1.module_el8.0.0+76+73395213.x86_64 perl-DBI-1.641-2.module_el8.0.0+66+fe1eca09.x86_64 protobuf-c-1.3.0-4.el8.x86_64 runc-1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91b614e7.x86_64 fuse3-libs-3.2.1-12.el8.x86_64 완료되었습니다! [study@localhost ~]$
참고
참고로 그룹 설치는 dnf install '@그룹명'이 아니라 dnf group install '그룹명'을 이용할 수도 있습니다.
이때 group install 대신 단어를 붙여서 groupinstall을 사용할 수도 있습니다.
dnf group install '그룹명'을 이용한 설치
[study@localhost ~]$ sudo dnf group install server 마지막 메타 데이터 만료 확인 : 2:04:01 전에 2020년 01월 15일 (수) 오후 04시 18분 53초. no group 'dns-server' from environment 'server-product-environment' 그룹 패키지 "centos-release-eula"에 일치하는 항목이 없습니다. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing group/module packages: buildah x86_64 1.5-3.gite94b4f9.module_el8.0.0+58+91b614e7 AppStream 5.3 M containernetworking-plugins x86_64 0.7.4-3.git9ebe139.module_el8.0.0+58+91b614e7 AppStream 14 M podman x86_64 1.0.5-1.gitf604175.module_el8.0.0+194+ac560166 AppStream 9.1 M NetworkManager-config-server noarch 1:1.14.0-14.el8 BaseOS 115 k 종속성 설치: container-selinux noarch 2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7 AppStream 43 k containers-common x86_64 1:0.1.32-3.git1715c90.module_el8.0.0+58+91b614e7 AppStream 31 k criu x86_64 3.10-7.el8 AppStream 482 k libnet x86_64 1.1.6-15.el8 AppStream 67 k oci-systemd-hook x86_64 1:0.1.15-2.git2d0b8a3.module_el8.0.0+58+91b614e7 AppStream 39 k protobuf-c x86_64 1.3.0-4.el8 AppStream 37 k runc x86_64 1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91b614e7 AppStream 2.3 M fuse3-libs x86_64 3.2.1-12.el8 BaseOS 94 k 약한 의존성 설치하기: fuse-overlayfs x86_64 0.3-2.module_el8.0.0+58+91b614e7 AppStream 48 k slirp4netns x86_64 0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91b614e7 AppStream 55 k Enabling module streams: container-tools rhel8 Installing Environment Groups: Server Installing Groups: Container Management Core Hardware Support Headless Management Server product core Standard 거래 요약 ================================================================================ 설치 14 꾸러미 총 다운로드 크기 : 32 M 설치 크기 : 117 M 이게 괜찮습니까 [y / N] :
특정 디렉터리 파일을 제공하는 패키지를 설치
sudo dnf install [특정 디렉터리 파일]
[study@localhost ~]$ sudo dnf install /usr/bin/rpmsign [sudo] study의 암호: CentOS-8 - AppStream 1.6 kB/s | 4.3 kB 00:02 CentOS-8 - Base 1.5 kB/s | 3.9 kB 00:02 CentOS-8 - Extras 576 B/s | 1.5 kB 00:02 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: rpm-sign x86_64 4.14.2-11.el8_0 BaseOS 75 k 거래 요약 ================================================================================ 설치 1 꾸러미 총 다운로드 크기 : 75 k 설치 크기 : 20 k 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: rpm-sign-4.14.2-11.el8_0.x86_64.rpm 70 kB/s | 75 kB 00:01 -------------------------------------------------------------------------------- 합계 28 kB/s | 75 kB 00:02 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Installing : rpm-sign-4.14.2-11.el8_0.x86_64 1/1 스크립틀릿 실행: rpm-sign-4.14.2-11.el8_0.x86_64 1/1 확인 중 : rpm-sign-4.14.2-11.el8_0.x86_64 1/1 설치됨: rpm-sign-4.14.2-11.el8_0.x86_64 완료되었습니다! [study@localhost ~]$
패키지 설치 시 약한 종속성 패키지 제외하고 설치
sudo dnf install [패키지명] --setopt=install_weak_deps=False
위 명령은 패키지 설치 시 약한 종속성 패키지는 제외하고 설치할 때 사용하는 명령어입니다.
일반적인 패키지 설치
[study@localhost ~]$ sudo dnf install httpd [sudo] study의 암호: CentOS-8 - AppStream 386 B/s | 4.3 kB 00:11 CentOS-8 - Base 1.4 kB/s | 3.9 kB 00:02 CentOS-8 - Extras 556 B/s | 1.5 kB 00:02 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: httpd x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 1.7 M 종속성 설치: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k centos-logos-httpd noarch 80.5-2.el8 AppStream 24 k httpd-filesystem noarch 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 35 k httpd-tools x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 102 k mod_http2 x86_64 1.11.3-3.module_el8.0.0+185+5908b0db AppStream 158 k 약한 의존성 설치하기: apr-util-bdb x86_64 1.6.1-6.el8 AppStream 25 k apr-util-openssl x86_64 1.6.1-6.el8 AppStream 27 k Enabling module streams: httpd 2.4 거래 요약 ================================================================================ 설치 9 꾸러미 총 다운로드 크기 : 2.3 M 설치 크기 : 6.0 M 이게 괜찮습니까 [y / N] :
만약 위처럼 일반적인 방법으로 httpd 패키지를 설치하는 경우 아래와 같이 설치가 됩니다.
사용자 설치 패키지 (1개) : httpd
종속성 설치 패키지 (6개) : apr, apr-util, centos-logos-httpd, httpd-filesystem, httpd-tools, mod_http
약한 의존성 설치 패키지(2개) : apr-util-bdb, apr-util-openssl
약한 의존성 패키지 제외 설치
[study@localhost ~]$ sudo dnf install httpd --setopt=install_weak_deps=False 마지막 메타 데이터 만료 확인 : 0:03:20 전에 2020년 01월 14일 (화) 오후 04시 11분 48초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: httpd x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 1.7 M 종속성 설치: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k centos-logos-httpd noarch 80.5-2.el8 AppStream 24 k httpd-filesystem noarch 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 35 k httpd-tools x86_64 2.4.37-12.module_el8.0.0+185+5908b0db AppStream 102 k mod_http2 x86_64 1.11.3-3.module_el8.0.0+185+5908b0db AppStream 158 k Enabling module streams: httpd 2.4 거래 요약 ================================================================================ 설치 7 꾸러미 총 다운로드 크기 : 2.2 M 설치 크기 : 6.0 M 이게 괜찮습니까 [y / N] :
위의 경우 약한 의존성 설치 패키지인 apr-util-bdb, apr-util-openssl 이 2개가 설치되지 않았습니다.
업데이트 권고(--advisory) 패키지 설치
sudo dnf install --advisory=권고 ID \*
레드햇은 자신들의 소프트웨어의 기능을 개선하고, 버그를 수정하며, 보안을 강화하여 안정적으로 유지보수하기 위해 문제점을 개선한 일종의 패치를 공개합니다.
페도라 업데이트 시스템(Fedora Updates System) 사이트
레드햇 제품 개선 정보 페이지
https://access.redhat.com/errata
권고(--advisory) 패키지 설치 예시
페도라의 경우
sudo dnf install --advisory=FEDORA-2018-b7b99fe852 \*
참고로 위에 예시된 해당 advisory 정보는 아래 링크에서 확인할 수 있습니다.
RHEL / CentOS의 경우
참고
이 글을 공개한 2020년 1월 17일자 기준으로 RHEL 8용 권고(advisory) 패키지는 올라와 있지 않아 RHEL 7의 권고(advisory) 패키지 모음 RHSA-2020:0085을 설치하는 과정 화면을 올렸습니다.
Remove (패키지 제거)
일반적인 패키지 제거 명령
sudo dnf remove [패키지명]
패키지 제거 명령어입니다.
[study@localhost ~]$ sudo dnf remove httpd 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ 삭제 중: httpd x86_64 2.4.37-16.module_el8.1.0+256+ae790463 @AppStream 5.4 M 사용되지 않는 종속성 제거: apr x86_64 1.6.3-9.el8 @AppStream 293 k apr-util x86_64 1.6.1-6.el8 @AppStream 231 k apr-util-bdb x86_64 1.6.1-6.el8 @AppStream 12 k apr-util-openssl x86_64 1.6.1-6.el8 @AppStream 20 k centos-logos-httpd noarch 80.5-2.el8 @AppStream 1.9 k httpd-filesystem noarch 2.4.37-16.module_el8.1.0+256+ae790463 @AppStream 400 httpd-tools x86_64 2.4.37-16.module_el8.1.0+256+ae790463 @AppStream 211 k mod_http2 x86_64 1.11.3-3.module_el8.1.0+213+acce2796 @AppStream 479 k 거래 요약 ================================================================================ 삭제 9 꾸러미 자유 공간 : 6.6 M 이게 괜찮습니까 [y / N] : y 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 스크립틀릿 실행: httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 1/1 스크립틀릿 실행: httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 1/9 삭제 중 : httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 1/9 스크립틀릿 실행: httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 1/9 삭제 중 : httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463 2/9 스크립틀릿 실행: httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463 2/9 삭제 중 : centos-logos-httpd-80.5-2.el8.noarch 3/9 삭제 중 : httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_ 4/9 삭제 중 : apr-util-1.6.1-6.el8.x86_64 5/9 스크립틀릿 실행: apr-util-1.6.1-6.el8.x86_64 5/9 삭제 중 : apr-1.6.3-9.el8.x86_64 6/9 스크립틀릿 실행: apr-1.6.3-9.el8.x86_64 6/9 삭제 중 : apr-util-bdb-1.6.1-6.el8.x86_64 7/9 삭제 중 : apr-util-openssl-1.6.1-6.el8.x86_64 8/9 삭제 중 : mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64 9/9 스크립틀릿 실행: mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64 9/9 확인 중 : apr-1.6.3-9.el8.x86_64 1/9 확인 중 : apr-util-1.6.1-6.el8.x86_64 2/9 확인 중 : apr-util-bdb-1.6.1-6.el8.x86_64 3/9 확인 중 : apr-util-openssl-1.6.1-6.el8.x86_64 4/9 확인 중 : centos-logos-httpd-80.5-2.el8.noarch 5/9 확인 중 : httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 6/9 확인 중 : httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463 7/9 확인 중 : httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_ 8/9 확인 중 : mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64 9/9 제거됨: httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 apr-1.6.3-9.el8.x86_64 apr-util-1.6.1-6.el8.x86_64 apr-util-bdb-1.6.1-6.el8.x86_64 apr-util-openssl-1.6.1-6.el8.x86_64 centos-logos-httpd-80.5-2.el8.noarch httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64 완료되었습니다! [study@localhost ~]$
이때 불필요하게 된 모든 종속성 패키지도 같이 제거되는데 만약 다른 패키지와도 종속성 관계를 가지는 것이 있다면 그 패키지는 제거되지 않습니다.
불필요한 종속성 패키지 자동 제거 방지 설정
위와 같이 불필요한 사용되지 않는 종속성 패키지가 자동으로 같이 제거되지 않도록 하기 위해서는 dnf의 설정 파일을 수정해주어야 합니다.
CentOS 8의 경우 /etc/dnf/dnf.conf 파일입니다. 전에는 DNF 아닌 YUM이 기본 패키지 관리자 였습니다. 따라서 패키지 관리자 설정도 /etc/yum.conf 파일을 통해 이루어졌습니다.
그러나 DNF가 기본 패키지 관리자로 바뀐 CentOS 8부터는 /etc/yum.conf 파일은 /etc/dnf/dnf.conf파일로 연결됩니다.
[study@localhost etc]$ ls -al yum.conf lrwxrwxrwx. 1 root root 12 5월 14 2019 yum.conf -> dnf/dnf.conf [study@localhost etc]$YUM이 기본 패키지 관리자이고, 패키지 관리자 명령어로 yum을 사용하는 CentOS 7 이전 버전의 경우 /etc/yum.conf를 수정해주어야 합니다.
/etc/dnf/dnf.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
위는 패키지 관리자 DNF의 설정 파일 원본입니다.
이중 불필요한 종속성 패키지 자동 제거 설정은 아래 구문입니다.
clean_requirements_on_remove=TrueFalse
위에서 True를 False로 바꾸어 저장해주시면 됩니다.
그후 다시 make를 제거를 시도해보면 아래와 같이 진행됩니다.(정말로 삭제하면 안됩니다. make 패키지는 여러분들이 리눅스를 운용할 때 반드시 필요한 패키지 입니다.)
[study@localhost ~]$ sudo dnf remove httpd 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ 삭제 중: httpd x86_64 2.4.37-16.module_el8.1.0+256+ae790463 @AppStream 5.4 M 종속 패키지 제거: mod_http2 x86_64 1.11.3-3.module_el8.1.0+213+acce2796 @AppStream 479 k 거래 요약 ================================================================================ 삭제 2 꾸러미 자유 공간 : 5.8 M 이게 괜찮습니까 [y / N] :
이전 버전 중복 패키지 제거
sudo dnf remove --duplicates
이전 버전의 중복 패키지를 제거합니다. 시스템의 무결성을 보장하기 위해 최신 패키지를 다시 설치합니다.
[study@localhost ~]$ sudo dnf remove --duplicates 마지막 메타 데이터 만료 확인 : 0:18:15 전에 2020년 01월 10일 (금) 오후 03시 17분 23초. 오류: 제거 할 중복 패키지가 없습니다. [study@localhost ~]$
중복 패키지가 없다면 위와 같이 출력됩니다.
이전 설치 전용 패키지 제거
sudo dnf remove --oldinstallonly
최신 버전과 실행중인 커널 버전만 유지하면서 이전 설치 전용 패키지를 제거합니다.
Reinstall (패키지 재설치)
패키지 재설치 명령
sudo dnf reinstall [패키지명]
일부 패키지가 설치되지 않았거나 사용할 수 없는 경우 지정된 패키지를 재설치합니다.
당연한 말이겠지만 동일한 패키지를 다운로드 할 수 있는 저장소가 없는 경우 실패합니다.
[study@localhost ~]$ sudo dnf reinstall kernel* 마지막 메타 데이터 만료 확인 : 0:10:22 전에 2020년 01월 10일 (금) 오후 03시 17분 23초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Reinstalling: kernel x86_64 4.18.0-80.11.2.el8_0 BaseOS 424 k kernel x86_64 4.18.0-80.el8 BaseOS 400 k kernel-core x86_64 4.18.0-80.11.2.el8_0 BaseOS 24 M kernel-core x86_64 4.18.0-80.el8 BaseOS 24 M kernel-devel x86_64 4.18.0-80.11.2.el8_0 BaseOS 12 M kernel-headers x86_64 4.18.0-80.11.2.el8_0 BaseOS 1.6 M kernel-modules x86_64 4.18.0-80.11.2.el8_0 BaseOS 20 M kernel-modules x86_64 4.18.0-80.el8 BaseOS 20 M kernel-tools x86_64 4.18.0-80.11.2.el8_0 BaseOS 574 k kernel-tools-libs x86_64 4.18.0-80.11.2.el8_0 BaseOS 433 k 거래 요약 ================================================================================ 총 다운로드 크기 : 103 M 설치 크기 : 203 M 이게 괜찮습니까 [y / N] :
참고
인수에 사용된 특수기호 *
위 예시처럼 패키지명에 패키지명 일부와 특수 기호 *이 사용되는 경우가 있습니다. 이것은 해당 문자로 시작하는 모든 패키지들에 명령을 적용하라는 뜻입니다.
Auto Remove(불필요한 모든 패키지 자동 제거)
불필요한 모든 패키지 자동 제거
sudo dnf autoremove
원래 사용자 설치 패키지의 종속성으로 설치되었지만 더 이상 해당 패키지에 필요하지 않은 모든 "리프(leaf)"패키지를 시스템에서 제거합니다.
참고
leaf 패키지란?
다른 패키지와 종속성 관계로 연결되지 않은 패키지를 뜻합니다.
예를 들어 A 패키지를 설치해야 하고, 이 A 패키지를 온전히 설치하기 위해서는 종속성으로 연결되어 있는 c, d 패키지가 같이 설치되어야 한다고 가정합시다.
이때 b, c 종속성 패키지는 두가지 경우의 수가 있습니다. 해당 종속성 패키지가 A 패키지와만 종속성 관계를 가지고 다른 패키지와는 종속성 관계가 없는 경우와, A 패키지 뿐만 아니라 시스템에 설치되어 있는 B라고 하는 다른 패키지와도 종속성 관계를 가지는 경우가 있을 수 있습니다.
예를 들어 c 패키지는 A 패키지하고만 종속성 관계가 있고 다른 패키지와는 아무런 종속성 관계가 없는 반면에 d 패키지는 A 패키지 뿐만 아니라 B 패키지와도 종속성 관계가 있다고 할 때, A 패키지가 제거되면 c 패키지는 아무 쓸모 없는 leaf 패키지가 됩니다. 반대로 d 패키지는 여전히 쓰이게 되므로 leaf 패키지가 아닙니다.
remove나 autoremove 등으로 A 패키지를 제거하면 leaf 패키지 c 패키지도 같이 제거되지만 d 패키지는 B 패키지와 종속성 관계를 유지하고 있으므로 A 패키지를 제거하더라도 d 패키지는 같이 제거되지 않습니다.
[study@localhost ~]$ sudo dnf autoremove [sudo] study의 암호: 마지막 메타 데이터 만료 확인 : 0:17:39 전에 2020년 01월 08일 (수) 오후 12시 03분 40초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ 삭제 중: grub2-tools-efi x86_64 1:2.02-66.el8_0.1 @BaseOS 1.9 M 거래 요약 ================================================================================ 삭제 1 꾸러미 자유 공간 : 1.9 M 이게 괜찮습니까 [y / N] : y 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 삭제 중 : grub2-tools-efi-1:2.02-66.el8_0.1.x86_64 1/1 스크립틀릿 실행: grub2-tools-efi-1:2.02-66.el8_0.1.x86_64 1/1 확인 중 : grub2-tools-efi-1:2.02-66.el8_0.1.x86_64 1/1 제거됨: grub2-tools-efi-1:2.02-66.el8_0.1.x86_64 완료되었습니다! [study@localhost ~]$
종속성 포함 패키지 제거
sudo dnf autoremove 패키지명
이 명령은 clean_requirements_on_remove가 True로 설정된 Remove 명령의 별칭입니다. 특정 패키지를 종속성이 걸린 패키지와 함께 시스템에서 제거하는 명령입니다.
사실 remove 명령도 기본값으로 clean_requirements_on_remove가 True로 설정되어 활성화되어 있으므로 따로 설정하지 않는 한 결과는 동일합니다.
자세한 내용은 remove 명령을 참고하시기 바랍니다.
Swap (패키지 제거와 설치의 동시 작업)
sudo dnf swap [제거할 패키지명] [설치할 패키지명]
한 트랜잭션에서 패키지를 제거하고 또 다른 패키지를 설치하는 명령입니다.
[study@localhost ~]$ sudo dnf swap php mc 마지막 메타 데이터 만료 확인 : 0:01:37 전에 2020년 01월 10일 (금) 오후 06시 56분 09초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: mc x86_64 1:4.8.19-9.el8 AppStream 1.9 M 삭제 중: php x86_64 7.2.11-1.module_el8.0.0+56+d1ca79aa @AppStream 4.9 M 사용되지 않는 종속성 제거: apr x86_64 1.6.3-9.el8 @AppStream 293 k apr-util x86_64 1.6.1-6.el8 @AppStream 231 k apr-util-bdb x86_64 1.6.1-6.el8 @AppStream 12 k apr-util-openssl x86_64 1.6.1-6.el8 @AppStream 20 k centos-logos-httpd noarch 80.5-2.el8 @AppStream 1.9 k httpd x86_64 2.4.37-12.module_el8.0.0+185+5908b0db @AppStream 4.9 M httpd-filesystem noarch 2.4.37-12.module_el8.0.0+185+5908b0db @AppStream 400 httpd-tools x86_64 2.4.37-12.module_el8.0.0+185+5908b0db @AppStream 197 k mod_http2 x86_64 1.11.3-3.module_el8.0.0+185+5908b0db @AppStream 409 k nginx-filesystem noarch 1:1.14.1-9.module_el8.0.0+184+e34fea82 @AppStream 0 php-cli x86_64 7.2.11-1.module_el8.0.0+56+d1ca79aa @AppStream 9.8 M php-common x86_64 7.2.11-1.module_el8.0.0+56+d1ca79aa @AppStream 6.0 M php-fpm x86_64 7.2.11-1.module_el8.0.0+56+d1ca79aa @AppStream 5.0 M 거래 요약 ================================================================================ 설치 1 꾸러미 삭제 14 꾸러미 총 다운로드 크기 : 1.9 M 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: mc-4.8.19-9.el8.x86_64.rpm 1.4 MB/s | 1.9 MB 00:01 -------------------------------------------------------------------------------- 합계 694 kB/s | 1.9 MB 00:02 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 스크립틀릿 실행: mc-1:4.8.19-9.el8.x86_64 1/1 Installing : mc-1:4.8.19-9.el8.x86_64 1/15 삭제 중 : php-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 2/15 스크립틀릿 실행: httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 3/15 삭제 중 : httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 3/15 스크립틀릿 실행: httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 3/15 스크립틀릿 실행: php-fpm-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 4/15 삭제 중 : php-fpm-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 4/15 스크립틀릿 실행: php-fpm-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 4/15 삭제 중 : httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x8 5/15 삭제 중 : apr-util-1.6.1-6.el8.x86_64 6/15 스크립틀릿 실행: apr-util-1.6.1-6.el8.x86_64 6/15 삭제 중 : php-cli-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 7/15 삭제 중 : httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0 8/15 스크립틀릿 실행: httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0 8/15 삭제 중 : nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fe 9/15 스크립틀릿 실행: nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fe 9/15 삭제 중 : centos-logos-httpd-80.5-2.el8.noarch 10/15 삭제 중 : php-common-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_6 11/15 삭제 중 : apr-1.6.3-9.el8.x86_64 12/15 스크립틀릿 실행: apr-1.6.3-9.el8.x86_64 12/15 삭제 중 : apr-util-bdb-1.6.1-6.el8.x86_64 13/15 삭제 중 : apr-util-openssl-1.6.1-6.el8.x86_64 14/15 삭제 중 : mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_6 15/15 스크립틀릿 실행: mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_6 15/15 확인 중 : mc-1:4.8.19-9.el8.x86_64 1/15 확인 중 : apr-1.6.3-9.el8.x86_64 2/15 확인 중 : apr-util-1.6.1-6.el8.x86_64 3/15 확인 중 : apr-util-bdb-1.6.1-6.el8.x86_64 4/15 확인 중 : apr-util-openssl-1.6.1-6.el8.x86_64 5/15 확인 중 : centos-logos-httpd-80.5-2.el8.noarch 6/15 확인 중 : httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 7/15 확인 중 : httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0 8/15 확인 중 : httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x8 9/15 확인 중 : mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_6 10/15 확인 중 : nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fe 11/15 확인 중 : php-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 12/15 확인 중 : php-cli-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 13/15 확인 중 : php-common-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_6 14/15 확인 중 : php-fpm-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 15/15 설치됨: mc-1:4.8.19-9.el8.x86_64 제거됨: php-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 apr-1.6.3-9.el8.x86_64 apr-util-1.6.1-6.el8.x86_64 apr-util-bdb-1.6.1-6.el8.x86_64 apr-util-openssl-1.6.1-6.el8.x86_64 centos-logos-httpd-80.5-2.el8.noarch httpd-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 httpd-filesystem-2.4.37-12.module_el8.0.0+185+5908b0db.noarch httpd-tools-2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 mod_http2-1.11.3-3.module_el8.0.0+185+5908b0db.x86_64 nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch php-cli-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 php-common-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 php-fpm-7.2.11-1.module_el8.0.0+56+d1ca79aa.x86_64 완료되었습니다! [study@localhost ~]$