Friday, April 13, 2018

CentOS 6.6 리눅스 관리] 6. RPM (Red Hat Package Manager - 패키지 관리)


안녕하세요. 썬구루입니다. 이번 이 게시물에서는 RPM (Red Hat Package Manager)에  알아볼 것입니다. 각 운영체제들은 소프트웨어를 배포, 관리하기 위한 방법을 제공합니다. 레드햇(Red Hat) 리눅스는 RPM이라는 소프트웨어 배포, 관리 시스템을 만든 것이죠.

컴퓨터 분야에서 패키지(Package)란 소프트웨어에 관련된 파일 및 디렉터리(폴더) 꾸러미를 말합니다. RPM은 레드햇 (Red Hat)에서 패키지를 쉽게 배포, 관리, 삭제하기 위해 만든 리눅스 소프트웨어 패키지의 표준 포맷(Format)이며 다른 리눅스에서도 많이 사용되고 있습니다. 당연 CentOS 리눅스는 RHEL(Red Hat Enterprise Linux)의 복제(Clone)이니 소프트웨어 배포, 관리를 위해 RPM을 사용합니다.


저희는 RPM 패키지를 관리하기 위해 사용되는 rpm 명령에 대해 알아볼 것입니다. 그리고 이를 위해 CentOS 6.6 설치 ISO 파일을 사용할 것입니다. 현업에서 항상 패키지를 설치, 삭제하는 것은 아닙니다. 관련 사업으로 시스템이 납품될 때 운영체제와 응용프로그램을 설치합니다. 그때 잠깐 설치되며 수 년 정도 운영되다가 업그레이드가 필요할 때 그때 다시 업그레이드 패키지를 설치하는 것입니다. 뭐 보안적인 문제가 있을 때에도 설치를 하지만요.

RPM 패키지를 설치할 때 그냥 하나의 패키지만 설치하면 끝나면 좋지만 간혹 의존성 관계를 가지는 패키지들이 있습니다. C 패키지를 설치해야 B 패키지가 설치되고 B 패키지를 설치해야 A 패키지가 설치되는 그러한 것 말이죠. 이러한 의존성 관계는 초급 관리자를 난감하게 만들기도 합니다.

■ rpm 명령

레드햇 (Red Hat) 계열의 리눅스에 소프트웨어 패키지를 배포, 관리, 삭제하기 위해 사용되는 명령이다.

1). 명령 형식

rpm [옵션] [PACKAGE_NAME]

2).  옵션

옵 션
내 용
-q
 패키지를 확인(query)하기 위해 사용된다. -a 와 -l 옵션과 같이 사용할 수도 있다.
-a
 모든 패키지를 확인하기 위해 사용된다. -q와 같이 사용
-l
 해당 패키지에 관련된 파일을 출력한다. -q와 같이 사용
-f
 존재하는 패키지 관련 파일에 대한 패키지 이름을 출력한다. -q와 같이 사용
-i
 옵션의 처음에 사용되면 설치(Installation)를 의미하고 -q 옵션 뒤에 오면 패키지 정보(information) 출력을 의미한다.
-v
 세부 정보 출력 (Verbose Mode) 
-h
 패키지가 설치될 때 진행률을 # 기호로 보여줌
-e
 패키지를 삭제(erase) 하기 위해 사용된다. 
-U
 패키지를 업그레이드 하기 위해 사용된다. 
--force
 강제의 의미를 가진다. 
--nodeps
 의존성 무시 

3) 예제

▶ 패키지 질의(Query)

아래는 vsftpd-2.2.2-12.el6_5.1.x86_64 패키지가 존재하는지 확인하는 명령이다.

[root@sunguru Packages]# rpm -q vsftpd-2.2.2-12.el6_5.1.x86_64
vsftpd-2.2.2-12.el6_5.1.x86_64
[root@sunguru Packages]# 

아래는 현재 서버에 몇 개의 패키지가 설치되어 있는지 확인하는 명령이다. 그리고 전체 패키지 중 vsftpd 관련 패키지를 확인하는 명령이다.

[root@sunguru Packages]# rpm -qa | wc -l
962
[root@sunguru Packages]#
[root@sunguru Packages]# rpm -qa | grep -i vsftpd
vsftpd-2.2.2-12.el6_5.1.x86_64
[root@sunguru Packages]# 

아래는 vsftpd 패키지 관련 파일을 확인하기 위해 -ql 옵션을 사용하였다. 출력되는 파일명이 많기 때문에 wc -l 명령으로 패키지 관련 파일이 몇 개 인지를 확인하였다.

[root@sunguru Packages]# rpm -ql vsftpd-2.2.2-12.el6_5.1.x86_64 | wc -l
60
[root@sunguru Packages]# 

아래는 vsftpd 패키지 관련 파일 중 conf 이름으로 끝나는 파일만 출력하는 명령이다.

[root@sunguru Packages]# rpm -ql vsftpd-2.2.2-12.el6_5.1.x86_64 | grep "conf$"
/etc/vsftpd/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
[root@sunguru Packages]#

아래는 파일에 관련된 패키지를 확인하기 위해 사용되는 명령이다.

[root@sunguru Packages]# which ls
alias ls='ls --color=auto'
 /bin/ls
[root@sunguru Packages]# rpm -qf /bin/ls
coreutils-8.4-37.el6.x86_64
[root@sunguru Packages]#
[root@sunguru Packages]# which vsftpd
/usr/sbin/vsftpd
[root@sunguru Packages]# rpm -qf /usr/sbin/vsftpd
vsftpd-2.2.2-12.el6_5.1.x86_64
[root@sunguru Packages]# 

아래는 패키지에 관련된 정보를 확인하기 위해 사용되는 명령이다.

[root@sunguru Packages]# rpm -qi vsftpd-2.2.2-12.el6_5.1.x86_64
Name        : vsftpd                       Relocations: (not relocatable)
Version     : 2.2.2                             Vendor: CentOS
Release     : 12.el6_5.1                    Build Date:
Install Date:                                  Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Daemons    Source RPM: vsftpd-2.2.2-12.el6_5.1.src.rpm
Size        : 339412                           License: GPLv2 with exceptions
Signature   : RSA/SHA1, 2014년 08월 05일 (화) 오전 09시 00분 40초, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://vsftpd.beasts.org/
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.
[root@sunguru Packages]#

▶ 패키지 삭제(Erase)

아래는 vsftpd 패키지를 삭제하는 명령이다.

[root@sunguru Packages]# rpm -e vsftpd-2.2.2-12.el6_5.1.x86_64
[root@sunguru Packages]#
[root@sunguru Packages]# rpm -qa |grep ftp
[root@sunguru Packages]# 

▶ 패키지 설치(Installation)

아래는 vsftpd 패키지를 설치하는 명령이다. CentOS 6.6 설치 ISO 파일을 가상머신 CD/DVD 디바이스에 삽입하여 사용할 수 있도록 만든다.

[root@sunguru Packages]# rpm -ivh vsftpd-2.2.2-12.el6_5.1.x86_64.rpm
경고: vsftpd-2.2.2-12.el6_5.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
준비 중...               ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
[root@sunguru Packages]#
[root@sunguru Packages]# rpm -q vsftpd-2.2.2-12.el6_5.1.x86_64
vsftpd-2.2.2-12.el6_5.1.x86_64
[root@sunguru Packages]#
[root@sunguru Packages]# rpm -qa | grep  vsftpd
vsftpd-2.2.2-12.el6_5.1.x86_64
[root@sunguru Packages]# 

▶ 패키지 업그레이드(Upgrade)

아래는 vsftpd 2.2.2-12를 2.2.2.-14로 업그레이드하는 명령이다. http://archive.kernel.org/centos-vault/6.7/os/x86_64/Packages/  사이트에서 vsftpd-2.2.2-14.el6.x86_64.rpm 파일을 내려받아 VMware Workstation의 드래그 앤 드롭 기능을 사용하여 /root 디렉터리에 파일을 복사한 후 이 파일을 사용하여 업그레이드한다. 이 기능을 사용하기 위해서는 CentOS 가상머신(Virtual Machine)에 VMware Tools가 설치되어 있어야 한다.

[root@sunguru Packages]# cd /root
[root@sunguru ~]#
[root@sunguru ~]# ls
anaconda-ks.cfg  install.log.syslog              공개      문서      비디오  음악
install.log      vsftpd-2.2.2-14.el6.x86_64.rpm  다운로드  바탕화면  사진    템플릿
[root@sunguru ~]#
[root@sunguru ~]# file vsftpd-2.2.2-14.el6.x86_64.rpm
vsftpd-2.2.2-14.el6.x86_64.rpm: RPM v3.0 bin i386/x86_64 vsftpd-2.2.2-14.el6
[root@sunguru ~]#
[root@sunguru ~]# rpm -qa | grep vsftpd
vsftpd-2.2.2-12.el6_5.1.x86_64
[root@sunguru ~]#
[root@sunguru ~]# rpm -Uvh vsftpd-2.2.2-14.el6.x86_64.rpm
경고: vsftpd-2.2.2-14.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
준비 중...               ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
[root@sunguru ~]#
[root@sunguru ~]# rpm -qa | grep vsftpd
vsftpd-2.2.2-14.el6.x86_64
[root@sunguru ~]# 

여기까지 CentOS 리눅스 환경에서 패키지를 관리하기 위해 사용되는 rpm 명령 사용법에 대해 알아보았습니다. 다음 게시물에서는 소프트웨어 패키지를 보다 간편하게 관리할 수 있는 방법을 제공하는 YUM에 대해 알아보도록 하겠습니다.






No comments:

Post a Comment