[관련 게시물]
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 명령줄 옵션 연재 목록
안내
앞으로 상당 기간에 걸쳐 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 옵션 목록(총 53개)
-4
-6
--advisory=<advisory>, --advisories=<advisory>
--allowerasing
--assumeno
-b, --best
--bugfix
--bz=<bugzilla>, --bzs=<bugzilla>
-C, --cacheonly
--color=<color>
--comment=<comment>
-c <config file>, --config=<config file>
--cve=<cves>, --cves=<cves>
-d <debug level>, --debuglevel=<debug level>
--debugsolver
--disableexcludes=[all|main|<repoid>], --disableexcludepkgs=[all|main|<repoid>]
--disable, --set-disabled
--disableplugin=<plugin names>
--disablerepo=<repoid>
--downloaddir=<path>, --destdir=<path>
--downloadonly
-e <error level>, --errorlevel=<error level>
--enable, --set-enabled
--enableplugin=<plugin names>
--enablerepo=<repoid>
--enhancement
-x <package-file-spec>, --exclude=<package-file-spec>
--excludepkgs=<package-file-spec>
--forcearch=<arch>
-h, --help, --help-cmd
--installroot=<path>
--newpackage
--noautoremove
--nobest
--nodocs
--nogpgcheck
--noplugins
--obsoletes
-q, --quiet
-R <minutes>, --randomwait=<minutes>
--refresh
--releasever=<release>
--repofrompath <repo>,<path/url>
--repo=<repoid>, --repoid=<repoid>
--rpmverbosity=<name>
--sec-severity=<severity>, --secseverity=<severity>
--security
--setopt=<option>=<value>
--skip-broken
--showduplicates
-v, --verbose
--version
-y, --assumeyes
DNF 명령줄 분류별 옵션
명령줄 옵션 분류별 전체 항목
3. 부가 기능
메타 데이터 만료
--refresh
최대 명령 대기 시간 설정
-R <minutes>, --randomwait=<minutes>
시스템 캐시 사용
-C, --cacheonly
터미널 내 색상 사용
--color=<color>
트랜잭션 주석 추가
--comment=<comment>
IP
-6
부가 기능
2020/02/15 - [리눅스/CentOS] - DNF 분류별 명령줄 옵션 - [03] 부가 기능
메타 데이터 만료(= 메타 데이터 갱신)
--refresh
사용 빈도 : 높음
명령을 실행하기 전에 기존의 메타 데이터를 만료된 것으로 설정하고 새로 갱신 정보를 받아옵니다.
[study@localhost ~]$ dnf list httpd 마지막 메타 데이터 만료 확인 : 0:07:01 전에 2020년 02월 11일 (화) 오후 01시 01분 56초. 사용 가능한 패키지 httpd.x86_64 2.4.37-16.module_el8.1.0+256+ae790463 AppStream [study@localhost ~]$
일반적으로 명령을 실행하면 위와 같이 마지막 메타 데이터 만료를 확인했는지 표시됩니다.
[study@localhost ~]$ dnf repolist enabled -v | grep 'Repo-name\|만료' 마지막 메타 데이터 만료 확인 : 0:07:15 전에 2020년 02월 11일 (화) 오후 01시 01분 56초. Repo-name : CentOS-8 - AppStream Repo 만료 : 172,800 초 (마지막 : 2020년 02월 11일 (화) 오후 01시 01분 51초) Repo-name : CentOS-8 - Base Repo 만료 : 172,800 초 (마지막 : 2020년 02월 11일 (화) 오후 01시 01분 53초) Repo-name : CentOS-8 - Extras Repo 만료 : 172,800 초 (마지막 : 2020년 02월 11일 (화) 오후 01시 01분 56초) [study@localhost ~]$
예를 들어 활성 저장소의 메타 데이터 만료 관련 정보는 위와 같이 확인할 수 있습니다.
[study@localhost ~]$ dnf repolist enabled -v | grep 'Repo-name\|expire' Repo-name : CentOS-8 - AppStream Repo-expire : 172,800 second(s) (last: Tue 11 Feb 2020 11 01:02:51 KST) Repo-name : CentOS-8 - Base Repo-expire : 172,800 second(s) (last: Tue 11 Feb 2020 11 01:02:53 KST) Repo-name : CentOS-8 - Extras Repo-expire : 172,800 second(s) (last: Tue 11 Feb 2020 01:02:56 KST) [study@localhost ~]$
시스템 사용 언어가 영어로 설정되어 있다면 위와 같이 표시될 것입니다.
[study@localhost ~]$ dnf --refresh list httpd CentOS-8 - AppStream 1.8 kB/s | 4.3 kB 00:02 CentOS-8 - Base 2.2 kB/s | 3.8 kB 00:01 CentOS-8 - Extras 574 B/s | 1.5 kB 00:02 사용 가능한 패키지 httpd.x86_64 2.4.37-16.module_el8.1.0+256+ae790463 AppStream [study@localhost ~]$
--refresh 옵션을 사용하면 메타 데이터를 새로 갱신합니다.
최대 명령 대기 시간 설정
-R <minutes>, --randomwait=<minutes>
사용 빈도 : 낮음
최대 명령 대기 시간을 설정합니다.
[study@localhost ~]$ sudo dnf -R 3 upgrade
시스템 캐시 사용
-C, --cacheonly
시스템 캐시에서 완전히 실행하고 캐시를 업데이트하지 않고 만료된 경우에도 사용합니다.
[study@localhost ~]$ dnf -C search dnf 마지막 메타 데이터 만료 확인 : 52 days, 0:38:29 전에 2019년 12월 21일 (토) 오후 01시 12분 43초. ========================== 이름 정확히 일치 함 : dnf =========================== dnf.noarch : Package manager dnf.noarch : Package manager ========================== 요약 & 이름 일치 함 : dnf =========================== microdnf.x86_64 : Micro DNF dnf-plugins-core.noarch : Core Plugins for DNF python3-dnf.noarch : Python 3 interface to DNF dnf-plugins-core.noarch : Core Plugins for DNF python3-dnf.noarch : Python 3 interface to DNF dnf-plugin-spacewalk.noarch : DNF plugin for Spacewalk python3-dnf-plugins-core.noarch : Core Plugins for DNF dnf-plugin-spacewalk.noarch : DNF plugin for Spacewalk python3-dnf-plugins-core.noarch : Core Plugins for DNF dnf-data.noarch : Common data and configuration files for DNF dnf-data.noarch : Common data and configuration files for DNF python3-dnf-plugin-spacewalk.noarch : DNF plugin for Spacewalk python3-dnf-plugin-spacewalk.noarch : DNF plugin for Spacewalk python3-libdnf.x86_64 : Python 3 bindings for the libdnf library. python3-libdnf.i686 : Python 3 bindings for the libdnf library. python3-libdnf.x86_64 : Python 3 bindings for the libdnf library. python3-dnf-plugin-versionlock.noarch : Version Lock Plugin for DNF dnf-plugin-subscription-manager.i686 : Subscription Manager plugins for DNF dnf-plugin-subscription-manager.x86_64 : Subscription Manager plugins for DNF ============================== 이름 일치 함 : dnf ============================== libdnf.x86_64 : Library providing simplified C and Python API to libsolv libdnf.i686 : Library providing simplified C and Python API to libsolv libdnf.x86_64 : Library providing simplified C and Python API to libsolv dnf-utils.noarch : Yum-utils CLI compatibility layer dnf-automatic.noarch : Package manager - automated upgrades [study@localhost ~]$
DNF는 각 사용자마다 별도의 캐시를 사용합니다.
터미널 내 색상 사용
--color=<color>
사용 빈도 : 낮음
터미널 출력에 색상 사용 여부를 제어합니다.
dnf --color=never list위 옵션을 사용하면 색깔 표시가 나타나지 않습니다.
터미널에 표시되는 색깔별로 해당 패키지 등에 대한 특정 정보를 알려줍니다.
[study@localhost ~]$ [study@localhost ~]$ dnf list --available 마지막 메타 데이터 만료 확인 : 0:18:33 전에 2020년 02월 11일 (화) 오후 02시 06분 36초. 사용 가능한 패키지 - 중략 - webrtc-audio-processing.i686 0.3-8.el8 AppStream wget.x86_64 1.19.5-8.el8_1.1 AppStream wireshark.x86_64 1:2.6.2-11.el8 AppStream - 중략 - [study@localhost ~]$
wget 패키지가 파란색으로 표시되었다고 가정합시다. 문자가 파란색으로 표시된 것은 업그레이드가 가능하다는 뜻입니다. 해당 패키지의 정보를 확인해봅시다.
[study@localhost ~]$ dnf info wget 마지막 메타 데이터 만료 확인 : 0:46:33 전에 2020년 02월 11일 (화) 오후 02시 06분 36초. 설치된 패키지 이름 : wget 버전 : 1.19.5 릴리즈 : 7.el8_0.1 아키텍처 : x86_64 크기 : 2.8 M 소스 : wget-1.19.5-7.el8_0.1.src.rpm 리포지터리 : @System 레포에서 : AppStream 요약 : A utility for retrieving files using the HTTP or FTP protocols URL : http://www.gnu.org/software/wget/ 라이선스 : GPLv3+ 설명 : GNU Wget is a file retrieval utility which can use either the : HTTP or FTP protocols. Wget features include the ability to work : in the background while you are logged out, recursive retrieval : of directories, file name wildcard matching, remote file : timestamp storage and comparison, use of Rest with FTP servers : and Range with HTTP servers to retrieve files over slow or : unstable connections, support for Proxy servers, and : configurability. 사용 가능한 패키지 이름 : wget 버전 : 1.19.5 릴리즈 : 8.el8_1.1 아키텍처 : x86_64 크기 : 735 k 소스 : wget-1.19.5-8.el8_1.1.src.rpm 리포지터리 : AppStream 요약 : A utility for retrieving files using the HTTP or FTP protocols URL : http://www.gnu.org/software/wget/ 라이선스 : GPLv3+ 설명 : GNU Wget is a file retrieval utility which can use either the : HTTP or FTP protocols. Wget features include the ability to work : in the background while you are logged out, recursive retrieval : of directories, file name wildcard matching, remote file : timestamp storage and comparison, use of Rest with FTP servers : and Range with HTTP servers to retrieve files over slow or : unstable connections, support for Proxy servers, and : configurability. [study@localhost ~]$
버전 정보는 같지만 릴리스 정보가 다르군요. 시스템에 설치된 wget은 릴리스 정보가 7.el8_0.1인데 저장소 내 패키지의 릴리스 정보는 8.el8_1.1입니다. 업그레이드가 가능합니다.
업그레이드를 진행해봅시다.
[study@localhost ~]$ sudo dnf upgrade wget [sudo] study의 암호: CentOS-8 - AppStream 1.6 kB/s | 4.3 kB 00:02 CentOS-8 - Base 1.4 kB/s | 3.8 kB 00:02 CentOS-8 - Extras 339 B/s | 1.5 kB 00:04 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Upgrading: wget x86_64 1.19.5-8.el8_1.1 AppStream 735 k 거래 요약 ================================================================================ 업그레이드 1 꾸러미 총 다운로드 크기 : 735 k 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: wget-1.19.5-8.el8_1.1.x86_64.rpm 636 kB/s | 735 kB 00:01 -------------------------------------------------------------------------------- 합계 284 kB/s | 735 kB 00:02 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Upgrading : wget-1.19.5-8.el8_1.1.x86_64 1/2 스크립틀릿 실행: wget-1.19.5-8.el8_1.1.x86_64 1/2 스크립틀릿 실행: wget-1.19.5-7.el8_0.1.x86_64 2/2 정리 : wget-1.19.5-7.el8_0.1.x86_64 2/2 스크립틀릿 실행: wget-1.19.5-7.el8_0.1.x86_64 2/2 확인 중 : wget-1.19.5-8.el8_1.1.x86_64 1/2 확인 중 : wget-1.19.5-7.el8_0.1.x86_64 2/2 업그레이드 됨: wget-1.19.5-8.el8_1.1.x86_64 완료되었습니다! [study@localhost ~]$
참고
DNF / YUM 패키지 관리자의 터미널 내 색깔별 정보는 추후 글을 적도록 하겠습니다.
트랜잭션 주석 추가
--comment=<comment>
사용 빈도 : 낮음
트랜잭션 이력(history)에 주석을 추가합니다.
사용 빈도는 낮긴 합니다만 자신이 서버 관리자라거나 리눅스 시스템을 보다 안전하게 관리하고 싶으신 분들은 이 기능을 자주 활용하시기 바랍니다.
기록은 사용자의 기억을 확장해줍니다.
[study@localhost ~]$ sudo dnf install mc --comment='미드나잇 커맨더 설치' 마지막 메타 데이터 만료 확인 : 0:00:24 전에 2020년 02월 11일 (화) 오후 03시 18분 58초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 아키텍처 버전 리포지토리 크기 ================================================================================ Installing: mc x86_64 1:4.8.19-9.el8 AppStream 1.9 M 거래 요약 ================================================================================ 설치 1 꾸러미 총 다운로드 크기 : 1.9 M 설치 크기 : 6.8 M 이게 괜찮습니까 [y / N] : y 패키지 다운로드중: mc-4.8.19-9.el8.x86_64.rpm 1.5 MB/s | 1.9 MB 00:01 -------------------------------------------------------------------------------- 합계 707 kB/s | 1.9 MB 00:02 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 Installing : mc-1:4.8.19-9.el8.x86_64 1/1 스크립틀릿 실행: mc-1:4.8.19-9.el8.x86_64 1/1 확인 중 : mc-1:4.8.19-9.el8.x86_64 1/1 설치됨: mc-1:4.8.19-9.el8.x86_64 완료되었습니다! [study@localhost ~]$
주석(코멘트) 옵션은 내용이 길어지는 것이 보통이므로 명령의 끝자락에 붙이는 것이 보통입니다.
주석에 빈 공백이 들어가는 경우 따옴표로 감싸주어야 합니다.
[study@localhost ~]$ sudo dnf install mc --comment=미드나잇 커맨더 설치 [sudo] study의 암호: CentOS-8 - AppStream 1.6 kB/s | 4.3 kB 00:02 CentOS-8 - AppStream 1.9 MB/s | 6.4 MB 00:03 CentOS-8 - Base 1.4 kB/s | 3.8 kB 00:02 CentOS-8 - Base 728 kB/s | 5.0 MB 00:06 CentOS-8 - Extras 515 B/s | 1.5 kB 00:03 CentOS-8 - Extras 533 B/s | 2.1 kB 00:04 인수와 일치하는 항목 없음 : 커맨더 인수와 일치하는 항목 없음 : 설치 오류: 경기를 찾을 수 없습니다. [study@localhost ~]$
만약 주석에 공백이 있는데 따옴표로 감싸주지 않으면 위처럼 오류가 발생합니다.
[study@localhost ~]$ sudo dnf history ID | 명령행 | 날짜와 시간 | 행위) | 변경됨 ------------------------------------------------------------------------------- 6 | install mc --comment=미 | 2020-02-11 15:19 | Install | 1 5 | install elfutils-libelf- | 2019-12-20 13:22 | Install | 2 4 | install make gcc perl ke | 2019-12-20 13:06 | Install | 102 3 | install gnome-tweaks | 2019-12-17 15:39 | Install | 2 2 | update | 2019-12-17 11:53 | I, U | 174 EE 1 | | 2019-12-01 17:16 | Install | 1441 EE [study@localhost ~]$
드랜잭션 히스토리를 확인해보면 위처럼 나옵니다.
[study@localhost ~]$ sudo dnf history info 6 [sudo] study의 암호: 거래 ID : 6 시작 시간 : 2020년 02월 11일 (화) 오후 03시 19분 32초 rpmdb 시작 : 1538:46a91964ed4ef94951e27ea08f1da5d97f8dbe8b 종료 시간 : 2020년 02월 11일 (화) 오후 03시 19분 36초 (4 초) rpmdb 끝 : 1539:2c36a4215d86ae8deb7fbff114c9a7e3a2775a31 사용자 : study잘린 부분을 제대로 확인하려면 위처럼 하위 명령을 사용하여 확인할 수 있습니다.리턴 코드 : 성공 릴리스 자 : 8 명령 줄 : install mc --comment=미드나잇 커맨더 설치 변경된 패키지 : 설치 mc-1:4.8.19-9.el8.x86_64 @AppStream [study@localhost ~]$
IP
-4
IPv4 주소로만 해결합니다.
-6
IPv6 주소로만 해결합니다.'리눅스 > CentOS' 카테고리의 다른 글
유용한 DNF 플러그인 (0) | 2020.02.24 |
---|---|
DNF 저장소 옵션(Repo Options)과 저장소 변수(Repo Variables) (0) | 2020.02.22 |
DNF 환경 설정[구성] 파일(dnf.conf) [main] 섹션 옵션 (0) | 2020.02.20 |
DNF 분류별 명령줄 옵션 - [04] 정보 확인 (0) | 2020.02.17 |
DNF 분류별 명령줄 옵션 - [02] 환경 설정 (0) | 2020.02.13 |
DNF 명령줄 분류별 옵션 - [01] 패키지 관리 (0) | 2020.02.11 |
DNF 명령줄 옵션 연재 목록 (0) | 2020.02.09 |
DNF 모듈 관리 - 모듈 관리(Module) (0) | 2020.02.05 |