어떤 리눅스 서버를 관리하게 되었다면, 아니, 서버라는 말이 거창하다 면, 한 컴퓨터의 루트가 되었다면 당연히 관련된 프로그램들을 깔아 주어 야 할 것입니다. 물론 가장 기본적이며, 확실하고, 자기가 원하는 대로 자 유롭게 설정하여 깔 수 있는 방법은(물론 그 모든 것에 관해 웬만큼 안다 는 전제 조건이 있겠지만.) 바로 소스를 받아 컴파일 하는 것입니다. 그러 나 모든 관리자가 시간이 남아 도는 것도 아니고, 또 모든 관리자가 모든 것을 다 찾아서 알아낼 정도로 성실한 것도 아니기 때문에 존재하는 녀석 들이 있습니다. 그 중 하나는 바이너리 파일이며, 또 다른 것은 rpm입니 다.

바이너리는 받아서 놓고 설정파일만 손 봐 주면 된다는 점에서는 편리하지 만, 하여간에 rpm보다는 덜 쓰이는 추세입니다. RPM은 레드햇 패키지 관리 자를 줄인 말이며, 여기에는 레드햇이라는 이름이 들어 있지만, 누구나 사 용할 수 있는 개방된 패키징 시스템으로 만들어 졌습니다. RPM은 사용자 가 새로운 프로그램의 소스 코드를 소스와 바이너리로 패키징이 가능하도 록 합니다. 이렇게 되면 바이너리를 쉽게 설치하고 찾아내고 소스를 쉽게 다시 빌드할 수 있게 됩니다. 이것은 모든 패키지와 파일의 데이터베이스 를 관리하는데, 이는 패키지를 검증하고 파일과 패키지의 질의에 쓰입니 다.

레드햇 소프트웨어는 다른 배포본 제작자들이 RPM을 살펴보고 사용하는 배 포본에 채용할 것을 권장합니다. 이렇게 많은 부문에서 확장 가능한 기반 을 제공함에도 불구하고도, RPM은 매우 유연하고 사용하기 쉽습니다. 게다 가 이것은 GPL을 따르고 있으므로 로열티 없이 배포되고 있습니다. 아주 멋지구리하죠. ^^

도니 바니즈가 쓰고, 이기동 님 께서 번역하신 레드햇 패키지 하우투에 보 면 다음과 같이 RPM의 장점들이 나와 있습니다. 일단 먼저 살펴 보겠습니 다.

첫째로, 필자가 RPM을 바탕으로 하는 철학을 설명하고자 한다. 설계한 목 적중 하나는 사용자들이 소스를 “그대로” 사용할 수 있도록 하는 것이 다. RPP(RPM 이전의 패키징 시스템)로 만든 소스 패키지들은 우리가 빌드 한 소스에서 “해킹” 한 것이었다. 이론적으로, 한 사람이 RPP로된 소스 를 설치하는 것은 아무런 문제가 없다. 그러나 소스가 오리지널이 아니 면, 소스를 빌드할 때 어떠한 것을 수정해야 하는지 참조할 만한 것이 없 다. 결국 사용자는 원래 소스를 별도로 받아야 한다. RPM을 사용한다면, 여러분은 컴파일할 때 사용한 패치와 함께 원래 소스를 그대로 사용할 수 있다. 우리는 여기서 커다란 이득을 얻을 수 있다. 왜 일까? 여러 가지 이 유가 있다. 하나는, 프로그램이 버전업되면, 여러분은 레드햇 리눅스에서 처음부터 컴파일할 필요가 없다. 그리고, 여러분은 어떠한 일을 할 필요 가 있는지 보기 위하여 패치를 살펴볼 수 있다. 컴파일할 때 기본값은 이 러 한 방법으로 쉽게 볼 수 있다.

RPM은 강력한 질의 옵션을 둘 수 있도록 설계되었다. 여러분은 전체 데이 터베이스에서 특정한 패키지나 파일을 찾을 수 있다. 역시 여러분은 어떠 한 파일이 어느 패키지에 담겨 있는지 쉽게 알아낼 수 있다. RPM 파일 자 체는 압축되어 있지만, 알아야 필요가 있는 모든 (압축이 풀어진 형태의) 정보와 함께 패키지에 첨가한 특별한 바이너리 헤더 덕분에, 여러분은 개 별적인 패키지를 쉽고 빠르게 검색 할 수 있다.

또하나의 뛰어난 기능은 패키지에 이상이 있는지 검증할 수 있는 능력이 다. 걱정된다면 어떠한 패키지의 중요한 파일을 지우고, 검증해 본다. 여 기서, 여러분은 필요한 패키지를 다시 설치할 수 있다. 가지고 있는 설정 파일은 모두 보존된다

자, rpm이라는 녀석이 마음에 드시나요? 그러면 다음으로 넘어가도록 하겠 습니다.

rpm은 리눅스, 특히 레드햇 배포판에서 사용하도록 만들어진 녀석입니다 만, 다른 배포판은 물론이고, 유닉스 등에서도 사용할 수 있습니다. RPM 을 설치하기 위한 최소 요구 사항은 이것을 소스에서 빌드하는 데 꼭 필요 한 gcc와 make 등이 있을 것입니다. 이 정도라면 무슨 짓을 하려고 해도 기본으로 깔게 되는 것이니까 크게 신경쓸 일은 아닙니다만.

rpm을 찾으려면 어떻게 하면 될까요? rpm은 레드햇이나 기타 등등의 리눅 스 회사의 ftp 사이트를 통하여 얻을 수 있으며, 우리 나라에서는 적수네 동네의 ftp 등을 통해 구할 수도 있습니다. 한번 들어가 보죠…….

# ftp linux.sarang.net

username을 물어 보면 다른 엉뚱한 것 쓰지 마시고(!!) anonymous 라고만 적으세요. 그러면 익명 로그인이 가능하게 됩니다. 패스워드로는 메일 주 소를 적으시면 되는데, 사실 아무 문자열이나 넣어도 상관은 없습니다만, 자신의 메일 주소를 남기는 것이 에티켓입니다. 이상한 데 사용되는 것은 아닐테니 제대로 적으세요. 들어가 보면 뭐가 잔뜩 있는데, 자세한 것은 돌아다녀 보시면 알고……. ftp는 다양한 곳을 다녀 보며 사용하는 방법 에 익숙해 지는 것이 중요합니다. 익숙해지기 전에는, 그러니까 구조 같 은 것을 대충 잘 알게 되기 전에는 헤매는 것도 장난이 아니랍니다. ^^ 조 금 머리를 써서 빨리 익숙해 지는 것이 좋은 관리자가 되는 지름길입니 다. 혹은, rpmfind에 가 보셔도 좋겠지요. 끝이 com 이었는지 net 이었는 지 아니면 org였는지는 기억이 나지 않습니다만…… 북마크되어 있어서 일일히 타이핑할 필요가 없거든요. ^^;;;; 게을러서 말이죠. 이 곳에 가 보시면 관련된 rpm 들을 쉽게 찾으실 수 있습니다만, ftp 사이트만큼 최신 의 자료가 빨리빨리 올라오지는 않습니다. 주의하세요. ^^

데비안에서도 rpm 을 쓸 수 있습니다…… 참고하시고. 아, 물론 시작하 면서부터 데비안을 쓰시는 분은 가뭄에 콩 나는 것 보다 조금 적게 본 것 같습니다만. ^^ 이 강좌 보시는 분들이 쓰시는 리눅스래야 뭐….. 레드 햇 계열들이겠지요. 아마도. 가장 대중적이니까요…….

먼저 설치하는 법을 살펴 보겠습니다. 가장 간단한 형태로, RPM 은 패키지 를 설치할 때 다음과 같이 사용할 수 있겠습니다. 물론 여기서 i라는 옵션 은 당근 install의 i 겠지요.

rpm -i foobar-1.0-1.i386.rpm

그러나~~~~ 만약에 이것이 이미 설치되어 있는 것이라면 곤란합니다. 이 때는 i 대신에 업그레이드의 U를 쓰지요.(대문자 U 입니다.) 아예 외워 두 시면 좋은 것이, rpm -Uvh 식으로 외우시면 사용하기 편리합니다. 이 옵션 은 업그레이드 혹은 설치를 하는데, 얼마만큼 설치가 진행되었는지 해쉬 (#) 표시가 보이는 것입니다. 외우세요. ^^

다음의 간단한 명령은 패키지를 제거할 때 쓰는 것입니다. eraser의 e 일 것입니다.

rpm -e foobar

매우 쓸모 있지만 더욱 복잡한 명령중 하나는 여러분이 FTP를 통하여 설치 하는 것입니다만, 아직 실제로 써 본 일은 없답니다. 하여간 설명에 의하 면, 여러분이 네트웍에 연결되어 있고 새로운 패키지를 설치하기를 원한다 면, 여러분에게 필요한 것은 파일의 정확한 URL과 함께 파일의 위치를 정 하는 것인데, 다음과 같이 하면 됩니다.

rpm -i ftp://ftp.pht.com/pub/linux/redhat/rh-2.0-beta/RPMS/foobar-1.0-1.i386.rpm

이제는 FTP 를 통한 설치와 질의 기능을 사용할 수 있습니다. 이때 ftp/bin 디렉토리에 rpm 바이너리를 가져다 놓아야 할 것입니다. ftp 서버 가 rpm 질의를 받을 수 있게 하기 위해서 말이죠.

실수로 몇 가지 파일들을 지웠는데, 어느 것을 지웠는지 확신할 수 없다 고 합시다. 여러분이 전체 시스템을 점검해 보고 어떠한 파일이 빠져 있는 지 보려면, 다음과 같이 하면 됩니다.

rpm -Va

알 수 없는 파일을 보게 되었는데, 이것이 어떠한 패키지 안에 있는지 보 려면, 다음과 같이 하면 됩니다.

rpm -qf /usr/X11R6/bin/xjewel

혹은 asdf RPM을 발견하였지만, 이것이 무엇인지 알 수 없을 때가 있습니 다. 이것이 무엇에 쓰는 물건인지….. 가 아니라 하여간 정보를 얻고 싶 으면 다음과 같이 할 수 있습니다.

< -qpi>

이제 여러분이 asdf RPM을 설치할 때 어떠한 파일이 있는지 확인하는 방법 이 남았습니다.

rpm -qpl asdf-1.2-2.i386.rpm

이 정도만 능수능란히 다루어도 rpm 잘 만진다는 말을 듣기에 부족함이 없 을 것입니다.