728x90
반응형
RPM (Redhat Package Manager) : 패키지 관리 프로그램
 

RPM 파일 구조
 
패키지이름-버전-릴리즈.아키텍쳐.rpm
 
패키지이름 : 어떤 패키지인가를 설명해주는 패키지의 이름
버전 : 패키지의 버전을 의미
릴리즈 : 한 버전의 패키지를 몇번 빌드 했는지
아키텍쳐 : 패키지가 사용가능한 시스템


 
사용법

# rpm [옵션파일
 


  옵션

-i : 해당 rpm package를 설치, 이전 버전 설치 되어 있으면 설치하지 않는다

-U : 이전 버전이 설치되어 있다면 업그레이드를 하고, 설치되어 있지 않다면 새롭게 설치 진행

-e : 해당 rpm package를 삭제

-F : 이전 버전이 설치되어 있을 경우에만 설치

-v : 설치 중 메시지를 출력

-h : 진행과정을 #으로 표시

-q : 패키지가 설치되어 있는지 검사

-qa : 설치된 rpm package를 출력
Ex) rpm -qa | more
-qi : 해당 rpm package의 정보를 출력
Ex) rpm -qi glibc
-ql : 해당 rpm package의 파일의 위치를 출력
Ex) rpm -ql glibc
--replacepkgs : 패키지를 교체,패키지가 설치되어 있어도 다시 설치

--replacefiles : 동일한 파일명이 있으면 교체

--oldpackage : 예전 패키지로 교체할 때 사용

--force : --replacepkgs,--replacefiles,--oldpackage옵션을 모두 사용한 것, 강제 설치

--percent : 패키지 파일을 설치할 때 퍼센트 표시

--includedocs : 문서 파일 포함

--excludedocs : 문서 파일은 설치하지 않음

--nodeps : 패키지의 의존성을 무시

--aid : 의존성을 검사하여 의존성 피키지를 자동으로 설치

--test : 패키지를 실제 설치하지 않고 충돌 사항을 점검하여 보고

 



rpm 옵션 예제


일반적인 패키지 설치
 # rpm -ivh [피키지파일]

설치되어 있는 패키지 교체
 # rpm -ivh [패키지파일] --replacepkgs

의존성 에러 존재 시 무시하고 설치할 경우
 # rpm -ivh [패키지파일] --nodeps

패키지 의존성이란? : 어떠한 패키지를 설치할 때 패키지의 동작을 위하여 기본적으로 필요로
  하는 패키지가 있어야 하는 것을 말함

의존성 에러 존재 시 의존성이 있는 패키지들을 먼저 설치한 후 자동으로 설치
  ▶ 첫번째 방법 : 에러가 나는 의존성을 따라가며 설치하기
  ▶ 두번째 방법 : rpm -ivh [패키지파일] --aid

기존 패키지를 업그레이드 하기(설치되어 있지 않은 경우 rpm -ivh 옵션과 동일함)
 # rpm -Uvh [패키지파일]




1. rpm 패키지 설치

- rpm 패키지 초기 설치

rpm -ivh jdk-6u26-linux-i586.rpm
rpm –ivh http://isoredirect.centos.org/centos/5/os/i386/centos/mc-4.6.1a-34.el5.i386.rpm


- rpm 패키지 업데이트 할경우

# rpm -Uvh jdk-6u26-linux-i586.rpm

(업데이트시만 사용하는것이 아니라 초기 설치시도 패키지가 설치되어 있지 않은경우 알아서 설치하기 때문에 이명령어를 많이 사용됨)



2. rpm으로 설치된 패키지의 확인

# rpm -qa 패키지명 or rpm-qa | grep 패키지명

(ex, rpm -qa | grep jdk)


3. rpm 패키지 삭제

# rpm -e 패키지명 (ex, rpm -e java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64)

 만약 아래와 같은 에러가 발생하며 rpm 모듈 삭제 실패가 뜰경우는 java는 libvirt-java-0.4.7-1.el6.noarch 의존성 패키지가 필요해서 발생하는 메시지다.

error: Failed dependencies:
java is needed by (installed) jna-3.2.4-2.el6.x86_64
java >= 1.5.0 is needed by (installed) libvirt-java-0.4.7-1.el6.noarch

이런경우, 패키지 의존성을 무시한채 삭제 할수 있다

# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64

또는 yum을 이용하여 삭제 가능하다 (다만 redhat linux 같은 경우 정식 구매된 버전에 한해서 가능하다)

# yum remove java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64

 

4. 현재 rpm 패키지에 의존된 모듈확인

# rpm -qR 패키지명 (ex, rpm -qR java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64)



5. RPM(Redhat Package Manager)에서 특정 패키지 복원시키기
# rpm2cpio filename.rpm | cpio -l -make -deretories -E filename


반응형

'Linux' 카테고리의 다른 글

Linux 데몬 종류  (0) 2018.08.08
Linux 실시간 명령어 (watch, while)  (0) 2018.08.08
Linux YUM  (0) 2018.08.08
Linux ntpd 설정  (0) 2018.08.08
Linux du  (0) 2018.08.08

+ Recent posts