• 흐림동두천 1.0℃
  • 흐림강릉 1.3℃
  • 서울 3.2℃
  • 대전 3.3℃
  • 대구 6.8℃
  • 울산 6.6℃
  • 광주 8.3℃
  • 부산 7.7℃
  • 흐림고창 6.7℃
  • 흐림제주 10.7℃
  • 흐림강화 2.2℃
  • 흐림보은 3.2℃
  • 흐림금산 4.4℃
  • 흐림강진군 8.7℃
  • 흐림경주시 6.7℃
  • 흐림거제 8.0℃
기상청 제공

YUM을 이용한 Redhat 패키지 관리

YUM 이용한 Redhat 패키지 관리

 

YUM (Yellowdog Updater Modified) 통한 Redhat 계열 서버 관리.

 

리눅스 서버 관리자나 IT 종사하는 사람들의 가장 적은 바로 "귀찮음" 이다.
거의 매일같이 나오는 프로그램의 취약성 / 오래된 패키지들의 업데이트 들은 정말 필요하지만, 귀찮은 작업이 아닐수 없다.

 

윈도우의 windows updates처럼 자동으로 패키지를 관리해주면서, 필요한 업데이트를 받을수있다면 하는 생각을 하는 리눅스 관리자들이 많을 것으로 생각된다.

 

그나마 Freebsd, gentoo 등의 OS들은 나름대로의 패키지 관리자가 따로 있어 패키지의 업데이트및 설치를 쉽게 있어 왔으며, 이것은 그들 OS만의 장점으로 자리매김해 오고 있었지만, 설치2 사용이 일반 Redhat계열의 리눅스에 비해 어렵고, 이들 OS 대한 자세한 메뉴얼이나, 도움을 얻을수 있는곳이 별로 없어 국내에서는 많이 사용 되고 있지는 않다.

 

국내에 많이 배포된 linux중에서는 Redhat 있다. 전세계적으로 가장 많은 사용자를 보유하고 있어, 트러블 슈팅 많은 정보를 손쉽게 얻을수 있는 장점은 있었으나, 전문화된 패키지 관리자 없이 apt up2date 통한 패키지 업데이트를 제공해 왔으나 freebsd, gentoo 패키지매니저 만큼 편리한것은 아니었다.

 

그런 와중에 Redhat에서 fedora core 1 내놓으면서 yum 이란 프로그램을 부각시켰으며,(yum 프로그램은 2002년에 이미 제작된 프로그램 이었다.) 프로그램을 통해 Redhat 계열 리눅스의 rpm 패키지들을 편리하게 관리 (update / install / remove) 할수 있게되었다.

 

yum 통해 Freebsd gentoo처럼 자신만의 패키지 관리자를 가지게된 Redhat 계열의 리눅스는 전세계에서 가장 많은 사람들이 쓰는 리눅스 배포판이라는 장점을 이용하여 더욱더 영역을 넓게 펼쳐 나갈것으로 예상 된다.

 

그러면 이제 yum 사용해 보도록 하자.

 

최근 Fedora core에서 소개되었던 yum 프로그램을 fedora 이외에도 redhat 7.2 / 7.3 / 8.0 에서도 사용할수 있게 rpm 배포판으로 배포하고 있으며, 여기에서는 Redhat 7.3 yum 프로그램을 이용해서 Redhat 7.3 패키지를 최신 패키지로 업데이트하고, 필요한 패키지를 업데이트 하는 방법을 알아 보도록 하겠다.


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

 

# fedora core yum 프로그램과 Redhat 7.3 yum 프로그램에는 약간의 차이가 있다.

 

7.3용의 yum 옵션
Usage:  yum [options]
            clean | provides>


fedora core
yum 옵션
Usage:  yum [options]
            clean | provides | search | check-update | groupinstall | groupupdate |
            grouplist >

 

약간의 옵션 수에서 차이를 보이긴 하지만, 실제로 사용하는 데에는 크게 지장이 없다.

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


우선 yum 프로그램은 다음의 경로에서 다운받을수 있다 (Redhat 7.3)

 

1. 다운로드

 http://faq.hostway.co.kr/pds/content.asp?tb=FAQPDS&code=up1&num=27&ref=5&page=1&startpage=1&key=&k_s=0&k_e=0&k_w=0

2. 설치
- rpm -Uvh (ivh) yum_1.0.3_1a_73_kh.i686.rpm(rpm
으로 되어 있으므로 설치는 간단하다.)

 

3. 사용법
가장 간단한 사용법은 다음과 같다.

 

전체 패키지를 업데이트 하는 경우

#yum update


다음의 명령으로만 하면 header정보를 읽어와서 현재 패키지와 비교를 해서 업데이트가 필요한 패키지들을 보여준후에 업데이트를 실시하게 된다. 이것은 서버에 설치 되어있는 전체 패키지를 업데이트 시켜준다. (서버에 설치된 파일중에서 update된것은 모두 설치 - 커널도 포함)

 

#yum update [ 특정 패키지 업데이트 ]


이것은 특정 패키지만을 업데이트 하는데 사용된다.

 

특정 패키지의 설치


서버를 운영하다 보면 특정 패키지를 설치해야 하는 일이 발생하게 된다. 이때에도 직접 패키지를 인터넷이나 CD에서 가져오지 않고, yum 통해서 설치를 할수 있다. (만약 특정 프로그램을 설치 하는 과정에서 의존성이 발생하게 되면 의존성이 발생하는 프로그램까지 같이 받아와서 자동으로 설치를 하게 된다.)

 

다음은 mrtg 프로그램을 설치하는 과정이다.

 

1. yum list 통해서 원하는 프로그램이 존재하는지 확인한다.


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

# yum list mrtg
Gathering package information from servers
Getting headers from: Red Hat Linux 7.3 base
Getting headers from: Red Hat Linux 7.3 updates
Finding updated packages
Downloading needed headers
Looking in Available Packages:
Name                                     Arch       Version
--------------------------------------------------------------------------------
mrtg                                     i386       2.9.17-3

Looking in Installed Packages:
Name                                     Arch       Version
--------------------------------------------------------------------------------

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


2. yum install
명령을 이용해서 mrtg프로그램을 설치한다.

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

# yum install mrtg
Gathering package information from servers
Getting headers from: Red Hat Linux 7.3 base
Getting headers from: Red Hat Linux 7.3 updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: mrtg.i386]
Is this ok [y/N]: y
Getting mrtg-2.9.17-3.i386.rpm
Calculating available disk space - this could take a bit
mrtg 100 % done
Installed:  mrtg.i386
Transaction(s) Complete

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


! mrtg 프로그램의 설치가 끝났다.

 

만일 yum 이용하지 않았다면, 직접 인터넷이나, cd 통해서 mrtg 프로그램을 서버에 업로드해서 인스톨을 했어야 하는 불편함이 있었을 것이다. 하지만 yum 이용하면 얼마나 간단하게 설치가 되는가~


게다가 예제에서는 mrtg 프로그램을 설치하면서 의존성이 있는 프로그램이 없어서 보여지지 않았으나, 앞서서도 이야기 했지만, 만일 의존성 있는 프로그램이 있었다면, yum 의존성 있는 프로그램을 검색해서 같이 자동으로 설치를 했을 것이다.

 

yum 이용한 패지키 삭제

다음으로는 패키지 삭제에 대해서 알아 보도록 하자.
방금 설치했던 mrtg 패키지를 remove 옵션을 이용하여 삭제 하도록 한다.

 

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

 

# yum remove mrtg
Gathering package information from servers
Getting headers from: Red Hat Linux 7.3 base
Getting headers from: Red Hat Linux 7.3 updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[erase: mrtg.i386]
Is this ok [y/N]: y
Erased:  mrtg.i386
Transaction(s) Complete

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


삭제가 완료 되었다.


앞서 이야기 했던것이 의존성 있는 프로그램을 같이 자동으로 설치해 준다고 이야기를 했는데, yum remove의경우 에도 만일 rpm 패키지를 삭제할때 의존성이 걸리는 프로그램이 있으면 프로그램까지 한꺼번에 자동으로 삭제를 해주게 된다.


위의 예의 mrtg 경우에는 지울때 의존성이 걸리는 부분이 없어서 그냥 삭제를 했지만, 만일 아래처럼 의존성이 걸리는 경우라면,


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

# rpm -e ucd-snmp
오류: 패키지들을 제거할 경우 의존성이 깨질 있음:
        ucd-snmp = 4.2.5 (
) ucd-snmp-devel-4.2.5-8.73.1 에서 필요로 합니다
        ucd-snmp = 4.2.5 (
) ucd-snmp-utils-4.2.5-8.73.1 에서 필요로 합니다
        libsnmp.so.0   (
) ucd-snmp-utils-4.2.5-8.73.1 에서 필요로 합니다

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


의존성이 있는 libsnmp.so.0 같이 삭제 되게 되는데, 만일 libsnmp.so.0 시스템에 아주 중요한 파일이었다면 libsnmp.so.0 삭제된 이후에는 시스템이 치명적인 오류를 발생시켜 정상적으로 동작을 하지 않게 된다.


그러므로 yum remove 패키지를 이용해서 패키지를 삭제할때는 주의를 기울여야 한다.

 

여기까지 간단히 yum 이용해서 rpm 패키지 update/install/remove 알아보았다. 지금까지 소개한 기능만으로도 충분히 서버의 패키지를 유지 관리하는데 문제는 없지만, 좀더 yum 대해서 알고 싶은 분들은 manpage (man yum) 이용하기 바란다.

 

- Yum for Red Hat Linux 9 :
http://www.linux.duke.edu/projects/yum/download/2.0/yum-2.0.4-1.noarch.rpm

- Yum for Red Hat Linux 8.0 :
http://www.linux.duke.edu/projects/yum/download/1.0/yum-1.0.3-1_80.noarch.rpm

- Yum for Red Hat Linux 7.3 :
http://www.linux.duke.edu/projects/yum/download/1.0/yum-1.0.3-1_73.noarch.rpm