본문 바로가기

IT공부/기타

rpm 패키지

1. rpm(Redhat Package Manager)

 : 레드헷 엔터프라이즈 패키지(프로그램) 관리자

 

 

2. rpm 패키지

프로그램 유틸리티 패키지를 설치하는 것으로 윈도우에서는 응용 프로그램들을 설치하는 것과 비슷

 

** 우분투에서는 apt-get이 rpm 패키지와 같은 역할

 

** rpm은 Linux Standaard Base의 표준 패키지 포맷 중 하나이며,

   Redhat 계열에서 사용되는 파일 포맷으로 Redhat, CentOS Redhat 계열의 리눅스에서 사용된다.

   Debian, Ubuntu 데비안 계열에서는 deb 포맷의 파일을 사용하고,
   apt-get라는 패키지관리도구를 이용한다.

 

 

3. rpm 패키지 파일의 구성

① vim : 대표패키지, 패키지대표명

② enhanced : 보조패키지, 패키지보조명

③ 7 : mager 버전 - 프로그램이 변경될 경우(버전)

④ 4 : minor 버전 - upgrade(기능 추가 및 삭제) > 반드시 해야하는 것

⑤ 629 : patch 버전 - update(갱신해서 버그 수정) > 굳이 안해도 문제는 없음

⑥ 7 : release 버전 - 몇 번째 배포판 > 7번 배포한 것

⑦ el7 : enterprise linux 7(centos 버전 7.x)

⑧ x86_64 : 아키텍처(Architecture) - 시스템 CPU(32bit, 64bit) > "32bit → i386 / 64bit → i686, x86_64"
               현재 CentOS 7은 64bit만 지원, 따라서 i386은 의미 없지만 Centos6은 32bit, 64bit에 따라 결정
               └ noarch : No Architecture - 아키텍처를 따지지 않겠다는 의미로 어떤 CPU든 상관없다는 의미

⑨ 확장명

 

 

4. rpm 공식

① 의존성 오류(Failed dependencies)를 절대 무시하지 말자!

② 의존성 오류(Failed dependencies)를 제기한 패키지부터 작업한다.

③ 디렉터리 구조로 된 것(/usr/bin/)들은 패키지가 아니므로 무시한다.

④ 'lib'로 시작하고, 중간에 'so'로 시작하는 것들은 의존성을 무시해도 된다.

⑤ 모든 작업은 대표 패키지부터 작업한다.

⑥ 나머지는 화면 보이는 순서대로 작업을 한다.

⑦ 모든 작업은 반드시 동일한 버전이어야 한다.

⑧ 가급적 의존성 오류 무시(--nodeps : no dependencies)를 사용하지 말자!

 

 

5. rpm 패키지 작업

1) 패키지 설치

   rpm -ivh [패키지 전체 이름]

2) 패키지 삭제

   rpm -e [패키지명]

3) 패키지 확인

   rpm -qa | grep [패키지명]

 

4) 추가 옵션

   -U : Redhat 계열 리눅스에 패키지가 이미 설치되어 있는 경우, 버전을 업그레이드하거나 다운 그레이드할때

   --nodeps : 의존성을 검사하지 않는다.

 


6. 패키시 설치시 설치된 것이 있는지 먼저 확인한 뒤 설치하고 설치한 후에 제대로 설치되었는지 다시 확인하자!
   패키시 삭제시 설치된 상태가 맞는지 먼저 확인한 뒤 삭제하고 삭제한 후 제대로 삭제되었는지 다시 확인하자!

 

 

7. 패키지 자동 작업 프로그램, Yum(Yellowdog Updater Modified)

1) 패키지 자동 설치

   yum -y install [패키지명들]

 

2) 패키지 자동 삭제

   yum -y remove [패키지명들]

 

3) 커널 업데이트(= 윈도우 업데이트)

   yum -y update

 

[참고] 인터넷이 연결되어 있어야 사용 가능하며

         새로운 패키지나 개발자가 직접 만든 패키지, CentOS.mirror에 없는 패키지들은 rpm 외엔 불가능하다.

 

 

8. 실습

 

위와 같이 필요한 의존성이 확인될때마다 다운받아서 진행해도 되나
필요한 패키지는 점점 늘어난다.

또한 의존성 문제 뿐만 아니라 구버전과의 충돌도 발생할 수 있기 때문에

다운 받기 매우 매우 어렵다.

 


해결 방법 중

--nodeps 를 이용해서 하나 하나 다운로드 할 수 있으나
의존성으로 엮여 있으나 프로그램 돌아가는데 문제 없는 경우에는 그냥 넘길 수 있지만

 

다른 해결 방법 중 yum을 이용하는 것으로

편리하게 다운받았다.