리눅스/CentOS

DNF 패키지 기본 관리 명령 1 - 패키지 설치(install), 제거(remove), 재설치(reinstall), 자동 제거(autoremove), 패키지 제거와 설치 동시 수행(swap)

씨실과 날실 2020. 1. 18. 09:00

[관련 게시물]

2020/01/13 - [리눅스/CentOS] - DNF 명령 - DNF 명령 연재 목록

2020/01/18 - [리눅스/CentOS] - DNF 패키지 기본 관리 명령 1 - 패키지 설치(install), 제거(remove), 재설치(reinstall), 자동 제거(autoremove), 패키지 제거와 설치 동시 수행(swap)

2020/01/19 - [리눅스/CentOS] - DNF 패키지 기본 관리 명령 2 - 패키지 정보(Info), 목록(List), 종속성 목록(Deplist), 문제점 검사(Check), 그룹 관련 명령(Group), 작업 표시(Mark), 검색(Search), 조건 검색(Provides)

2020/01/23 - [리눅스/CentOS] - DNF 패키지 버전 관리 - 패키지 업그레이드(Upgrade), 최소 업그레이드(Upgrade-Minimal), 다운그레이드(Downgrade), 업데이트 정보(Updateinfo), 업데이트 확인(Check-Update)

2020/01/27 - [리눅스/CentOS] - DNF 명령 관리 - 명령 별명(Alias), 대화식 쉘(Shell), 도움말(Help)

2020/01/30 - [리눅스/CentOS] - DNF 트랜잭션 관리 - 트랜잭션 이력(History)

2020/02/01 - [리눅스/CentOS] - DNF 저장소 관리 - 저장소 정보(Repolist), 저장소 내 임시 파일 정리(Clean), 저장소 메타 데이터 캐시 생성(Makecache), 저장소 쿼리 명령(Repoquery), 저장소 패키지 명령(Repository-Packages)

2020/02/03 - [리눅스/CentOS] - DNF 배포판 동기화 - 배포판 동기화(Distro-Sync)

2020/02/05 - [리눅스/CentOS] - DNF 모듈 관리 - 모듈 관리(Module)




안내

앞으로 상당 기간에 걸쳐 RPM 기반 리눅스 배포판을 위한 패키지 관리도구 DNF에 대해 연재하게 되었습니다.

이 연재는 레드햇 계열 리눅스를 처음 접하는 분들을 위해 위 사이트의 내용 중 초심자가 꼭 알야야 하거나 또는 알면 유용한 것들을 선별하여 내용을 작성하였습니다.

잘못된 정보가 있다면 댓글로 제보해주시면 감사하겠습니다.


연재 항목은 다음과 같습니다.

2020/01/13 - [리눅스/CentOS] - DNF 명령 - DNF 명령 연재 목록

2020/01/18 - [리눅스/CentOS] - DNF 패키지 기본 관리 명령 1 - 패키지 설치(install), 제거(remove), 재설치(reinstall), 자동 제거(autoremove), 패키지 제거와 설치 동시 수행(swap)

2020/01/19 - [리눅스/CentOS] - DNF 패키지 기본 관리 명령 2 - 패키지 정보(Info), 목록(List), 종속성 목록(Deplist), 문제점 검사(Check), 그룹 관련 명령(Group), 작업 표시(Mark), 검색(Search), 조건 검색(Provides)

2020/01/23 - [리눅스/CentOS] - DNF 패키지 버전 관리 - 패키지 업그레이드(Upgrade), 최소 업그레이드(Upgrade-Minimal), 다운그레이드(Downgrade), 업데이트 정보(Updateinfo), 업데이트 확인(Check-Update)

2020/01/27 - [리눅스/CentOS] - DNF 명령 관리 - 명령 별명(Alias), 대화식 쉘(Shell), 도움말(Help)

2020/01/30 - [리눅스/CentOS] - DNF 트랜잭션 관리 - 트랜잭션 이력(History)

2020/02/01 - [리눅스/CentOS] - DNF 저장소 관리 - 저장소 정보(Repolist), 저장소 내 임시 파일 정리(Clean), 저장소 메타 데이터 캐시 생성(Makecache), 저장소 쿼리 명령(Repoquery), 저장소 패키지 명령(Repository-Packages)

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)

2020/02/24 - [리눅스/CentOS] - 유용한 DNF 플러그인

2020/02/26 - [리눅스/CentOS] - DNF와 YUM의 차이점



dnf 명령 목록

Alias
Auto Remove
Check
Check-Update
Clean
Deplist
Distro-Sync
Distribution-Syncronization
Downgrade
Erase
Group
Groups
Help
History
Info
Install
List
Localinstall
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 ~]$ 
예를 들어 위처럼 dnf install /usr/bin/rpmsign을 실행하면 /usr/bin/rpmsign 파일을 제공하는 패키지를 설치하는 것입니다.

패키지 설치 시 약한 종속성 패키지 제외하고 설치

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] : 
--setopt=install_weak_deps=False 옵션을 사용하면 약한 의존성을 가진 패키지는 설치하지 않을 수 있습니다.

위의 경우 약한 의존성 설치 패키지인 apr-util-bdb, apr-util-openssl 이 2개가 설치되지 않았습니다.


업데이트 권고(--advisory) 패키지 설치

sudo dnf install --advisory=권고 ID \*


레드햇은 자신들의 소프트웨어의 기능을 개선하고, 버그를 수정하며, 보안을 강화하여 안정적으로 유지보수하기 위해 문제점을 개선한 일종의 패치를 공개합니다.

페도라 업데이트 시스템(Fedora Updates System) 사이트

레드햇 제품 개선 정보 페이지

https://access.redhat.com/errata


페도라 업데이트 시스템(Fedora Updates System) 사이트

https://bodhi.fedoraproject.org


레드햇 제품 개선 정보 페이지

https://access.redhat.com/errata


권고(--advisory) 패키지 설치 예시

페도라의 경우

sudo dnf install --advisory=FEDORA-2018-b7b99fe852 \*

“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 ~]$