본문 바로가기
Technical/System

Redhat Linux RPM 사용법

by (주)이너엔 2021. 4. 16.

RPM 사용법 정리

 

RPM(Red Hat Package Management)은 레드햇 사와 수세 리눅스 사의 리눅스 배포본 제품에서 사용하는 패키지의 설치 및 제작 관리 소프트웨어다. RPM을 사용하면 패키지 관리를 쉽고 효율적으로 할 수 있다. 물론 레드햇 리눅스인 경우, '응용 프로그램 추가/삭제'(시작->시스템 설정->응용 프로그램 추가/삭제)에서 윈도우즈 식으로 쉽게 프로그램을 추가하고 삭제할 수 있지만 보다 구체적으로 작업을 하려면 역시 RPM이 필요하다. 여기서는 RPM 사용법을 간단히 정리해보겠다.

 

 

RPM 버전 확인

 

[root@localhost root]# rpm --version

RPM 버전 - 4.2

 

RPM 도움말 출력

 

[root@localhost root]# rpm --help

 

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

 

[root@localhost root]# rpm --help | less

 

또는,

 

[root@localhost root]# 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)

 

설치/제거

 

[root@localhost Download]# rpm -i 어떤.rpm

[root@localhost Download]# rpm -U 어떤.rpm

[root@localhost Download]# rpm -ivh 어떤.rpm

[root@localhost Download]# rpm -Uvh 어떤.rpm

 

 

'-i' 옵션이나 '-U' 옵션은 간단히 설치하거나 업그레이드할 때 사용하고, 일반적으로 '-ivh''-Uvh'를 사용하는데 '-Uvh'를 더 많이 사용한다. 'v'는 설치 과정에서 여러가지 정보를 출력하고 'h''#'으로 진행되는 과정을 출력한다.

 

기타 옵션

 

--force : 강제로 설치한다. --replacepkgs, --replacefiles, --oldpackage를 함께 사용하는 격이다.

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

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

 

 

[root@localhost Download]# 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: 20031028() 오전 050454

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, 20031029() 오전 085312, 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: 20030225() 오후 114855

Install Date: 20040222() 오전 010252Build Host: sylvester.devel.redhat.com

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

Size : 3821986 License: The PHP License

Signature : DSA/SHA1, 20030226() 오전 121956, 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

 

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

 

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

 

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

 

---------------------------------------------------------------------------

 

우선 RPM은 미국의 레드햇이라는 리눅스 회사에서 공개한 패키징 시스템을 말 합니다.

1. 설치 하기

rpm -ivh 설치할 패키지명.rpm

의존성 에러가 있을 경우 설치

rpm -ivh --force 설치할 패키지명 (단 설치한 패키지가 제대로 동작할지는 장담할 수 없습니다. 의존성 에러는 다 해결해 주시는것이 좋습니다. ^^;)

2. 업그레이드

rmp -Uvh 업그레이드할 패키지명.rpm

3. 제거

rpm -e 제거할 패키지명

의존성 에러가 날 경우 제거

rpm -e --nodeps 제거할 패키지명

4. SRPM 컴파일

rpm --rebuild 펄파일 할 패키지명.src.rpm

이때 컴파일 된 패키지는 

/usr/src/redhat/BUILD (여기 없으면 /usr/src/redhat/RPMS/* 디렉토리를 살펴 보십시오.)

 

댓글