티스토리 뷰


[CentOS] Linux Package Management - RPM


RPM(Redhat Package Manager) 이란?


RPM은 Linux의 Package를 관리하는 도구로써 RPM Package 설치, 삭제, 업데이트를 할 수 있는 가장 기본적인 도구입니다.

RPM Package 설치 시 해당 Package가 필요로 하는 요소를 전부 사용자가 설치해야 하는 번거로움이 존재합니다.


RPM의 주요 단점으로는 의존성 문제가 있습니다. 예를 들어 Python 2.7 Package를 설치하고자 한다면 아래와 같이 의존성을 확인 할 수있습니다.

[root@rpm-test ~]# rpm -qR python-2.7.5-68.el7.x86_64
/usr/bin/python2.7
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libdl.so.2()(64bit)
libm.so.6()(64bit)
libpthread.so.0()(64bit)
libpython2.7.so.1.0()(64bit)
libutil.so.1()(64bit)
python-libs(x86-64= 2.7.5-68.el7
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1




위와 같은 의존성 파일이 필요할 경우 의존성 파일이 어떠한 Package인지 확인하여 해당 Package를 설치해야 합니다.

 - " find " 명령어로 의존성 Package 파일의 경로를 확인합니다.

 - " rpm -qf [ Package 파일 경로 ] " 명령어로 해당 파일이 포함된 Pakcage 정보를 확인하여 설치합니다.

[root@rpm-test ~]# find / -name "*libc.so.6"
/usr/lib64/libc.so.6
 
[root@rpm-test ~]# rpm -qf /usr/lib64/libc.so.6
glibc-2.17-222.el7.x86_64




RPM 사용방법


RPM Install

 - 먼저 " wget [RPM Package 다운로드 URL] " 명령어를 사용하여 RPM Package 파일을 다운로드 받습니다.

root@rpm-test ~]# wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
 
--2018-06-21 16:11:07--  http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Resolving rpms.famillecollet.com (rpms.famillecollet.com)... 195.154.241.1172001:bc8:33a1:100::1
Connecting to rpms.famillecollet.com (rpms.famillecollet.com)|195.154.241.117|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15384 (15K) [application/x-rpm]
Saving to: ‘remi-release-7.rpm’
 
100%[============================================================>15,384      64.2KB/s   in 0.2s   
 
2018-06-21 16:11:08 (64.2 KB/s) - ‘remi-release-7.rpm’ saved [15384/15384]




 - " rpm -ivh [RPM Package] " 명령어를 사용하여 RPM Package를 설치합니다.
 - " rpm -qa | grep [RPM Package] " 명령어를 사용하여 정상적으로 설치되었는지 확인합니다.

[root@rpm-test ~]# rpm -ivh remi-release-7.rpm 
 
warning: remi-release-7.rpm: Header V4 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:remi-release-7.5-2.el7.remi      ################################# [100%]
 
 
 
 
[root@rpm-test ~]# rpm -qa | grep remi
remi-release-7.5-2.el7.remi.noarch




RPM 설치된 패키지 상세확인

 - " rpm -qi [RPM Package] " 명령어를 사용하여 설치된 RPM Package의 상세한 정보를 확인할 수 있습니다.

[root@rpm-test ~]# rpm -qi httpd
 
Name        : httpd
Version     : 2.4.6
Release     : 80.el7.centos.1
Architecture: x86_64
Install Date: Wed 25 Jul 2018 06:55:48 AM UTC
Group       : System Environment/Daemons
Size        : 9817285
License     : ASL 2.0
Signature   : RSA/SHA256, Tue 03 Jul 2018 02:31:55 PM UTC, Key ID 24c6a8a7f4a80eb5
Source RPM  : httpd-2.4.6-80.el7.centos.1.src.rpm
Build Date  : Wed 27 Jun 2018 01:50:38 PM UTC
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.




RPM Uninstall

- " rpm -ev [RPM Package] " 명령어를 사용하여 설치된 RPM Package를 삭제할 수 있습니다.

- RPM Package를 삭제 후 " rpm -qa [RPM Package] " 명령어를 사용하여 확인할 경우 정상적으로 삭제된 부분을 확인할 수 있습니다.

[root@rpm-test ~]# rpm -ev httpd
Preparing packages...
httpd-2.4.6-80.el7.centos.1.x86_64
 
[root@rpm-test ~]# rpm -qa httpd
[root@rpm-test ~]





Comments
최근에 올라온 글