2013. 6. 14. 21:54ㆍ개발/서버
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
'개발 > 서버' 카테고리의 다른 글
start apache server I received an error (0) | 2014.12.08 |
---|---|
php compile troubleshooting (3) | 2014.12.08 |
nginx 구라에 속지말자 (0) | 2013.06.14 |
프로그래밍 - gdb , objdump (0) | 2012.02.05 |
네트워킹 - 작은 웹서버 , 웹서버 원리 제작 (0) | 2012.02.05 |