728x90
728x170
rpm
- Red Hat Package Manager
- rpm 명령의 사용법은 총 5가지로 나눌 수 있다.
- 설치 및 갱신
- 제거
- 질의
- 검증 모드
- 소스 rpm(.src.rpm)의 리빌드(Rebuild) 모드
사용법
rpm [option] [패키지_파일명]
① 설치 및 갱신(Install & Upgrade) 모드
- 새로운 패키지를 설치하거나 갱신(Upgrade) 할 수 있다.
주요 옵션
옵션 | 설명 |
-i | - 새로운 패키지를 설치(Install)할 때 사용 - 기본적으로 이전 버전의 같은 패키지가 있을 경우 설치가 되지 않음. - (--install) |
-U | - 기존의 패키지를 새로운 버전의 패키지로 업그레이드(Upgrade)할 때 사용 - 만약 설치된 패키지가 없을 경우에도 새로운 버전을 설치할 수 있음. ▶ 이 때는, -i 옵션과 같다고 볼 수 있음. |
-F | - 이전 버전이 설치되어 있는 경우에만 설치 - (--freshen) |
-v | 메시지를 자세히 보여줌. (Verbose) |
-h | - 설치 상황을 # 기호로 표시해줌. - (--hash) |
--force | 기존 버전이 설치되었을 경우처럼 강제로 설치할 때 사용 |
--nodeps | - 의존성 관계를 무시하고 설치 - rpm 설치 시 의존성 관계에 있는 패키지가 존재하지 않을 경우 설치가 되지 않는데, 이럴 때 강제로 설치할 때 사용 |
-vv | 메시지를 아주 자세히 보여줌. |
--test | - 실제로 파일에 기록하는 작업을 제외한 대부분을 테스트할 때 사용 - 패키지를 실제 설치하기 전에 제대로 설치되는지 테스트해 볼 경우에 사용 - 보통 -vv 와 같이 사용함. |
--rebuilddb | 특정한 패키지 설치 후에 rpm 패키지를 검색했으나, 나타나지 않을 때 rpm 데이터베이스를 업데이트 할 때 사용 |
사용 예
예 1
- 해당 rpm 패키지를 설치함
$ rpm -i gftp-2.0.19-fc15.i686.rpm
예 2
- 해당 패키지를 업그레이드 설치해주고, 메시지와 진행 상황을 # 기호로 출력
$ rpm -Uvh vsftpd-2.2.2-11.el6_4.1.i686.rpm
예 3
- 현재 설치된 패키지만 찾아서 업데이트하고, 메시지와 진행 상황을 # 기호로 출력
$ rpm -Fvh /usr/local/src/*.rpm
② 제거(Erase) 모드
- 설치된 패키지를 제거한다.
- 패키지를 제거할 때는 -e 옵션을 사용한다.
- 다른 패키지에 대한 의존성이 발생한 경우에는 제거되지 않는다.
- 의존성이 발생한 패키지를 제거하기 위해서는 다음과 같은 작업을 수행해야 한다.
- 의존성 관련 패키지 제거
- 추가로 --nodeps 옵션 지정
- 의존성이 발생한 패키지를 제거하기 위해서는 다음과 같은 작업을 수행해야 한다.
- 다른 패키지에 대한 의존성이 발생한 경우에는 제거되지 않는다.
주요 옵션
옵션 | 설명 |
-e | - 설치된 패키지 삭제(Erase) - 의존성을 갖는 패키지가 있는 경우 삭제되지 않음. - (--erase) |
--nodeps | 의존성을 갖는 패키지가 존재하는 경우에도 삭제 |
--test | - 실제로 제거하지 않고 테스트를 함. - 보통 -vv 옵션과 함께 사용 ▶ -vv : 메시지 자세히 출력 |
--allmatches | 동일한 이름을 갖는 패키지가 중복 설치되어 있는 경우에 모두 제거 |
사용 예
예 1
- eog 라는 패키지를 제거
- 의존성이 있는 패키지가 존재할 경우, 제거되지 않음.
$ rpm -e eog
예 2
- httpd 라는 패키지를 제거
- 의존성이 있는 패키지가 존재할 경우, 제거함.
$ rpm -e httpd --nodeps
③ 질의(Query) 모드
- 패키지 관련 정보를 알아내기 위해 -q 옵션을 사용한다.
- -q 옵션만 사용하면 다음의 정보를 얻을 수 있다.
- 패키지 설치 유무
- 간단한 버전 정보
- 더욱 정확한 정보 출력을 위해서 -i, -a, -l, -d 등의 옵션과 연동해서 사용한다.
주요 옵션
옵션 | 설명 |
-q | - 질의 시에 꼭 사용해야 하는 옵션 - 패키지를 찾으면 패키지 이름과 버전만 표시 - (--query) |
-i | - 설치된 패키지의 정보(Information) 출력 - -p 옵션과 사용하면 rpm 패키지 파일에 대한 정보를 알 수 있음. - (--info) |
-l | - 패키지에 설치한 모든 파일 정보 출력 - -p와 함께 사용하면 rpm 패키지 파일이 설치되는 목록 파일을 알 수 있음. - (--list) |
-a | - 시스템에 설치된 모든(All) 패키지 목록 출력 - (--all) |
-p 패키지 파일명 | - rpm 패키지의 파일에 대한 정보를 보여줌. - 이 옵션을 사용하려면 패키지 파일의 정확한 이름을 입력해야 함. |
-f 파일명 | 지정한 파일을 설치한 패키지 이름 출력 |
-c | 해당 패키지의 설정 파일이나 스크립트 파일 출력 |
-d | 해당 패키지의 문서(Document) 파일 출력 |
-R | - 어떤 패키지에 의존하고 있는지 보여줌. - 해당 패키지가 설치되거나, 동작 시에 필요한 패키지 목록을 보여줌. - (--requires) |
--changelog | 특정 패키지의 바뀐 내역을 최근부터 연대순으로 보여줌. |
--scripts | 설치 및 제거 관련 스크립트를 보여줌. |
--filesbypkg | rpm 패키지가 많을 경우, 목록으로 보이는 파일 앞에 패키지명을 붙임. |
--queryformat | - 질의의 결과를 원하는 형태로 출력할 때 씀. - C 언어의 printf() 함수의 동작 방법과 유사함. |
사용 예
예 1
- 시스템에 설치된 모든 패키지 정보 출력
$ rpm -qa
예 2
- 시스템에 설치된 모든 패키지 중에 mail 이라는 문자열이 들어있는 패키지 출력
$ rpm -qa | grep mail
예 3
- eog 패키지에 대한 정보 출력
$ rpm -qi eog
더보기
Name : eog
Version : 3.28.3
Release : 1.el7
Architecture: x86_64
Install Date: 2021년 02월 11일 (목) 오전 01시 57분 06초
Group : Unspecified
Size : 10550635
License : GPLv2+ and GFDL
Signature : RSA/SHA256, 2018년 11월 12일 (월) 오후 11시 24분 16초, Key ID 24c6a8a7f4a80eb5
Source RPM : eog-3.28.3-1.el7.src.rpm
Build Date : 2018년 11월 03일 (토) 오전 01시 05분 56초
Build Host : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : https://wiki.gnome.org/Apps/EyeOfGnome
Summary : Eye of GNOME image viewer
Description :
The Eye of GNOME image viewer (eog) is the official image viewer for the
GNOME desktop. It can view single image files in a variety of formats, as
well as large image collections.
eog is extensible through a plugin system.
예 4
- sendmail 패키지에 대한 정보 출력
$ rpm -qi sendmail
예 5
- sendmail 패키지가 설치한 파일 목록 출력
$ rpm -ql sendmail
예 6
- sendmail 패키지 관련 환경 설정 파일이나 실행 데몬 스크립트 출력
$ rpm -qc sendmail
예 7
- /bin/ls 파일을 설치한 패키지 정보 출력
$ rpm -qf /bin/ls
예 8
- grub 패키지 관련 문서 및 man 페이지 파일 정보 출력
$ rpm -qd grub
예 9
- sendmail이 의존하고 있는 패키지 목록 출력
$ rpm -qR sendmail
예 10
- sendmail의 설치 및 제거 관련 스크립트 출력
$ rpm -q --scripts sendmial
예 11
- 패키지 파일에 대한 정보 출력
$ rpm -qip totem-2.28.6-2.el6.i686.rpm
예 12
- 패키지 파일에서 설치되는 파일 목록 정보 출력
$ rpm -qlp totem-2.28.6-2.el6.i686.rpm
예 13
- 확인하고자 하는 패키지 파일이 많은 경우, 각 파일 앞에 패키지 이름을 덧붙여 출력
$ rpm -qp --filesbypkg *.rpm
예 14
- 패키지를 사용자가 지정한 형태로 출력
$ rpm -qa --queryformat "%10{size} %{name}\n"
④ 검증(Verify) 모드
- rpm 데이터베이스에 저장되어 있는 패키지의 메타 데이터(Metadata) 정보를 이용하여 변경된 정보를 찾아내는 모드
- -V(--verify) 옵션을 사용한다.
- 파일에 대한 다음의 변경 정보를 출력한다.
- 크기
- 허가권
- 소유권
- 파일 형식
검증 코드
코드 | 설명 |
S | 파일 크기(File Size) 변경 |
m | 파일 모드(Permission & File Type) 변경 |
5 | 메시지 다이제스트(Message Digest) 변경 (보통 MD5 값 변경) |
D | 장치 파일의 메이저 및 마이너 번호 불일치 |
L | 링크 파일 경로 불일치 |
U | 소유자 변경 |
G | 그룹 소유권 변경 |
T | 수정 시간(Modify Time) 변경 |
P | 권한(Capability) 변경 |
. | 테스트 통과 |
? | - 테스트를 수행하지 못했을 경우 - 예) 허가권 거부 등 |
주요 옵션
옵션 | 설명 |
-V | - 검증 시 사용하는 기본 옵션 - (--verify) |
-a | 모든(All) 패키지를 검사할 때 사용 |
사용 예
예 1
- 시스템에 설치된 모든 패키지 검증
$ rpm -Va
예 2
- vsftpd 패키지 검증
$ rpm -V vsftpd
⑤ 리빌드(Rebuild) 모드 : rpmbuild
- rpm 소스 파일인 .src.rpm 파일을 패키지 파일로 만드는 모드
- rpmbuild라는 명령어를 사용한다.
사용법
# rpmbuild [option] 소스패키지
주요 옵션
옵션 | 설명 |
--rebuild | 소스 rpm 파일을 이용해서 rpm 패키지를 생성할 때 사용 |
사용 예
예
- root가 실행했을 경우, /root/rpmbuild 디렉터리 안에 생성함.
- 만약 x86_64 기반에서 리빌드 했을 경우, rpm 파일은 /root/rpmbuild/RPMS/x86_64 디렉터리에 생성됨.
# rpmbuild --rebuild gftp-2.0.19-8.fc18.src.rpm
728x90
그리드형(광고전용)
'System Software > Linux' 카테고리의 다른 글
[리눅스 명령어] lsmod, insmod, rmmod, modprobe, modinfo, depmod (0) | 2022.03.13 |
---|---|
[리눅스 명령어] ldd (0) | 2022.03.13 |
[리눅스 명령어] ldconfig (0) | 2022.03.13 |
[리눅스 명령어] yum / yumdownloader (0) | 2022.03.13 |
[리눅스 명령어] gcc (0) | 2022.03.12 |
[리눅스 명령어] zip / unzip (0) | 2022.03.12 |
[리눅스 명령어] xz / unxz (0) | 2022.03.12 |
[리눅스 명령어] bzip2 / bunzip2 (0) | 2022.03.12 |