리눅스 rpm
IT위키
더 많은 작업
- Red Hat Package Manager
- -i : 설치
- -e : 제거
- --nodeps : 설치·제거 시 의존도를 고려하지 않고 진행한다.
- --force : 강제로 진행한다. 설치·업그레이드 때 이미 설치된 패키지나 파일 충돌을 무시하고 덮어쓴다(--replacepkgs, --replacefiles, --oldpackage 를 합친 것).
- -U : 업그레이드
- -q : 쿼리(조회)
- -p : 대상 패키지 파일 지정
- -v : 작업 내용 상세 출력
- -V : 패키지 검증
rpm 은 첫 옵션으로 무슨 일을 할지(모드)를 정하고, 그 뒤 옵션으로 세부 동작을 고른다.
| 모드 | 옵션 | 하는 일 |
|---|---|---|
| 설치 | -i | 새 패키지를 설치한다 |
| 갱신 | -U, -F | 업그레이드한다(-F 는 이미 설치된 것만) |
| 제거 | -e | 패키지를 지운다 |
| 질의 | -q | 패키지 정보를 조회한다 |
| 검증 | -V | 설치된 파일이 패키지와 같은지 검사한다 |
- 질의 모드 세부 옵션 : -a(설치된 모든 패키지, rpm -qa), -i(정보), -l(파일 목록), -c(설정 파일), -f 파일(그 파일이 속한 패키지), -R(--requires, 이 패키지가 설치·동작하는 데 필요한 패키지·기능 목록), --provides(이 패키지가 제공하는 기능)
- -p 는 조회 대상을 설치된 패키지 이름이 아니라 패키지 파일(.rpm)로 바꾸는 옵션이다(rpm -qip 파일.rpm). 필요한 패키지 목록을 보는 옵션은 -R 이다
- 패키지 설치
- rpm -ivh [패키지명]
- 패키지 파일 자리에 FTP·HTTP URL 을 그대로 주어 원격 서버의 패키지를 받아 설치할 수 있다.
rpm -ivh ftp://192.168.10.1/pub/vsftpd-2.0.5-28.el5.i386.rpm
- -a(모든 패키지), -f(파일이 속한 패키지)는 -q 와 함께 쓰는 조회 옵션이라 설치에 쓰지 않는다. -ftp 같은 옵션은 없다.
- 패키지 제거
- rpm -ev [패키지명]
- 다른 패키지가 의존하는 패키지를 강제로 지우기 : rpm -e 패키지명 --nodeps. 의존성 검사를 건너뛴다
- --force 는 설치 쪽의 충돌을 무시하는 옵션이라 제거할 때 의존성 문제를 풀어 주지 않는다. 제거 모드는 -e(--erase)이고 -r 은 제거 옵션이 아니다
- 업그레이드
- rpm -Uvh 패키지명
- 패키지 설치 확인
- rpm -qa | grep [패키지명]
- 파일이 속한 패키지 찾기
- rpm -qf [파일]
- 패키지에 포함된 파일 목록
- rpm -ql [패키지명]
- 설치된 패키지 정보 출력
- rpm -qi [패키지명]
- 설치되지 않은 패키지파일 정보 출력
- rpm -qip [패키지파일명]
- 패키지 검증
- rpm -V [패키지명]
# rpm -V net-tools S.5...T. /bin/netstat
- -S : 파일의 크기가 변경되었다.
- -M : 파일의 퍼미션이 변경되었다.
- -5 : MD5 체크섬이 변경되었다.
- -D : 장치 정보가 변경되었다.
- -L : 심볼릭 링크가 변경되었다.
- -U : 소유자 정보가 변경되었다.
- -G : 소유그룹 정보가 변경되었다.
- -T : 파일 수정 시간이 변경되었다.
- RPM 데이터베이스 복구
- rpm --rebuilddb
소스 RPM(SRPM)을 받아 spec 파일을 빌드할 때는 rpm 이 아니라 rpmbuild 명령을 쓴다.
- -bp : prep 단계까지 수행한다 (압축 해제, 패치 적용)
- -bc : build 단계까지 수행한다 (컴파일)
- -bi : install 단계까지 수행한다
- -bl : 파일 목록을 검사한다
- -bb : 바이너리 패키지만 만든다
- -bs : 소스 패키지만 만든다
- -ba : prep, build, install 을 모두 수행한 뒤 바이너리와 소스 패키지를 함께 만든다
# rpm -Uvh vsftpd-2.4.0-2.src.rpm # cd /root/rpmbuild/SPECS # rpmbuild -ba vsftpd.spec