1. yum
rpm 기반의 시스템에서 패키지를 손쉽게 설치해주고 자동으로 업데이트를 수행하는 명령행 기반의 유틸리티이다. 하지만 최근 RHEL 8 버전부터는 새로운 패키지 관리 도구인 dnf(Dandified Yum)가 등장하면서 대체되었지만, dnf 명령의 심볼릭 링크 파일로 제공되면서 명령어 사용을 지원한다.
사용법
yum [option] [command] [패키지_파일명] |
옵션
옵션 | 설명 |
-y | 모든 질의에 yes로 자동 대답 |
-v | 자세한 정보 출력 |
2. dnf (Dandified Yum)
rpm기반의 패키지 관리 도구로 yum을 대체하기 위해 등장했다.
명령어 사용법은 yum과 유사하다.
사용법
dnf [옵션] [명령어] [패키지_파일명] |
옵션
옵션 | 설명 |
-y | 모든 질의에 ‘yes’라고 답한다. |
-v | 자세한 정보를 출력한다. |
명령어
옵션 | 설명 |
list | 전체 패키지에 대한 정보를 출력한다. (=ls) |
info | 특정 패키지에 대한 정보를 출력한다. |
update | 설치된 패키지를 업데이트 할때 사용한다. = upgrade |
install | 패키지를 설치할 때 사용한다. |
search | 문자열이 포함된 패키지를 찾아준다. |
remove | 패키지를 삭제할 때 사용한다. |
provides | 특정 파일/하위 패키지를 제공하는 패키지의 이름을 찾는다. |
history | yum 또는 dnf 명령을 사용한 작업 이력 정보를 출력한다. |
group list | 패키지 그룹에 대한 정보를 출력한다. |
group info | 해당 패키지 그룹명과 관련된 패키지의 정보를 보여준다. |
clean all | repository의 캐시를 지운다 |
예시
install
[root@rocky1 log]# dnf install httpd Last metadata expiration check: 2:20:48 ago on Tue May 9 10:04:51 2023. Dependencies resolved. ============================================ Package Arch Version Repository Size ============================================ Installing: httpd x86_64 2.4.53-7.el9_1.5 appstream 47 k Installing dependencies: apr x86_64 1.7.0-11.el9 appstream 123 k apr-util x86_64 1.6.1-20.el9 appstream 94 k apr-util-bdb x86_64 1.6.1-20.el9 appstream 13 k httpd-core x86_64 2.4.53-7.el9_1.5 appstream 1.4 M httpd-filesystem noarch 2.4.53-7.el9_1.5 appstream 14 k httpd-tools x86_64 2.4.53-7.el9_1.5 appstream 81 k Installing weak dependencies: apr-util-openssl x86_64 1.6.1-20.el9 appstream 15 k mod_http2 x86_64 1.15.19-3.el9_1.5 appstream 148 k mod_lua x86_64 2.4.53-7.el9_1.5 appstream 61 k Transaction Summary ================================================================================ Install 10 Packages Total download size: 1.9 M Installed size: 5.9 M Is this ok [y/N]: # 의존성(dependencies)패키지들도 같이 다운이 가능하다. |
list search [패키지] : 전체 패키지에 대한 정보 중 [패키지]를 찾아 출력
[root@rocky1 log]# dnf list search httpd # dnf 리스트 중에 httpd만 출력 Last metadata expiration check: 2:01:11 ago on Tue May 9 10:04:51 2023. Available Packages httpd.x86_64 2.4.53-7.el9_1.5 |
info [패키지] : [패키지]에 대한 정보 출력
[root@rocky1 log]# dnf info httpd Last metadata expiration check: 2:02:37 ago on Tue May 9 10:04:51 2023. Available Packages Name : httpd Version : 2.4.53 Release : 7.el9_1.5 Architecture : x86_64 Size : 47 k Source : httpd-2.4.53-7.el9_1.5.src.rpm Repository : appstream Summary : Apache HTTP Server URL : https://httpd.apache.org/ License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server. |
update [패키지] : [패키지] 업데이트
[root@rocky1 log]# dnf update kernel Last metadata expiration check: 2:09:14 ago on Tue May 9 10:04:51 2023. Dependencies resolved. ============================================ Package Arch Version Repository Size ============================================ Installing: kernel x86_64 5.14.0-162.23.1.el9_1 baseos 1.9 M Installing dependencies: kernel-core x86_64 5.14.0-162.23.1.el9_1 baseos 45 M kernel-modules x86_64 5.14.0-162.23.1.el9_1 baseos 33 M Transaction Summary ============================================ Install 3 Packages Total download size: 81 M Installed size: 114 M Is this ok [y/N]: # 업데이트가 없다면 nothing to do 란 메시지가 나온다. |
group info [패키지] : [패키지]그룹에 관련된 패키지들의 정보를 출력
group install [패키지] : [패키지]그룹에 관련된 패키지들을 설치
[root@rocky1 tmp]# dnf group info "System Tools" [root@rocky1 log]# dnf group info "System Tools" Last metadata expiration check: 2:29:37 ago on Tue May 9 10:04:51 2023. Group: System Tools Description: This group is a collection of various tools for the system, such as the client for connecting to SMB shares and tools to monitor network traffic. Default Packages: NetworkManager-libreswan . . . Optional Packages: PackageKit-command-not-found initscripts-service . . . [root@rocky1 tmp]# dnf install "@System Tools" |
명령어 group을 사용해도 되지만, group을 생략하고 파일명 앞에 @를 붙여서 그룹으로 인식하게 만들 수 있다.
provides [파일] : [파일]을 제공하는 패키지들을 출력
[root@rocky1 log]# dnf provides /bin/bash #/bin/bash를 제공하는 패키지들 Last metadata expiration check: 1:47:38 ago on Tue May 9 10:16:35 2023. bash-5.1.8-6.el9_1.x86_64 : The GNU Bourne Again shell Repo : @System Matched from: Provide : /bin/bash bash-5.1.8-6.el9_1.x86_64 : The GNU Bourne Again shell Repo : baseos Matched from: Provide : /bin/bash |
history undo [작업 번호] : history에서 확인가능한 [작업 번호]작업을 취소
[root@rocky1 log]# dnf history ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------------------------ 8 | group install System Tools|2023-05-09 11:39 |Install | 17 EE 7 | update |2023-05-09 11:28 | I, U | 144 6 | install -y nginx |2023-05-09 11:25 | Install| 4 5 | install neovim |2023-04-25 10:58 | Install| 10 < 4 | install epel-release |2023-04-25 10:52 | Install| 1 >E 3 | install git |2023-04-24 15:25 | Install| 7 2 | install zsh | 2023-04-24 15:25| Install| 1 < 1 | | 2023-04-24 12:16| Install| 1189 >E [root@rocky1 log]# dnf history undo 8 잘못 삭제하거나 설치한 패키지들을 다시 설치하거나 삭제할 수 있다. Last metadata expiration check: 0:57:22 ago on 2023년 05월 09일 (화) 오전 10시 48분 55초. Dependencies resolved. ===================================================== Package Architecture Version Repository Size ===================================================== Removing: NetworkManager-libreswan x86_64 1.2.14-1.el9.3 @appstream 408 k cifs-utils x86_64 6.14-1.el9 @baseos 220 k libreswan x86_64 4.6-3.el9 @appstream 4.8 M nmap x86_64 3:7.91-10.el9 @appstream 24 M Transaction Summary ===================================================== Remove 16 Packages Freed space: 39 M Is this ok [y/N]: 다시 되돌릴지 물어본다. |
dnf.log 패키지 다운로드 로그
[root@rocky1 log]# dv /var/log [root@rocky1 log]# vi dnf.log안에서도 히스토리를 확인할 수 있지만 보기 어렵고 별다른 기능이없어 [root@rocky1 log]# dnf history를 쓴다. |
2.1. dnf module 종류
DNF 패키지 관리자의 기능으로, 이를 통해 사용자는 다양한 버전의 패키지와 종속성을 보다 모듈적이고 유연한 방식으로 관리할 수 있다. dnf는 지정된 기본 버전 패키지만을 설치하지만 모듈을 이용해 패키지의 다른 버전을 쉽게 설치하고 관리할 수 있다.
옵션
옵션 | 설명 |
list | 모듈의 목록을 보여준다. |
info | 모듈의 정보를 출력해준다 |
enable | 특정 버전의 모듈을 활성화한다. |
reset | 모듈을 기본상태로 되돌린다. |
install | 모듈을 설치한다 |
remove | 모듈을 삭제한다 |
예시
dnf module list
[root@rocky2 ~]# dnf module list #설치 가능한 모듈의 버전 리스트 (...) rhel-AppStream Name Stream Profiles Summary maven 3.8 common [d] Java project management and project comprehension tool nodejs 18 common [d], Javascript runtime development, minimal, s2i php 8.1 common [d], PHP scripting language devel, minimal ruby 3.1 common [d] An interpreter of object-oriented scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled |
dnf module 버전으로 install
[root@rocky2 ~]# dnf module install nodejs:18/common #nodejs 18번 버전으로 다운을 받는다. (...) Dependencies resolved. ================================================================================ Package Architecture Version Repository Size ================================================================================ Installing group/module packages: nodejs x86_64 1:18.7.0-1.module+el9.1.0+16284+4fdefb2f rhel-AppStream 12 M npm x86_64 1:8.15.0-1.18.7.0.1.module+el9.1.0+16284+4fdefb2f rhel-AppStream 2.2 M Installing weak dependencies: nodejs-docs noarch 1:18.7.0-1.module+el9.1.0+16284+4fdefb2f rhel-AppStream 7.2 M nodejs-full-i18n x86_64 1:18.7.0-1.module+el9.1.0+16284+4fdefb2f rhel-AppStream 8.2 M Installing module profiles: nodejs/common Enabling module streams: nodejs 18 Transaction Summary ================================================================================ Install 4 Packages Total download size: 30 M Installed size: 155 M Is this ok [y/N]: y (...) |
nodejs 18 리스트
[root@rocky2 ~]# dnf module list nodejs 18 마지막 메타자료 만료확인 2:00:28 이전인: 2023년 05월 09일 (화) 오후 02시 01분 00초. Rocky Linux 9 - AppStream Name Stream Profiles Summary nodejs 18 common [d], development, minimal, s2i Javascript runtime 힌트 : [d] efault, [e] nabled, [x] disabled, [i] stalled |
nodejs 18 enable
[root@rocky2 ~]# dnf module enable nodejs:18 마지막 메타자료 만료확인 2:00:41 이전인: 2023년 05월 09일 (화) 오후 02시 01분 00초. 종속성이 해결되었습니다. ================================================================================ 꾸러미 구조 버전 레포지터리 크기 ================================================================================ 모듈 스트림 활성화: nodejs 18 연결 요약 ================================================================================ 진행할까요? [y/N]: y 완료되었습니다! |
nodejs 18 활성화 확인
[root@rocky2 ~]# dnf module list nodejs:18 마지막 메타자료 만료확인 2:00:56 이전인: 2023년 05월 09일 (화) 오후 02시 01분 00초. Rocky Linux 9 - AppStream Name Stream Profiles Summary nodejs 18 [e] common [d], development, minimal, s2i Javascript runtime #nodejs 18 버전 enable 힌트 : [d] efault, [e] nabled, [x] disabled, [i] stalled |
모듈의 정보 출력
[root@rocky2 ~]# dnf module info nodejs 18 Last metadata expiration check: 2:34:34 ago on Tue May 9 13:29:20 2023. Unable to resolve argument 18 Name : nodejs Stream : 18 [e] [a] Version : 9010020221206172252 Context : 90e40c60 Architecture : x86_64 Profiles : common [d], development, minimal, s2i Default profiles : common Repo : appstream Summary : Javascript runtime Description : Node.js is a platform built on Chrome' : # 너무 길어 생략 Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive |
'리눅스-기초명령어 > 패키지 관리' 카테고리의 다른 글
iso mount (1) | 2023.09.01 |
---|---|
VM으로 repository 서버 구축 (1) | 2023.09.01 |
repository (0) | 2023.09.01 |
rpm(Red Hat Package Manager) (0) | 2023.09.01 |