[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 <모듈명>** 으로 모듈을 제거할 수 있다.

카테고리:

업데이트:

댓글남기기