반응형

리눅스에서 RPM(Red Hat Package Manager)은 소프트웨어 패키지를 만들고 설치하고 검증하고 갱신하며 제거할 수 있는 패키지 관리자로 리눅스 시스템에서 사용되는 모든 소프트웨어를 설치 및 삭제, 업그레이드하는 관리 툴이다.

 

RPM 패키지의 구성 요소는 패키지 이름, 버전, 릴리즈, 아키텍처로 이루어져 있으며, 예를 들어 "mysql-5.0.22-2.1.i386.rpm"과 같은 형식으로 구성되어 있다. RPM 패키지를 설치하면 파일의 의존성을 자동으로 해결해주므로 패키지 설치 과정이 간편해지며, 설치된 패키지 정보는 "rpm -qa" 명령어를 통해 확인할 수 있다.

 

RPM 패키지와 다르게 소스 패키지는 일반적으로 설치 경로를 수동으로 지정하여 설치한다. 이로 인해 RPM 패키지와 소스 패키지를 동일한 서버에 설치할 수 있지만, 같은 80 포트를 점유하기 때문에 동시에 하나만 열 수 있다. RPM 패키지를 설치할 때는 "rpm -i 패키지명" 혹은 "rpm -Uvh 패키지명" 명령어를 사용하며, 설치된 패키지는 "rpm -qi 설치된패키지명" 명령어를 통해 확인할 수 있다 .

 

RPM은 프로그램을 설치한 후에 바로 실행할 수 있는 설치 파일을 제공한다. 이러한 설치파일의 확장명은 *.rpm이며, 이를 패키지라고 부르기도 한다. RPM을 사용하면 각 패키지의 필요 요소를 전부 따로 다운로드해야 하는 번거로움이 있다. 또한 RPM의 문제점으로는 의존성을 들 수 있는데, 예를들면 페도라의 기본 웹 브라우저인 Firefox는 X윈도우에서 가동된다면, X윈도우가 설치 되지 않는 상태에서 Firefox를 설치하면 설치가 되지 않다.


옵션

RPM 패키지는 rpm 명령어나 yum 명령어를 통해 설치 가능하다. 주요 4개 명령어에 대해서는 설치, 업그레이드, 삭제, 정보 확인이 있다. RPM 설치 관련 옵션은 다양하다. 예를들어 설치 관련 옵션 중 -i(--install)은 패키지 설치 시엔 -i 옵션을 사용한다. v(verbose), h 등의 옵션과 함께 사용 가능하다.

 

RPM 명령어의 사용법은 설치 모드, 갱신 모드, 제거 모드, 질의 모드, 검증 모드 등이 있다. RPM의 주요 기능 중 하나는 패키지 설치 및 업그레이드이며, 이 기능을 위해 i와 U 옵션을 사용한다.

 

rpm (옵션) (패키지명)

설치 관련 옵션

  • -i(--install) : 패키지를 설치할 때 사용하는 옵션입니다. v, h 옵션과 함께 사용 가능하다.
  • v (verbose) : 설치 시 상세 내용을 함께 출력한다.
  • h (hash marks) : 설치 시 진행 상황을 #으로 표시한다.
  • 예시 : rpm -ivh [패키지명]

업그레이드 관련 옵션

  • -U(--upgrade) : 기존에 설치된 패키지를 업그레이드할 때 사용하는 옵션이다. v, h 옵션과 함께 사용 가능하다.
  • 예시 : rpm -Uvh [패키지명]

삭제 관련 옵션

  • -e(--erase) : 패키지를 삭제할 때 사용하는 옵션이다. --nodeps 옵션과 함께 사용 가능하다.
  • --nodeps : 의존성 무시하고 강제로 삭제한다.
  • 예시 : rpm -e [패키지명]

정보 확인 관련 옵션

  • -q(--query) : 패키지 정보를 확인할 때 사용하는 옵션입니다. i, p, l, c, d 옵션과 함께 사용 가능하다.
  • i (info) : 패키지 정보를 출력한다.
  • p (provides) : 패키지가 제공하는 파일 목록을 출력한다.
  • l (list) : 패키지에 포함된 파일 목록을 출력한다.
  • c (changelog) : 패키지의 변경 내용을 출력한다.
  • d (docfiles) : 패키지 설치 시 생성되는 문서 파일 목록을 출력한다.
  • 예시 : rpm -qi [패키지명]

의존성 문제

 

의존성 문제가 발생하면 해당 패키지를 설치할 수 없다. 따라서 이를 해결하기 위해서는 필요한 라이브러리나 패키지를 먼저 설치해야 한다. 의존성을 확인하는 방법으로는 다음과 같은 방법들이 있다.

  • Shell 접속하여 bash 명령어로 $ rpm -qR [라이브러리명] 을 입력한다. 해당 라이브러리가 의존하는 다른 라이브러리나 패키지들을 확인할 수 있다.
  • 아래 사이트에서 라이브러리 검색 후 Requires 부분을 확인하여 의존성을 확인할 수 있다. [https://centos.pkgs.org/7/centos-x86_64/ CentOS 7 - CentOS x86_64 centos.pkgs.org]
  • rpm 명령어중 -qR 옵션은 현재 패키지가 의존하고 있는 패키지 목록을 보여준다. 

의존성 문제가 발생한 경우에는 다음과 같은 방법으로 해결할 수 있다.

  • 의존하는 패키지를 먼저 설치한다.
  • rpm 명령어에 --nodeps 옵션을 추가하여 의존성 문제를 무시하고 강제로 패키지를 설치한다.
  • yum을 사용하여 의존성 문제를 해결합니다. yum은 자동으로 의존하는 패키지를 설치한다. 

참고 문헌 : [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18]

반응형