728x90
728x170
rpm
RPM(Red Hat Package Manager)
- rpm 명령의 사용법은 총 5가지로 나눌 수 있다.
- 설치 및 갱신 모드
- 제거 모드
- 질의 모드
- 검증 모드
- 소스 rpm(.src.rpm)의 리빌드 모드
사용법
$ rpm [option] [패키지_파일명]
① 설치 및 갱신(Install & Upgrade) 모드
- 새로운 패키지를 설치하거나 갱신(upgrade) 할 수 있다.
주요 옵션
주요 옵션 | 설명 |
-i | - 새로운 패키지를 설치할 때 사용 - 기본적으로 이전 버전의 같은 패키지가 있을 경우 설치가 되지 않음. - --install |
-U | - 기존의 패키지를 새로운 버전의 패키지로 업그레이드할 때 사용 - 만약 설치된 패키지가 없을 경우에도 새로운 버전을 설치할 수 있음. -> 이 때는, -i 옵션과 같다고 볼 수 있음. - --upgrade |
-F | - 이전 버전이 설치되어 있는 경우에만 설치 - --freshen |
-v | 메시지를 자세히 보여줌 |
-h | - 설치 상황을 # 기호 표시해줌. - --hash |
--force | 기존 버전이 설치되었을 경우처럼 강제로 설치할 때 사용 |
--nodeps | - 의존성 관계를 무시하고 설치 - rpm 설치 시 의존성 관계에 있는 패키지가 존재하지 않을 경우 설치가 되지 않는데, 이럴 때 강제로 설치할 때 사용 |
-vv | 메시지를 아주 자세히 보여줌. |
--test | - 실제로 파일에 기록하는 작업을 제외한 대부분을 테스트할 때 사용 - 패키지를 실제 설치하기 전에 제대로 설치되는지 테스트해 볼 경우에 사용 - 보통 -vv와 같이 사용함. |
--rebuilddb | 특정한 패키지 설치 후에 rpm 패키지를 검색했으나, 나타나지 않을 때 rpm 데이터베이스를 업데이트 할 때 사용 |
사용 예
- 해당 rpm 패키지를 설치(i)함.
$ rpm -i gftp-2.0.19-fc15.i686.rmp
- 해당 패키지를 업그레이드 설치(U)해주고, 메시지와 진행 상황(v)을 # 기호로 출력(h)
$ rpm -Uvh vsftpd-2.2.2-11.el6_4.1.i686.rpm
- 현재 설치된 패키지만(F) 찾아서 업데이트하고, 메시지와 진행 상황(v)을 # 기호로 출력(h)
$ rpm -Fvh /usr/local/src/*.rpm
② 제거(Erase) 모드
- 설치된 패키지를 제거한다.
- 패키지를 제거할 때는, -e 옵션을 사용한다.
- 다른 패키지에 대한 의존성이 발생한 경우에는 제거되지 않는다.
- 의존성이 발생한 패키지를 제거하기 위해서는 다음과 같은 작업을 해야한다.
- 의존성 관련 패키지 제거
- 추가로 --nodeps 옵션 지정
- 의존성이 발생한 패키지를 제거하기 위해서는 다음과 같은 작업을 해야한다.
- 다른 패키지에 대한 의존성이 발생한 경우에는 제거되지 않는다.
주요 옵션
주요 옵션 | 설명 |
-e | - 설치된 패키지 삭제 - 의존성을 갖는 패키지가 있는 경우 삭제되지 않음. - --erase |
--nodeps | 의존성을 갖는 패키지가 존재하는 경우에도 삭제 |
--test | - 실제로 제거하지 않고 테스트를 함. - 보통 -vv 옵션과 함께 사용함. (-vv : 메시지 자세히 출력) |
--allmatches | 동일한 이름을 갖는 패키지가 중복 설치되어 있는 경우에 모두 제거 |
사용 예
- eog 라는 패키지를 제거
- 의존성이 있는 패키지가 존재할 경우 제거되지 않음.
$ rpm -e eog
- httpd라는 패키지를 제거
- 의존성이 있는 패키지가 존재할 경우에도 제거함.
$ rpm -e httpd --nodeps
③ 질의(Query) 모드
- 패키지 관련 정보를 알아내기 위해 -q 옵션을 사용
- -q 옵션만 사용하면 다음의 정보를 얻을 수 있다.
- 패키지 설치 유무
- 간단한 버전 정보
- 더욱 정확한 정보 출력을 위해서 -i, -a, -l, -d 등의 옵션과 연동해서 쓴다.
$ 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.
주요 옵션
주요 옵션 | 설명 |
-q | - 질의 시에 꼭 사용해야 하는 옵션 - 패키지를 찾으면 패키지 이름과 버전만 표시 - --query |
-i | - 설치된 패키지의 정보 출력 - -p 옵션과 같이 사용하면 rpm 패키지 파일에 대한 정보를 알 수 있음. - --info |
-l | - 패키지에서 설치한 모든 파일 정보 출력 - -p 와 함께 사용하면 rpm 패키지 파일이 설치되는 목록 파일을 알 수 있음. - --list |
-a | - 시스템에 설치된 모든 패키지 목록 출력 - --all |
-p 패키지 파일명 | - rpm 패키지의 파일에 대한 정보를 보여줌. - 이 옵션을 사용하려면 패키지 파일의 정확한 이름을 입력해야 함. |
-f 파일명 | 지정한 파일을 설치한 패키지 이름 출력 |
-c | 해당 패키지의 설정(Configuration) 파일이나 스크립트 파일 출력 |
-d | 해당 패키지의 문서 파일 출력 |
-R | - 어떤 패키지에 의존하고 있는지 보여줌. - 해당 패키지가 설치되거나, 동작 시에 필요한 패키지 목록을 보여줌. - --requires |
--changelog | 특정 패키지의 바뀐 내역을 최근부터 연대순으로 보여줌. |
--scripts | 설치 및 제거 관련 스크립트를 보여줌. |
--filesbypkg | rpm 패키지가 많을 경우, 목록으로 보이는 파일 앞에 패키지명을 붙임. |
--queryformat | - 질의의 결과를 원하는 형태로 출력할 때 씀. - C 언어의 printf() 함수의 동작 방법과 유사함. |
사용 예
- 시스템에 설치된 모든 패키지 정보 출력
$ rpm -qa
- 시스템에 설치된 모든 패키지 중에 mail이라는 문자열이 들어있는 패키지 출력
$ rpm -qa | grep mail
- sendmail 패키지에 대한 정보 출력
$ rpm -qi sendmail
- sendmail 패키지가 설치한 파일 목록 출력
$ rpm -ql sendmail
- sendmail 패키지 관련 환경 설정 파일이나 실행 데몬 스크립트 출력
$ rpm -qc sendmail
- /bin/ls 파일을 설치한 패키지 정보 출력
$ rpm -qf /bin/ls
- grub 패키지 관련 문서 및 man 페이지 파일 정보 출력
$ rpm -qd grub
- sendmail이 의존하고 있는 패키지 목록 출력
$ rpm -qR sendmail
- sendmial이 바뀐 내역을 최근부터 연대순으로 출력
$ rpm -q --changelog sendmail
- sendmail의 인스톨 및 언인스톨 관련 스크립트 출력
$ rpm -q --scripts sendmial
- 패키지 파일에 대한 정보 출력
$ rpm -qip totem-2.28.6-2.el6.i686.rpm
- 패키지 파일에서 설치되는 파일 목록 정보 출력
$ rpm -qlp totem-2.28.6-2.el6.i686.rpm
- 확인하고자 하는 패키지 파일이 많은 경우, 각 파일 앞에 패키지 이름을 덧붙여 출력
$ rpm -qp --filesbypkg *.rpm
- 패키지를 사용자가 지정한 형태로 출력
$ 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 | 모든 패키지를 검사할 때 사용 |
사용 예
- 시스템에 설치된 모든 패키지 검증
$ rpm -Va
- 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
문제 해결 전략
- 메뉴얼 또는 문제 해결을 위한 힌트를 얻기 위해 반드시 알아야 할 명령어이다.
- man rpm 명령을 사용하여 메뉴얼을 보며 문제를 해결한다.
728x90
그리드형(광고전용)
'Certificate > Linux Master' 카테고리의 다른 글
[리눅스마스터 1급 실기] 2201회 기출 문제 (0) | 2022.06.15 |
---|---|
[리눅스마스터 1급 실기] 출제 주제별 파일/디렉터리 정리 (0) | 2022.05.12 |
[리눅스마스터 1급 실기] man 명령어 사용법 (0) | 2022.05.12 |
[리눅스마스터 1급 실기] yum (0) | 2022.05.11 |
[리눅스마스터 실기] 압축 유틸리티 정리 (tar, compress, gzip, bzip2, xz, zip, gcc) (0) | 2022.05.11 |
[리눅스마스터 1급 실기] 스왑(Swap) (0) | 2022.05.10 |
[리눅스마스터 1급 실기] 모듈 (modules.dep, depmod) (0) | 2022.05.10 |
[리눅스마스터 1급 실기] 디스크 쿼터(Disk Quota) (0) | 2022.05.10 |