Linux RPM

1. RPM이란?

RPM은 Redhat Package Manager의 약자로 아주 간편하고 사용하기 편한 패키지 관리자이다. 현재 국내에서 배포된 많은 리눅스들이 레드햇을 기반으로 하고 있어 사용의 범위가 넓다.

이번 강좌에서는 RPM을 사용하는 방법에 대해서 다루려한다. 이번 강좌에서는 RPM을 만든다거나 하는 고급(?)에 대해서는 다루지 않고 설치와 제거, 패키지 설치여부 등 간단한 기능만을 설명하도록 하겠다.

레드햇리눅스 7.2를 기준으로 RPM버전은 4.0.4-7x이다. 참고하기 바란다.

2. RPM 파일구조

RPM의 파일구조는 \’패키지이름-버전-릴리즈번호.소스여부.시스템.확장자\’로 되어 있다.

예를 들어서 설명하자면.
gcc-2.96-98.i386.rpm

* gcc – 패키지의 이름
* 2.96 – 패키지의 버전
* 98 – 패키지의 릴리즈 번호, 패키지가 몇 번째로 만들어진 것인지를 나타낸다. 똑같은 프로그램으로 다시 패키지 하여도 릴리즈는 올라간다.
* i386 – 시스템, 어떤 시스템에서 쓰이는 것인지를 나타내는 것이다. \’i386\’, \’i686\’등은 인텔계열의 시스템에서 \’sparc\’ SUN의 스팍 시스템용이고 \’alpha\’ 라면 알파 시스템용이다.
* 혹 네 번째 필드에 src라고 적혀있으면 그것은 소스 RPM이다. 바이너리 패키지를 만들기 위해서 필요하다. 일반적으로 많이 사용하는 편은 아니다.
* rpm – 확장자

3. RPM 설치하기

rpm으로 설치하는 기본방법은 \’-i\’ 옵션을 사용하는 것이다.

rpm -i gcc-2.96-98.i386.rpm

이런 식인데 이런식의 사용은 별로 좋지 못하다. 다음과 같은 방법을 사용하도록 한다.

rpm -Uvh gcc-2.96-98.i386.rpm

이렇게 사용하면 같은 패키지의 이전버전의 RPM이 설치되었는지 확인하고 만약 설치가 되어있다면 업그레이드를 한다. 물론 설치가 되어있지 않은 경우 설치를 한다.

4. RPM 제거하기

rpm -e gcc-2.96-98.i386

간단하게 \’e\’ 옵션을 사용한다.

5. RPM 패키지 찾기

rpm -q gcc

간단하게 \’q\’ 옵션을 사용한다. 이 경우 패당 패키지가 설치되어 있을 경우 패키지의 버전, 릴리즈등이 나온다.

6. 다양한 옵션 사용하기

6-1. 설치시의 옵션들

* –nodeps : 의존성을 무시하고 설치하도록 하는 옵션이다. RPM은 어떤 패키지가 깔려있을 경우 혹은 깔려있지 않은 경우 설치가 되는 않는 경우가 있다.
* –force : 강제로 설치하도록 한다. 현재의 패키지에 포함된 파일이 이미 다른 패키지에 의해 설치되어 있을 경우 충동이 나는데 이때 이 옵션으로 설치가 가능하다. 이 옵션은 이미 있는 파일을 덮어 쓰지 않는다.
* –replcaefiles : 위에서 이미 있는 파일을 덮어 쓰려면 이 옵션을 사용한다. 위험하니 주의 요망!!
* –oldpackage : 새로운 패키지를 지우고 옛날 버전의 패키지로 교체할 때 이 옵션을 사용한다.
* –percent : 설치과정을 퍼센트로 표시해 준다.
* –replacepkgs : 같은 패키지가 설치되어 있어도 설치한다.
* –test : 설치하지 않고 충동이 있는지 검사한다.
* –excludedocs : 문서 파일은 설치하지 않는다.

6-2. 제거시의 옵션들

설치 옵션에서 \’–nodeps\’, \’–noscripts\’, \’–test\’ 세가지만 사용한다.

6-3. 찾기시의 옵션들

찾을 때에는 \’-q\’ 옵션과 함께 사용한다. 예를 들어 \’-a\’ 라는 옵션은 \’-qa\’ 식으로 사용된다.

* -a : 모든 패키지를 찾는다.
* -f [파일] : [파일]을 포함하는 패키지를 찾는다.
* -p [패키지 파일] : 패키지 파일을 찾는다.
* -i : 패키지의 정보를 출력한다.
* -R : 패키지가 의존하고 있는 파일 또는 패키지 목록을 출력한다.
* -l : 패키지에 속한 파일을 출력한다.
* -s : 패키지에 속한 파일들의 상태를 출력한다.
* -d : 문서 파일만 출력한다.
* -c : 설정 파일만 출력한다.
* –scripts : 설치, 제거과정에서 스크립트가 포함되어 있을 경우 출력한다. 이 옵션은 따로 사용한다.

7. 네트웍으로 설치하기

RPM은 네트웍으로 설치가 가능하다. RPM 패키지의 위치만 정확하게 안다면 말이다.
예를 들어 다음과 같이 사용이 가능하다.

rpm -Uvh ftp://ftp.comager.com/gcc-2.96-98.i386.rpm

8. 마치면서

RPM은 참 편리한 패키지 관리자이다. 현재 많은 패키지들이 RPM으로 제작되어 배포되고 있으며 up2date를 통해서 지속적으로 업그레이드가 가능하다.


원본은 여기 인데 여기도 복붙… 원본사이트는 터진듯.

요즘은 yum이나 apt-get이 대세!