YUM을 이용한 Redhat 패키지 관리 YUM (Yellowdog Updater Modified)을 통한 Redhat 계열 서버 관리. 리눅스 서버 관리자나 IT에 종사하는 사람들의 가장 큰 적은 바로 "귀찮음" 이다. 거의 매일같이 나오는 프로그램의 취약성 / 오래된 패키지들의 업데이트 들은 정말 필요하지만, 귀찮은 작업이 아닐수 없다. 윈도우의 windows updates처럼 자동으로 패키지를 관리해주면서, 필요한 업데이트를 받을수있다면 하는 생각을 하는 리눅스 관리자들이 많을 것으로 생각된다. 그나마 Freebsd, gentoo 등의 OS들은 나름대로의 패키지 관리자가 따로 있어 패키지의 업데이트및 설치를 쉽게 할 수 있어 왔으며, 이것은 그들 OS만의 큰 장점으로 자리매김해 오고 있었지만, 설치및 사용이 일반 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.다운로드 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)를 이용하기 바란다. 최근들어서 외부에서의 서버내에 설치된 패키지의 취약점을 이용한 해킹이 급증하고 있다. 서버를 관리하는 관리자들이 서버에 설치된 패키지를 항상 최신으로 유지하고 취약점 있는 패키지를 업데이트 하는것만으로도 외부침입에 의한 보안의 70% 이상은 한것이다. 기존에는 패키지를 일일이 업데이트를 하는것이 귀찮아서 잘 신경을 쓰지 않던 관리자라도,이제는 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 |
'유용한 팁' 카테고리의 다른 글
공유 끊기 (0) | 2008.11.10 |
---|---|
한국의 주요 ISP 네임서버 (0) | 2007.08.23 |
뷰스캔 (Vuescan) 사용하기 (0) | 2006.12.26 |
[펌] Regerian Argument (0) | 2005.12.02 |
[펌] 32세 퇴직→연매출 5억원 변리사로 성공 (0) | 2005.04.17 |