[CentOS 8] 패키지 관리
1. 패키지 관리 도구
1) RPM
rpm은 yum과 dnf이전에 사용되었던 패키지 관리자이다. rpm파일이 메모리에 있어야 설치할 수 있으며, 종속성을 해결해주지 못한다.
현재는 rpm파일을 관리하기 위한 도구로 많이 사용된다.
주요 옵션
설치, 업그레이드, 삭제 옵션이다.
옵션 | 설명 |
---|---|
-i | 패키지를 설치한다. |
–replacefiles | 이미 설치된 다른 패키지의 파일을 덮어쓰면서라도 패키지를 강제로 설치한다. |
–replacepkgs | 패키지가 이미 설치되어 있어도 다시 설치한다. |
-U | 패키지를 업그레이드 한다. |
-v | 설치 시 상세 내용을 표시한다, |
-h | 설치 시 progress를 표시한다. |
-e | 패키지를 삭제한다. |
패키지 정보 검색 옵션이다. -q뒤에 붙는 옵션들이다.
옵션 | 설명 |
---|---|
-a | 설치된 전체 패키지 목록을 출력한다. |
-f <파일명>파일명> | 해당 파일이 포함된 패키지를 출력한다. |
-p |
해당 패키지의 상세정보를 출력한다. |
-i | 자세한 정보를 출력한다. |
-R | 의존하는 패키지 목록을 출력한다. |
-l | 패키지가 설치한 파일 목록을 출력한다. |
-s | 패키지가 설치한 파일들의 상태를 출력한다. |
2) DNF
CentOS8에서는 yum에서 업그레이드된 dnf를 사용한다. 사용법은 yum과 거의 비슷한것 같다.
패키지 설치
**dnf install <패키지명>**으로 패키지를 설치한다. 의존성이 있는 패키지들을 함께 설치해준다.패키지명>
패키지 업데이트
dnf check-update 로 업데이트가 가능한 패키지 목록을 출력한다. 이 명령을 실행하기 전에 dnf clean all 명령을 통해 기존 dnf관련 임시 파일을 삭제하는 것이 좋다.
**dnf update <패키지명>** 으로 패키지를 업데이트한다. 패키지명을 명시하지 않으면 모든 패키지를 업데이트한다.패키지명>
패키지 삭제
**dnf remove <패키지명>** 으로 패키지를 삭제한다. 의존성이 있는 패키지들을 함께 삭제할 것인지 물어본다.패키지명>
remove 대신 erase를 사용해도 된다.
패키지 목록/정보 확인
dnf list 는 모든 저장소에서 설치 가능한 모든 패키지를 출력한다.
dnf list available 는 활성화된 저장소에서 설치 가능한 모든 패키지를 출력한다.
**dnf list installed **는 설치된 모든 패키지를 출력한다.
**dnf list installed <패키지명>** 은 해당 패키지가 설치되어 있는지 확인한다.패키지명>
dnf list updates 는 업데이트 가능한 패키지를 출력한다.
**dnf info <패키지명>** 은 패키지의 상세정보를 출력한다.패키지명>
2. 저장소 (Repository)
/etc/yum.repos.d/ 에 dnf 혹은 yum으로 패키지를 검색할 때 접속하는 저장소 정보를 담은 .repo 파일들이 있다.
dnf repolist 명령어로 활성화된 저장소만 출력할 수 있다.
다음은 CentOS-AppStream.repo 파일이다.
1 # CentOS-AppStream.repo
2 #
3 # The mirror system uses the connecting IP address of the client and the
4 # update status of each mirror to pick mirrors that are updated to and
5 # geographically close to the client. You should use this for CentOS updates
6 # unless you are manually picking other mirrors.
7 #
8 # If the mirrorlist= does not work for you, as a fall back you can try the
9 # remarked out baseurl= line instead.
10 #
11 #
12
13 [AppStream]
14 name=CentOS-$releasever - AppStream
15 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra
16 #baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/
17 gpgcheck=1
18 enabled=1
19 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
20
name : 저장소의 이름이다.
baseurl : 패키지가 검색될 URL이다.
mirrorlist : 미러 저장소 URL이다. 이 mirrorlist의 URL에는 여러 개의 저장소가 연결되어 있다.
gpgcheck : GPG서명 사용 여부이다. 1이면 사용, 0이면 미사용이다. 1이라면 gpgkey 항목을 반드시 설정해야 한다.
gpgkey : ASCII GPG 키가 들어있는 저장소의 URL이다.
enabled : 이 저장소를 사용 여부이다. 1이면 사용, 0이면 미사용이다. 생략한다면 기본값은 1이다.
3. DNF 모듈
모듈은 패키지와 패키지가 의존하는 전체 패키지 묶음이다.
하나의 모듈은 여러개의 스트림을 가지며, 각 스트림들은 독립적으로 업데이트 된다. 즉, 한 패키지의 여러 버전을 설치할 수 있다.
dnf module list 로 전체 모듈 목록을 볼 수 있다.
CentOS-8 - AppStream
Name Stream Profiles
ant 1.10 [d] common [d]
httpd 2.4 [d] common [d], devel, minimal
idm DL1 common [d], adtrust, client, dns
perl 5.24 common [d], minimal
perl 5.26 [d] common [d], minimal
[d]는 default, [e]는 enabled, [x]는 disabled, [i]는 installed의 약자이다.
Name : 모듈의 이름이다.
Stream : 스트림이다.
Profile : 프로파일은 특정 사용 사례로, 서버용, 클라이언트용, 개발용, 최소설치 등이 있다.
**dnf module info <모듈명>** 으로 모듈의 상세 정보를 출력할 수 있다.모듈명>
**dnf module enable <모듈명>:<스트림>** 으로 모듈의 특정 스트림을 활성화할 수 있다.스트림>모듈명>
**dnf module install <모듈명>:<스트림>/<프로파일>** 로 모듈을 설치할 수 있다. 스트림과 프로파일을 생략하면 default값으로 설치된다.프로파일>스트림>모듈명>
**dnf module remove <모듈명>** 으로 모듈을 제거할 수 있다.모듈명>
댓글남기기