본문 바로가기

개발/서버

RPM 사용법 정리

RPM 사용법 정리


RPM(Red Hat Package Management)은 레드햇 사와 수세 리눅스 사의 리눅스 배포본 제품에서 사용하는 패키지의 설치 및 제작 관리 소프트웨어다. 

RPM을 사용하면 패키지 관리를 쉽고 효율적으로 할 수 있다. 

물론 레드햇 리눅스인 경우, '응용 프로그램 추가/삭제'(시작->시스템 설정->응용 프로그램 추가/삭제)에서 윈도우즈 식으로 쉽게 프로그램을 추가하고 삭제할 수 있지만 보다 구체적으로 작업을 하려면 역시 RPM이 필요하다. 여기서는 RPM 사용법을 간단히 정리해보겠다.


RPM 버전 확인

rpm --version


RPM 도움말 출력

rpm --help

도움말이 길게 출력되므로 페이지 단위로 끊어보려면 다음과 같이 한다.

rpm --help | less

rpm --help | more


RPM 패키지 이름 구조

mysql-3.23.58-4.i386.rpm

mysql : 패키지 이름

3.23.58: 버전

4: 릴리즈 번호

i386: 아키텍처


 

RPM의 다섯 가지 옵션

설치 모드: -i 또는 -U (install, upgrade)

제거 모드: -e (erase)

질의 모드: -q (query)

검증 모드: -V 또는 -y (verify)

패키지 제작 모드: -b (build)


설치/제거

rpm -i 어떤.rpm

rpm -U 어떤.rpm

rpm -ivh 어떤.rpm

rpm -Uvh 어떤.rpm


'-i' 옵션이나 '-U' 옵션은 간단히 설치하거나 업그레이드할 때 사용하고, 일반적으로 '-ivh'나 '-Uvh'를 사용하는데 '-Uvh'를 더 많이 사용한다. 

'v'는 설치 과정에서 여러가지 정보를 출력하고 'h'는 '#'으로 진행되는 과정을 출력한다.


기타 옵션


--force : 강제로 설치한다. 

--replacepkgs, --replacefiles, --oldpackage를 함께 사용하는 격이다.

--nodeps: 의존 관계를 완전히 무시하고 진행하라는 옵션. 의존성에 문제가 있으면 설치가 중단되는데 이를 무시하는 것이므로 설치 후에 문제가 생길 가능성이 많다. 따라서 어지간해서는 사용하지 않는 것이 좋다.

--test: 설치/업그레이드/제거를 실제로 하기 이전에 테스트만 한다.


rpm -Uvh 어떤.rpm --force --nodeps


 



패키지 질의


 



'-q' 옵션은 여러 모로 많이 사용된다. 시스템에 어떤 파일이 있는데 그 파일이 어떤 패키지에서 풀려나왔는지를 알려면 다음과 같이 사용한다.


 



[root@localhost Download]# rpm -qf /usr/bin/as


binutils-2.13.90.0.18-9


 



어딘가에서 내려받은 rpm 파일이 있는데 이 패키지가 어떤 것인지를 알아보려면 '-qpi' 옵션을 사용한다.


 



[root@localhost Download]# rpm -qpi mysql-3.23.58-4.i386.rpm


 



경고: mysql-3.23.58-4.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2


Name : mysql Relocations: (not relocateable)


Version : 3.23.58 Vendor: Red Hat, Inc.


Release : 4 Build Date: 2003년 10월 28일 (화) 오전 05시 04분 54초


Install Date: (not installed) Build Host: bugs.devel.redhat.com


Group : 응용 프로그램들/데이터베이스 Source RPM: mysql-3.23.58-4.src.rpm


Size : 16511485 License: GPL/LGPL


Signature : DSA/SHA1, 2003년 10월 29일 (수) 오전 08시 53분 12초, Key ID b44269d04f2a6fd2


Packager : Red Hat, Inc.


URL : http://www.mysql.com


Summary : MySQL 클라이언트 프로그램과 공유 라이브러리.


Description :


MySQL is a multi-user, multi-threaded SQL database server. MySQL is a


client/server implementation consisting of a server daemon (mysqld)


and many different client programs and libraries. This package


contains the MySQL client programs, the client shared library, and


generic MySQL files.


 



출력 내용은 위와 같이 나온다.


 



'-qpl' 옵션을 사용하면 rpm 패키지가 설치할 파일 목록을 볼 수 있다.


 



[root@localhost Download]# rpm -qpl mysql-server-3.23.58-4.i386.rpm


경고: mysql-server-3.23.58-4.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2


/etc/logrotate.d/mysqld


/etc/rc.d/init.d/mysqld


/usr/bin/mysqladmin


/usr/bin/safe_mysqld


/usr/libexec/mysqld


/usr/share/doc/mysql-server-3.23.58


/usr/share/doc/mysql-server-3.23.58/my-huge.cnf


/usr/share/doc/mysql-server-3.23.58/my-large.cnf


/usr/share/doc/mysql-server-3.23.58/my-medium.cnf


/usr/share/doc/mysql-server-3.23.58/my-small.cnf


/var/lib/mysql


/var/run/mysqld


 



시스템에 설치된 패키지의 버전이 어떻게 되는지 확인해야할 경우가 있다. 이럴 경우에는 '-q' 또는 '-qi'를 사용한다.


 



[root@localhost Download]# rpm -qi php


Name : php Relocations: (not relocateable)


Version : 4.2.2 Vendor: Red Hat, Inc.


Release : 17 Build Date: 2003년 02월 25일 (화) 오후 11시 48분 55초


Install Date: 2004년 02월 22일 (일) 오전 01시 02분 52초 Build Host: sylvester.devel.redhat.com


Group : 개발/언어 Source RPM: php-4.2.2-17.src.rpm


Size : 3821986 License: The PHP License


Signature : DSA/SHA1, 2003년 02월 26일 (수) 오전 12시 19분 56초, Key ID 219180cddb42a60e


Packager : Red Hat, Inc.


URL : http://www.php.net/


Summary : PHP HTML-내장된 스크립트 언어. (PHP: Hypertext Preprocessor)


Description :


PHP is an HTML-embedded scripting language. PHP attempts to make it


easy for developers to write dynamically generated webpages. PHP also


offers built-in database integration for several commercial and


non-commercial database management systems, so writing a


database-enabled webpage with PHP is fairly simple. The most common


use of PHP coding is probably as a replacement for CGI scripts. The


mod_php module enables the Apache Web server to understand and process


the embedded PHP language in Web pages.


 



시스템에 설치된 어떤 패키지가 어떠한 파일들을 풀어놓았는지를 보려면 '-ql'을 사용한다.


 



[root@localhost Download]# rpm -ql php


 



'-qa'를 사용하면 시스템에 설치된 모든 패키지 목록을 보여준다.


 



[root@localhost Download]# rpm -qa


 



mysql이라는 문자열이 들어간 mysql 관련 패키지만 보려면 grep을 파이프로 사용할 수 있다.


 



[root@localhost Download]# rpm -qa | grep mysql


mysql-3.23.54a-11


mysql-server-3.23.54a-11


php-mysql-4.2.2-17



특정한 패키지 그룹을 한꺼번에 다 지우려면 ``을 사용해 한 명령의 출력 결과를 다른 명령의 인자로 사용할 수 있다. 예를 들면 다음과 같다.

rpm -e `rpm -qa | grep mysql`

편리하긴 하지만 한꺼번에 많은 패키지를 지우는 것은 위험하므로 가급적 이렇게 사용하는 것은 피하는 게 좋다.


rpm  목록 알파벳 순으로 뽑기

rpm -qa | sort > ./rpmlist.txt