본문으로 바로가기

Software 관리_YUM

category Linux/Linux Server 2017. 9. 1. 13:16
  • YUM 패키지 관리
YUM( Yellowdog Update Manager, Yellowdog Update Modified )
rpm 명령어를 통해 패키지 설치의 어려움 => 패키지 의존성 관계
이런 rpm의 불편함을 해결하기 위해 사용 - 패키지의 의존성 관계를 해결하고 효율적인 패키지 관리를 위해 


[명령어 형식]

# yum [options] COMMAND


# yum --help /* 옵션들 모두 확인 할 수 있다. yum 옵션도 많아 자주 사용하는 것을 골라 몇개만 정리  필요한건 그때 찾아서 쓴다*/


(명령어 사용예)

확인

# yum list      (# yum list all) yum repository /* 내가 설치된것과 제공중인 패키지 모두 출력 */

# yum list installed  설치된거

# yum list available  설치되지 않은거 

업그레이드( 버전 업) 업데이트 ( 기존의 정보 변경 )

설치

# yum -y update          / * 설치된거 모두 업데이트

# yum -y update php /* php 만 업데이트 rpm -Fvh 와 비슷

# yum -y install php / * rpm -Uvh 와 비슷


# yum -y localinstall php.rpm  /* 로컬에 있을 때 yum으로 설치 */


삭제

# yum (erase|remove) php


[참고] CentOS 5.5 YUM

2017년 3월 31일 부터 Centos 5.x 버전은 기본포리지토리에 설정 되어 있는  http://mirror.centos.org 가 정상적으로 작동 하지 않아 아래와 같은 조치 후 yum을 사용 해야 한다.

기본 레포지토리를 mirrorlist.centos.org 사이트에서 vault.centos.org 변경

# yum list 

-> 실행되지 않을겁니다. 

# cd /etc/yum.redos.d/

-> 설정파일이 들어있는 디렉토리로 이동

# ls

CentOS-Base.repo 을 적절히 수정해서 사용할 수 있지만 연습으로 새로운 repo 파일을 만들어 설정해보겠습니다. 


# vi CentOsS-Base.repo


........... (중략) ............

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

enabled=0


#released updates 

[updates]

name=CentOS-$releasever - Updates

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates

#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

enabled=0


#packages used/produced in the build but not released

[addons]

name=CentOS-$releasever - Addons

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons

#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

enabled=0


#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras

#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

enabled=0


#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus

#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

.......( 중략) ....


-> 이 파일의 설정은 사용하지 않을기에 enabled=0을 각 문단마다 입력합니다. 

vi에디터에서 복사(yy) 붙혀넣기 (p) 

-> 맨위의 [Base] 문단을 복사해 둡니다.


# vi CentOS-Media.repo

-> 마찬가지로 enabled=0 으로  설정합니다. 아마 이미 설정 되어있을겁니다. 확인


# vi linux220.repo    /* 이름은 별 의미 없습니다.  형식( .repo) 꼭 써야합니다.*/

-> 위에서 복사했던 [Base] 문단을 붙여넣습니다. 다음과 같이 수정합니다.

[linux220]

name=CentOS-$releasever - Base

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

baseurl=http://vault.centos.org/5.5/os/i386/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

enabled=1


# yum clean all 

# yum repolist

# yum list

 ( 일단 5.5 버전의 32비트 패키지 파일들이 있는 폴더만을 참조합니다. 완전히 설정하는 방법은 아래에 )


- 업데이트 시뮬레이션

# yum check-update /* 업데이트 해야하는 목록 보여줌 */


[참고] 업데이트 후 재부팅 해야하는가?

# yum check-update | grep kernel 

드라이버나 커널이 업데이트가 된다면 재부팅 해야한다.


- CD 내용으로 yum 설치

CD는 마운트 되어있다고 가정한다. ( Software 관리_RPM  참고)

# cd /media/CentOS_5.5_Final/CentOS

# ls emacs*     /* emacs 라는 패키지를 예로 사용했다. */

............. emacs-21.4-24.el5.i386.rpm  .............

# yum -y localinstall emacs-21.4-24.el5.i386.rpm  

-> 설치되지 않는다면 이것은 CD 안에 들어 있는 패키지가 현재 시스템에 설치된 패키지의 버전보다 낮기 때문이다.

-> 따라서 한번 업데이트가 된 이후에는 반드시 yum site 사용해서 업데이트하거나 혹은 높은 버전의 CD를 가지고 업데이트를 해야 한다.


- CD를 임시적인 yum site로 구성

yum을 구성할때 사용했던 .repo 설정파일을 /media/CentOS_5.5_Final 로 설정하면 사이트가 아는 CD를 참조해서 

다운받는다.


# cd /etc/yum.repos.d

# vi iso.repo 

[linux220]

name=CentOS-$releasever - Base

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

baseurl=file:///media/CentOS_5.5_Final      /*  ' / ' 개수 유의 */

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

enabled=1

-> 기존에 설정했던 linux220.repo 의 enabled는 0으로 설정


- YUM Site 구성하기

CD에 있는 내용을 내 서버에 옮겨서 내 서버가 YUM Site가 된다.

CD ( /media/CentOS_5.5_Final/* )    ->    /var/ftp/pub/CentOS55/DVD


CD는 마운트 되어있다고 가정


# mkdir-p /var/ftp/pub/CentOS55/DVD

# cd /media/CentOS_5.5_Final 

# cp -a * /var/ftp/pub/CentOS55/DVD


# createrepo /var/ftp/pub/CentOS55    /* YUM Repository 생성 */

[참고] createrepo.noarch 설치

# yum -y install createrepo.noarch


# cd /etc/yum.repo.d/

# vi CentOS.repo

[ce55]

name=CentOS5.5

baseurl=file:///var/ftp/pub/CentOS55

gpgcheck=0                    /* gpgkey는 일단 지웠다.  다음에 설명 */

enabled=1



# yum clean all

# yum repolist

# yum list


# rpm -qa | grep vsftpd        /* ftp 패키지 설치 확인 */

# service vsftp restart            /* ftp 서비스 실행 */


# firefox ftp://IP/pub/Centos55



----- 내 서버가 YUM Repository 가 된다 ----------

-Client-

클라이언트는 내 서버의 IP를 .repo 설정 화일에 추가하면 내 서버에서 yum 서비스를 받아 쓸 수 있다.


# vi CentOS55.repo

[CentOS55]

name=CentOS5.5

baseurl=ftp://172.168.XXX.XXX/pub/CentOS55    /* 서버 IP를 적으시면 됩니다. */

gpgcheck=0

enabled=1


# yum clean all

# yum list


[ YUM Repository ]

- server

WEB : /var/www/html/centos55

-> http://IP/centos55


FTP : /var/ftp/pub/centos55

-> ftp://IP/pub/centos55


CD : /media/CentOS_5.5_Final

-> file:///media/CentOS_5.5_Final


Local : /export/centos55

-> file:///export/centos55


- 그룹패키지 설치

패키지 하나를 다운받을때 많은 것들이 함께 받아져야한다면 그것을 그룹으로 묶어 한꺼번에 다운받는다면 더 편하게 사용할수 있을것이다.

그룹은 간단하게 그런 패키지들을 모아놓은것이라고 생각하면된다.

 

[명령어 형식]

# yum groupinstall <group>

# yum groupupdate <group> 


# yum grouplist 

# yum groupinfo <group> 


# yum groupremove <group> 


패키지 그룹 목록 확인

# yum grouplist


[예] xen 설치 

Xen은 윈도우에서 VMware Workstation과 같은 기능을 한다. ( PC용 버전)

[참고] KVM ( VMware Esxi 와 비슷 - Server 용 버전 )

# yum groupinstall Xen /* 대소문자 구분을 잘 해줘야한다. */

# yum grouplist /* Xen이 설치 목록에 올라왔는지 확인한다. */


#reboot 

xen은 재부팅하고 켜질때 Xen Kernel 로 부팅해야한다. 

부팅시 <enter>키를 누르고 xen kernel 선택 


[예] eclipse 설치

# yum -y groupinstall Eclipse    /* 설치 */

# yum grouplist     /* 설치 확인*/


# eclipse &


삭제

# yum groupremove Xen

# yum groupremove Eclipse



- 운영체제 전체 업데이트

# uname -a /* 현제 버전 확인 */

Linux linux220.example.com 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux


# cat /etc/redhat-release

CentOS release 5.5 (Final)


# yum -y update

업데이트 목록이 없다고 뜰겁니다. 

이유는 linux220.repo 파일에 http://vault.centos.org/5.5/os/i386/  -> 5.5 버전의 os 32bit 폴더만 참조하고 있기 때문이다.


이제 완전히 설정하는 방법으로 다시 설정해준다.


# vi CentOS-Base.repo

CentOS-Base.repo.txt

-> 다운받아 내용 붙여넣기어 사용하세요.

기본 레포지토리를 mirrorlist.centos.org 사이트에서 vault.centos.org 변경하는 방법인대 위와 달리 최신 5.11 버전을 받아옵니다.

 -> 기존에 있던 linux220.repo 는 enabled=0 설정합니다.


# yum clean all

# yum repolist

# yum list


# yum check-update

 -> 업데이트 목록이 나옵니다. 5.5 버전에서 .11 버전으로 업데이트 되므로 시간이 좀 걸립니다. 




업데이트 확인

















'Linux > Linux Server' 카테고리의 다른 글

부팅과정  (0) 2017.09.04
Software 관리_Source file  (0) 2017.09.01
Software 관리_RPM  (0) 2017.08.31
SWAP  (0) 2017.08.31
RAID  (0) 2017.08.30