이 름
rpm - 레 드 햇 패 키 지 관 리 자
개 요
rpm [옵 션 들 ]
설 명
rpm 은 강 력 한 패 키 지 관 리 자 로 서 각 각 의 소 프 트 웨 어 패 키 지 를 만 들 고 설 치 하 고 질 문 하 고 검 증 하 고 갱 신 하 며 제 거 할 수 있 다 . 패 키 지 란 설 치 할 화 일 들 과 이 름 , 버 전 , 설 명 등 을 포 함 하 는 패 키 지 정 보 를 지 닌 저 장 화 일 이 다 .
기 본 적 인 7 가 지 동 작 모 드 가 있 으 며 각 각 다 른 옵 션 들 을 갖 는 다 . 설 치 , 질 문 , 검 증 , 서 명 확 인 , 제 거 , 제 작 , 그 리 고 데 이 터 베 이 스 재 건 설 이 바 로 그 것 이 다 .
설
치 모 드 :
rpm -i [설 치 옵 션 ] <패
키 지 화 일 >+
질 문 모 드 :
rpm -q [질 문 옵 션 ]
검 증 모 드 :
rpm -V|-y|--verify [검 증 옵 션
]
서 명 확 인 모 드 :
rpm --checksig <패 키 지 화
일 >+
제 거 모 드 :
rpm -e <패 키 지 명 >+
제 작 모 드 :
rpm -bO [제 작 옵 션 ]
<패 키 지 스 펙
>+
일 반 적 옵 션
다 음 옵 션 들 은 각 기 다 른 모 드 에 서 도 사 용 가 능 하 다 .
-vv |
아 주 자 세 하 게 디 버 깅 정 보 를 출 력 한 다 . |
--keep-temps
임 시 화 일 을 지 우 지 않 는 다 . (/tmp/rpm-*). rpm 을 디 버 깅 할 때 만 주 로 사 용 한 다 .
--quiet
최 대 한 출 력 을 자 제 하 며 오 로 지 에 러 메 세 지 만 출 력 한 다 .
--help |
좀 더 긴 사 용 법 설 명 서 를 출 력 한 다 . |
--version
사 용 중 인 rpm 의 버 전 을 한 줄 로 표 시 한 다 .
--rcfile <화 일 >
/etc/rpmrc 또 는 $HOME/.rpmrc 을 사 용 하 지 않 고 <file> 을 사 용 하 도 록 한 다 .
--root <dir>
모 든 동 작 에 대 하 여 최 상 위 디 렉 토 리 를 주 어 진 디 렉 토 리 로 설 정 하 고 작 업 한 다 . 예 를 들 어 설 치 시 주 어 진 디 렉 토 리 를 / 라 고 생 각 하 고 그 것 을 기 준 으 로 설 치 해 나 간 다 .
설 치 옵 션
rpm 설 치 명 령 의 일 반 적 인 형 태 는 다 음 과 같 다 .
rpm -i
[설 치 옵 션 들 ] <패
키 지 화 일 >+
--force
--replacepkgs, --replacefiles, --oldpackage 를 모 두 사 용 한 것 과 같 다 .
-h, --hash
패 키 지 를 풀 때 해 쉬 마 크 (#)를 표 시 한 다 . 총 갯 수 는 50 개 이 다 . 좀 더 나 은 출 력 을 위 해 서 는 -v 를 함 께 사 용 하 라 .
--oldpackage
새 로 운 패 키 지 를 지 우 고 더 예 전 패 키 지 로 교 체 할 때 사 용 한 다 .
--percent
패 키 지 화 일 을 풀 때 퍼 센 트 표 시 를 한 다 . 다 른 도 구 로 부 터 rpm 을 이 용 할 때 사 용 할 목 적 으 로 만 들 어 졌 다 .
--replacefiles
이 미 설 치 된 다 른 패 키 지 의 화 일 을 덮 어 쓰 면 서 라 도 패 키 지 를 강 제 로 설 치 한 다 .
--replacepkgs
패 키 지 가 이 미 설 치 되 어 있 다 하 더 라 도 다 시 설 치 한 다 .
--root <디 렉 토 리 >
<디 렉 토 리 >를 루 트 로 하 는 시 스 템 에 설 치 를 수 행 한 다 . 데 이 터 베 이 스 는 <디 렉 토 리 > 밑 에 서 갱 신 되 고 pre 또 는 post 스 크 립 트 는 <디 렉 토 리 >로 chroot() 한 후 실 행 됨 을 의 미 한 다 .
--noscripts
preinstall, postinstall 스 크 립 트 를 실 행 하 지 않 는 다 .
--excludedocs
문 서 라 고 표 시 되 어 있 는 화 일 (맨 페 이 지 와 texinfo 문 서 )은 설 치 하 지 않 는 다 .
--includedocs
문 서 화 일 을 포 함 한 다 . 이 옵 션 은 rpmrc 화 일 에 excludedocs: 1 이 라 는 것 이 명 시 되 어 있 을 때 만 필 요 하 다 .
--nodeps
패 키 지 를 설 치 하 기 전 에 의 존 성 을 검 사 하 지 않 는 다 .
--test |
패 키 지 를 실 제 로 설 치 하 지 는 않 고 충 돌 사 항 이 있 는 지 점 검 하 고 보 고 한 다 . |
-U, --upgrade
현 재 설 치 되 어 있 는 패 키 지 를 새 로 운 버 전 의 RPM으 로 업 그 레 이 드 하 라 . 인 스 톨 과 같 지 만 예 전 버 전 의 것 이 자 동 으 로 지 워 진 다 는 것 이 다 르 다 .
질 문 옵 션
rpm 질 문 옵 션 의 일 반 적 인 형 식 은 다 음 과 같 다 .
rpm -q [질 문 옵 션 ]
여 러 분 은 패 키 지 정 보 가 표 시 될 형 식 을 결 정 해 주 어 야 한 다 . --queryformat 옵 션 뒤 에 형 식 문 자 열 을 적 어 주 면 된 다 .
질 문 형 식 은 표 준 printf(3) 형 식 을 약 간 변 형 한 것 이 다 . 형 식 은 정 적 문 자 열 과 ( 개 행 문 자 , 탭 , 그 리 고 다 른 특 수 문 자 에 대 한 표 준 C 문 자 이 스 케 이 프 표 기 ) printf(3) 형 식 지 정 자 로 구 성 되 어 있 다 . rpm은 이 미 출 력 형 태 를 알 고 있 으 므 로 타 입 지 정 자 는 생 략 하 고 {} 문 자 로 묶 어 서 헤 더 태 그 의 이 름 으 로 바 꾸 어 주 어 야 한 다 . 태 그 명 중 RPMTAG_ 부 분 은 생 략 해 야 하 며 태 그 명 앞 에 는 - 문 자 를 적 어 주 어 야 한 다 .
예 를 들 어 질 문 대 상 패 키 지 의 이 름 만 출 력 하 고 자 하 는 경 우 여 러 분 은 %{NAME} 을 형 식 문 자 열 로 사 용 해 야 한 다 . 패 키 지 명 과 배 포 판 정 보 를 두 개 의 칼 럼 으 로 표 시 하 고 자 할 때 는 %-30{NAME}%{DISTRIBUTION} 라 고 적 는 다 .
rpm 은 --querytags 옵 션 을 주 면 인 식 하 고 있 는 모 든 태 그 의 목 록 을 보 여 준 다 .
질 문 옵 션 에 는 2 가 지 세 트 가 있 다 : 패 키 지 선 택 과 정 보 선 택
패
키 지 선 택 옵 션 :
<패 키 지 명 >
<package_name>라 는 이 름 의 패 키 지 에 대 한 질 문 를 수 행 한 다 .
-a |
모 든 패 키 지 에 대 하 여 질 문 를 수 행 한 다 . |
-whatrequires <기 능 >
제 대 로 작 동 하 기 위 해 서 는 <기 능 > 을 필 요 로 하 는 모 든 패 키 지 에 대 하 여 질 문 을 수 행 한 다 .
-whatprovides <가 상 >
<virtual> 기 능 을 제 공 하 는 모 든 패 키 지 에 대 하 여 질 문 을 수 행 한 다 .
-f <화 일 >
<화 일 >를 포 함 하 는 패 키 지 에 대 하 여 질 문 을 수 행 한 다 .
-F |
-f 와 같 지 만 화 일 명 을 표 준 입 력 에 서 읽 는 다 . |
-p <패 키 지 화 일 >
설 치 된 또 는 설 치 되 지 않 은 <패 키 지 화 일 > 에 대 하 여 질 문 을 수 행 한 다 .
-P |
-p 와 같 지 만 패 키 지 화 일 명 을 표 준 입 력 에 서 읽 는 다 . |
정 보 선 택 옵 션 :
-i |
패 키 지 이 름 , 버 전 , 설 명 등 의 정 보 를 출 력 한 다 . 만 약 --queryformat 이 주 어 져 있 다 면 그 것 을 이 용 하 여 출 력 한 다 . | ||
-R |
현 재 패 키 지 지 가 의 존 하 고 있 는 패 키 지 목 록 을 보 여 준 다 . (--requires 과 같 음 ) |
--provides
패 키 지 가 제 공 하 는 기 능 을 보 여 준 다 .
-l |
패 키 지 안 의 화 일 을 보 여 준 다 . | ||
-s |
패 키 지 안 에 든 화 일 의 상 태 를 보 여 준 다 .(-l은 포 함 ) 각 화 일 의 상 태 는 normal(정 상 ), not installed(설 치 되 지 않 음 ), replaceduB2E4]른 것 으 로 교 체 됨 )의 값 을 갖 는 다 . | ||
-d |
문 서 화 일 만 보 여 준 다 .(-l은 포 함 ) | ||
-c |
설 정 화 일 만 보 여 준 다 .(-l은 포 함 ) |
--scripts
설 치 , 제 거 과 정 에 사 용 되 는 쉘 스 크 립 트 가 있 다 면 그 내 용 을 출 력 한 다 .
--dump |
다 음 과 같 은 화 일 정 보 를 덤 프 한 다 : 경 로 크 기 수 정 일 , MD5 체 크 섬 , 모 드 , 소 유 자 , 그 룹 , 설 정 화 일 여 부 , 문 서 화 일 여 부 , rdev, 심 볼 릭 링 크 여 부 . 최 소 한 -l, -c, -d 이 들 옵 션 중 하 나 가 사 용 되 어 야 한 다 . |
검 증 옵 션
rpm 검 증 옵 션 의 일 반 적 인 형 태 는 다 음 과 같 다 .
rpm -V|-y|--verify [검 증 옵 션 ]
설 치 되 어 있 는 화 일 들 에 대 하 여 rpm 데 이 터 베 이 스 에 저 장 된 내 용 과 오 리 지 널 패 키 지 의 내 용 을 비 교 한 다 . 검 증 내 용 은 크 기 , MD5 체 크 섬 , 퍼 미 션 , 타 입 , 소 유 자 , 그 룹 등 이 다 . 차 이 점 이 발 견 되 면 출 력 한 다 . 패 키 지 지 시 옵 션 은 패 키 지 질 문 옵 션 에 서 와 같 다 .
출 력 형 식 은 9 자 의 문 자 열 이 다 . "c"은 설 정 화 일 을 의 미 하 며 그 리 고 화 일 명 이 나 타 난 다 . 각 각 의 . 개 문 자 는 RPM 데 이 터 베 이 스 에 저 장 된 속 성 과 비 교 한 결 과 를 나 타 낸 다 . "." (피 리 어 드 ) 문 자 는 이 상 없 음 을 나 타 낸 다 . 비 교 결 과 문 제 점 이 발 견 되 면 다 음 과 같 은 문 자 가 나 타 난 다 .
5 |
MD5 체 크 섬 |
|||
S |
화 일 크 기 |
|||
L |
심 볼 릭 링 크 |
|||
T |
갱 신 일 |
|||
D |
장 치 |
|||
U |
사 용 자 |
|||
G |
그 룹 |
|||
M |
퍼 미 션 과 화 일 타 입 을 포 함 한 모 드 |
서 명 확 인
rpm 서 명 확 인 명 령 은 다 음 과 같 다 .
rpm --checksig <패 키 지 화 일 >+
패 키 지 의 오 리 지 널 여 부 를 가 려 내 기 위 하 여 패 키 지 안 에 든 PGP 서 명 을 점 검 한 다 . PGP 설 정 정 보 는 /etc/rpmrc 에 서 읽 어 온 다 . 세 부 사 항 은 "PGP 서 명 " 섹 션 을 보 기 바 란 다 .
제 거 옵 션
rpm 제 거 명 령 의 일 반 적 인 형 태 는 다 음 과 같 다 .
rpm -e
<패 키 지 화 일 >+
--noscripts
preunistall, postuninstall 스 크 립 트 를 실 행 하 지 않 는 다 .
--nodeps
패 키 지 제 거 시 의 존 성 을 검 사 하 지 않 는 다 .
--test |
실 제 로 패 키 지 를 제 거 하 는 것 은 아 니 고 테 스 트 해 본 다 . -vv 옵 션 . |
제 작 옵 션
rpm 제 작 명 령 의 일 반 적 형 식 은 다 음 과 같 다 .
rpm -bO [제 작 옵 션 ] <패 키 지 스 펙 >+
-bO 은 제 작 단 계 와 제 작 할 패 키 지 를 나 타 내 는 것 으 로 서 다 음 중 하 나 의 값 을 갖 는 다 :
-bp |
스 펙 화 일 의 "%prep" 단 계 를 실 행 한 다 . 보 통 소 스 를 풀 고 패 치 를 가 하 는 작 업 이 다 . | ||
-bl |
"목 록 점 검 "을 한 다 . "%files" 섹 션 은 확 장 매 크 로 이 다 . 이 화 일 들 이 존 재 하 는 지 여 부 를 알 아 본 다 . | ||
-bc |
"%build" 단 계 를 수 행 한 다 .( prep 단 계 를 한 후 ) 보 통 make 에 해 당 하 는 일 을 해 낸 다 . | ||
-bi |
"%install" 단 계 를 수 행 한 다 .( prep, build 단 계 를 거 친 후 ) 보 통 make install 에 해 당 하 는 일 을 한 다 . | ||
-bb |
바 이 너 리 패 키 지 를 만 든 다 .( prep, build, install 단 계 를 수 행 한 후 ) | ||
-ba |
바 이 너 리 와 소 스 패 키 지 를 만 든 다 .( prep, build, install 단 계 를 수 행 한 후 ) |
다
음 옵 션 도 사 용
가 능 하 다 :
--short-circuit
중 간 단 계 를 거 치 지 않 고 지 정 한 단 계 로 직 접 이 동 한 다 . -bc 와 -bi하 고 만 쓸 수 있 다 .
--timecheck
"시 간 점 검 "을 0 ( 불 가 능 )으 로 설 정 한 다 . 이 값 은 rpmrc 에 서 "timecheck:" 로 설 정 할 수 있 다 . 시 간 점 검 값 은 초 로 표 시 되 는 데 화 일 이 패 키 징 되 는 걸 리 는 최 대 시 간 을 정 한 다 . 시 간 을 초 과 하 는 화 일 들 에 대 하 여 경 고 메 시 지 가 출 력 된 다 .
--clean
패 키 지 를 만 든 후 build 디 렉 토 리 를 지 운 다 .
--test |
어 떠 한 build 단 계 를 거 치 지 않 는 다 . 스 펙 화 일 을 테 스 트 할 때 유 용 하 다 . | ||
--sign |
패 키 지 안 에 PGP 서 명 을 넣 는 다 . 패 키 지 를 누 가 만 들 었 는 지 확 인 할 수 있 다 . /etc/rpmrc 에 대 한 설 명 은 PGP 서 명 섹 션 을 읽 어 보 라 . |
재 제 작 , 재 컴 파 일 옵 션
단 두 가 지 만 있 을 뿐 이 다 :
rpm --recompile <소 스 패 키 지 화 일 >+
rpm --rebuild <소 스 패 키 지 화 일 >+
rpm 은 주 어 진 소 스 패 키 지 를 설 치 하 고 prep, 컴 파 일 , 설 치 를 해 준 다 . --rebuild는 새 로 운 바 이 너 리 패 키 지 도 만 들 어 준 다 . 제 작 을 마 치 면 build 디 렉 토 리 는 --clean 옵 션 에 서 와 마 찬 가 지 로 지 워 진 다 . 패 키 지 로 부 터 나 온 소 스 와 스 펙 화 일 은 삭 제 된 다 .
기 존 의 RPM에 서 명 하 기
rpm --resign <바 이 너 리 패 키 지 화 일 >+
패 키 지 화 일 에 새 로 운 서 명 을 한 다 . 기 존 의 서 명 은 삭 제 된 다 .
PGP 서 명
서
명 기 능 을 사 용
하 기 위 해 서 는 PGP
를 사 용 할 수 있
어 야 한 다 .( 여 러
분 의 패 스 걸 린
디 렉 토 리 설 치
되 어 있 어 야 한
다 ) 그 리 고 RPM 공 개
키 를 포 함 하 는
공 개 키 링 을 찾
을 수 있 어 야 한
다 . 기 본 적 으 로
RPM은 PGPPATH에 서 지 시
하 는 PGP 기 본 설 정
을 사 용 한 다 . PGP가
기 본 적 으 로 사
용 하 는 키 링 을
갖 고 있 지 않 을
때 는 /etc/rpmrc 화 일 에
다 음 과 같 이 설
정 해 두 어 야 한
다 .
pgp_path
/usr/lib/rpm 대 신 쓰 일 경 로 명 . 여 러 분 의 키 링 을 포 함 해 야 한 다 .
여
러 분 이 만 든 패
키 지 에 서 명 을
하 려 면 , 여 러 분
은 자 신 의 공 개
키 와 비 밀 키 한
쌍 을 만 들 어 두
어 야 한 다 .( PGP 매 뉴
얼 참 고 ) /etc/rpmrc 에 적
는 것 말 고 도 다
음 사 항 을 추 가
해 야 한 다 :
signature
서 명 유 형 . 현 재 로 서 는 pgp 만 지 원 된 다 .
pgp_name
여 러 분 의 패 키 지 에 서 명 할 user 명 을 적 는 다 .
패 키 지 제 작 시 --sign 옵 션 을 추 가 한 다 . 여 러 분 의 입 력 을 받 고 나 면 패 키 지 가 만 들 어 지 고 동 시 에 서 명 된 다 .
데 이 터 베 이 스 재 생 성 옵 션
rpm 데 이 터 베 이 스 를 다 시 만 드 는 명 령 은 다 음 과 같 다 .
rpm --rebuilddb
이 모 드 와 사 용 되 는 옵 션 으 로 는 --dbpath 와 --root 둘 뿐 이 다 .
관 련 화 일
/etc/rpmrc
~/.rpmrc
/var/lib/rpm/packages
/var/lib/rpm/pathidx
/var/lib/rpm/nameidx
/tmp/rpm*
참 고
glint(8), rpm2cpio(8), http://www.redhat.com/rpm
저 자
Marc Ewing
<marc [AT] redhat.com>
Erik Troan <ewt [AT] redhat.com>