RHEL, CentOS, Fedora 등의 redhat 계열 리눅스 OS에서는 프로그램 설치를 rpm 또는 yum 패키지 관리자를 통해 수행한다.
본 포스팅에서는 rpm 명령어에 대해 정리 해보겠다.
패키지 설치 시 -i
옵션을 사용한다.
설치 시 추가 사용가능 옵션
-v
(verbose) : 설치 시 상세 내용을 함께 출력한다.-h
(hash marks) : 설치 시 진행 정도를 #으로 표시한다.--nodeps
: 의존성을 무시하고 설치 진행 (정상 동작 하지 않을 수 있음)--replacepkgs
: 기존 설치 된 동일 패키지가 있다면 패키지를 교체(덮어쓰기)--replacefiles
: 기존 설치 된 동일 패키지가 있다면 파일을 교체--force
: 강제로 설치 진행 (정상 동작 하지 않을 수 있음)# 예시
$ rpm -ivh python2-blockdev-2.18-5.el7.x86_64.rpm
업그레이드 할 때 -U
옵션을 사용한다. (대소문자 구분)
-i
옵션과 마찬가지로 v, h 옵션과 함께 사용 가능하다.
업그레이드 시 추가 사용가능 옵션
-v
(verbose) : 업그레이드 시 상세 내용을 함께 출력한다.-h
(hash marks) : 업그레이드 시 진행 정도를 #으로 표시한다.--nodeps
: 의존성을 무시하고 업그레이드 진행 (정상 동작 하지 않을 수 있음)--replacepkgs
: 기존 설치(업그레이드 최신) 된 동일 패키지가 있다면 패키지를 교체(덮어쓰기)--replacefiles
: 기존 설치(업그레이드 최신) 된 동일 패키지가 있다면 파일을 교체--force
: 강제로 업그레이드 진행 (정상 동작 하지 않을 수 있음)--oldpackage
: 새로 설치 할 패키지가 기존 설치된 패키지보다 낮은 버전의 패키지더라도 설치(다운그레이드 할때 주로 사용)# 예시
$ rpm -Uvh --oldpackage python2-blockdev-2.18-5.el7.x86_64.rpm
패키지 삭제 시 -e
(--erase) 옵션을 사용한다.
마찬가지로 v, h 옵션과 함께 사용 가능하다.
삭제 시 추가 사용가능 옵션
-v
(verbose) : 삭제 시 상세 내용을 함께 출력한다.-h
(hash marks) : 삭제 시 진행 정도를 #으로 표시한다.--nodeps
: 의존성을 무시하고 삭제 진행 (정상 동작 하지 않을 수 있음)--test
: 실제 삭제하지 않고 삭제 했을 경우 의존성 문제가 있는지 확인 가능# 예시
$ rpm -evh --test python2-blockdev-2.18-5.el7.x86_64.rpm
특정 패키지의 정보 뿐만 아니라 시스템에 설치된 패키지들의 정보 확인이 가능하다.
-a
(all) : 시스템에 설치 된 전체 패키지 정보 확인nl
(number line) : 행 번호 출력# 예시
# 설치된 패키지 정보와 행 번호 출력
$ rpm -qa | nl
# 설치된 패키지 개수 출력
$ rpm -qa | wc -l
-i
: 설치되어 있는 패키지의 상세 정보 확인# 예시
$ rpm -qi python
-ip
: rpm 파일의 상세 정보 확인# 예시
$ rpm -qip iptables-devel-1.4.21-35.el7.x86_64.rpm
-R
: 설치 된 패키지의 의존성 확인# 예시
$ rpm -qR python2-blockdev-2.18-5.el7.x86_64.rpm
-l
: 설치된 패키지의 파일(경로) 확인# 예시
$ rpm -ql python2-blockdev-2.18-5.el7.x86_64.rpm
-f
: 특정 파일을 설치 한 패키지 명 확인# 예시
$ rpm -qf /usr/bin/vim