728x90
반응형
yum


◆ 설명

1. Yum은 Yellow dog Update라고도 하고 Duke University에서 RPM 설치를 개선하기 위해 개발한 패키지 관리자

2. Yum은 패키지 저장소를 수요되는 패키지를 검색하고 다운로드 하여 설치까지 처리하면서 패키지들의 의존성을 고려하여 설치할때 패키지 의존성에 대한 error를 줄일 수 있다

3. Yum은 /etc/yum.conf라는 설정파일을 사용

4. rpm은 rpm으로 설치하는 것이 일반적. 그러나 yum으로도 설치가 가능하다. yum으로 설치하면 "yum list"에도 보이게 되는 장점이 있다.



사용법

# yum [옵션] [모드] 패키지



옵션

-y : 설치여부를 묻지 않고 설치



모드

install : 패키지 설치

check-update : 업데이트 check

update : 업데이트 설치

update-to : 지정된 업데이트 설치

remove : 패키지 삭제

info : 패키지 정보 표시

localinstall : 다운로드 한 패키지 설치





YUM 명령어 정리


◆ 현재 설치된 패키지에 문제가 있는지 검사함

# yum check [패키지]
 
Ex) # yum check
    
     # yum check yum.noarch

 

◆ 업데이트가 필요한지 검사함

# yum check-update [패키지]

Ex) # yum check-update

    # yum check-update yum.noarch

 

◆ 캐시 된 데이터를 제거

# yum clean



◆ 캐시되어 있는 것을 모두 지움

# yum clean all

 

◆  패키지에 대한 의존성을 테스트

# yum deplist [패키지]

Ex) # yum deplist openssh-5.3p1-94.el6.x86_64



◆ 최신 버전으로 설치 패키지를 동기화

# yum distribution-synchronization



◆ 설치된 패키지를 다운그레이드

# yum downgrade

Ex) # yum downgrade mysql

     

◆ 설치된 패키지(들)를 시스템에서 삭제

# yum erase [패키지1, 2...]
 
  Remove a package or packages from your system.



◆ 그룹 패키지의 정보를 출력

# yum groupinfo

Ex) # yum groupinfo "E-mail server"

   

◆ 지정한 그룹에 속한 모든 패키지를 설치

# yum groupinstall [그룹]

Ex) # yum groupinstall "E-mail server"
 


◆ 패키지 그룹의 리스트를 출력

# yum grouplist

  - Installed Groups : 설치된 그룹들

  - Available Groups : 사용가능한 그룹들

  - Avaliable Language Groups : 사용 가능한 언어 그룹

Ex) # yum grouplist "System Management"



◆ 그룹에 속한 모든 패키지를 시스템에서 삭제

# yum groupremove [그룹]

Ex) # yum groupremove "E-mail server"

 

◆ yum의 도움말을 출력

# yum help

 

◆ yum 패키지에 대한 최초 설치 및 업데이트 등 히스토리를 출력

# yum history

 

◆ 서버상에 존재하는 패키지에 대한 정보를 출력

# yum info [패키지]

Ex) # yum info "ypbind"



◆ 서버상에 존재하는 업데이트가 필요한 패키지에 대한 정보를 출력

# yum info updates [패키지]



◆ 시스템에 선택한 패키지를 설치

# yum install [패키지1, 2, ...]

Ex) # yum install "yum.noarch"



◆ 서버에 있는 그룹 및 패키지의 리스트를 확인 (서버에 있는 모든 리스트가 다 나온다. grep으로 검색해야 함)

# yum list

Ex) # yum list | grep 'yum.noarch'

    # yum list [정규식]

    # yum list [*/?]

 

◆ 시스템에 설치가 가능한 모든 패키지를 출력

# yum list all

  

◆ 현재 시스템에 설치된 패키지들 중에 업데이트가 필요한 리스트를 출력

# yum list updates

Ex) # yum list updates glib2.x86_64

 

◆ 현재 시스템에 설치된 패키지들을 출력

# yum list installed

Ex) # yum list installed 'yum.noarch



◆ 파일 이름에서 저장된 트랜잭션을 로드

# yum load-transaction



◆ 메타 데이터 캐시를 생성

# yum makecache



◆ 파일이 제공하는 패키지 정보의 출력
 
# yum provides

# yum whatprovides

# yum provides /bin/gzip

 

◆ 선택한 패키지를 다시 설치

# yum reinstall [패키지]

Ex) # yum reinstall "yum.noarch"

 

◆ 구성된 소프트웨어 저장소를 표시

# yum repolist



◆ 주어진 의존성을 제공하는 패키지를 결정
 
# yum resolvedep


 
◆ 서버에 존재하는 리스트의 파일명과 summary에서 지정한 단어가 포함되어 있는 패키지의 파일명과 설명을 출력

# yum search

Ex) # yum search "yum"



◆ 파일명과 summary외 모든 항목에서 지정한 단어가 포함된 것들을 출력

# yum search all

Ex) # yum search all "yum"

 

◆ yum Shell에 들어가서 관련한 명령어들을 실행

# yum shell

 

◆ 시스템에 설치되어 있는 패키지를 업데이트 (설치되어 있는 패키지 중 업데이트가 필요한 것들에 대하여 다운로드 및 설치를 진행)

# yum update

 

◆ 시스템에 설치되어 있는 패키지를 업그레이드

# yum upgrade

 

◆ 설치되어 있는 yum 패키지의 정보를 출력

# yum version



◆  불완전하게 설치된 패키지나 YUM 설치중 장애가 발생한 패키지를 복구하여 설치하는 명령어

# yum-complete-transaction [options]  



◆  yum repository의 rpm 의존성을 체크

#repoclosure --repofrompath=base,/xxx/yyy/x86_64/BASE/RPMS/

--repofrompath=update,/xxx/yyy/x86_64/UPDATE/RPMS/

yum 이용하여 repository(저장소)를 구축한 경우,repository 안에 rpm의 의존성을 체크할 필요가 있다.

repository의 rpm의 의존성이 맞지 않는 경우 yum을 이용한 설치시에 의존성 에러가 발생하기 때문이다.

하지만 rpm 의존성을 수동으로 확인하는 것은 매우 어렵고 고난도의 작업이다.

때문에 최신의 yum-utils 패키지 안에는 repoclosure라는 툴을 제공한다.

1. base, update 는 구분되기 위한 아무 이름이나 넣으면 된다.

2. 명령의 "," 좌우로 공백(space)를 넣으면 안된다.

3. 디렉토리가 더 많은 경우에는 --repofrompath 를 계속 반복한다.

이 명령어의 결과는 yum 으로 설치 할경우와 100%동일하지 않다.

그 이유는 rpm의 Obsoletes 태그와 같은 일부 rpm 의존성등은 처리가 안되기 때문인데,

이렇게 한두개 나온 의존성 문제는 스스로 확인이 필요





YUM Repo가 꼬였을 경우 초기화


◆ yum repository가 꼬였을 경우 yum 초기화하기


◆ yum 명령어를 이용해서 어플리케이션을 설치하다보면 가끔 repository가 꼬여서 yum install 등 옵션이 구동되지 않을때 사용


◆ 방법 

1. /etc/yum.repos.d/ 이동해서 repository 지우기

# cd /etc/yum.repos.d/ //repository 저장 디렉토리로 이동
# ls -al  // repository 확인
# rm -f 삭제할 repository  // base는 지우시면 안돼요. 지웠다가 낭패 봤어요...
# ls -al  // 확인


2. /var/cache/yum/에서 캐쉬디렉토리 삭제

# cd /var/cache/yum/
# ls -al // 캐쉬 디렉토리 확인
# rm -rf x86_64


3. headers, packages, metadata 삭제

# yum clean headers
# yum clean packages
# yum clean metadata






yum의 작동 방식




◆  #

주석이므로 없는 것과 마찬가지다.



◆  name

저장소의 이름이다. 보기 편한 이름으로 아무 이름이나 지정해도 되며, 별로 중요하지 않다.



◆  failovermethod

'yum' 명령은 baseurl에 적혀 있는 URL에 접속하는 데, 이때 필요한 접속 방식을 정한다. priority 와 roundrobin 중 하나를 설정할 수 있으며, 이 행의 설정 값을 생략하면 priority가 기본값이 된다. priority는 이어서 나오는 baseurl에 여러 개의 URL이 적혀 있으면 가장 먼저 적혀 있는 URL부터 차례대로 접속을 시도한다. roundrobin은 baseurl에 여러 개가 적혀 있는 URL 중 임의로 선택된 URL에 접속한다.



◆  baseurl

URL 이 적혀 있어야 한다. http, ftp, file 3가지 중 하나가 오면 된다. 독자가 저장소의 URL을 정확히 안다면 직접 적어도 된다. 또, 여러 개가 이어져서 나올 수 있다.



◆  mirrorlist

baseurl에 설정 값이 생략되어 있으면, 대신 mirrorlist에 적혀 있는 URL이 사용된다. mirrorlist의 URL에는 전 세계에 분포된 여러 개의 저장소가 연결되어 있다.



◆  enabled

이 저장소를 사용할지 여부를 1(사용), 0(사용 안 함)으로 지정할 수 있다. 이 행을 생략하면 기본값은 1이다.



◆ metadata_expire

다운로드한 메타 데이터(패키지의 목록)가 만료되는 기간을 지정한다. 'd'는 days, 'h'는 hours, 'm'은 minutes 단위로 설정할 수 있다. 이 행은 생략해도 된다.



◆ gpgcheck

패키지의 GPG 서명을 확인할지 여부를 1(사용), 0(사용 안함)으로 지정할 수 있다. 1로 지정할 경우, 이어서 gpgkey 항목을 반드시 설정해야 한다.


[gpg 개념]

1. GPG 서명은 GnuPG(Gnu Privacy Guard)라고도 부르는데, rpm 패키지를 인증할 때 암호화된 서명을 사용하는 방법

2. 페도라 프로젝트에서 제공하는 rpm 패키지는 GPG 서명을 함으로써 잘못된 패키지가 설치되는 일을 방지

3. 메시지나 파일을 암호화하여 전송할 수 있는 툴. 소스를 배포하는 각종 프로그램의 변조 유무를 검사할 수 있는 프로그램

4. 배포자의 서명과 서명된 파일이 제공되므로 소스에 대한 무결성 검사

5. 메일이나 중요한 데이터에 대해 서명과 함께 전송함으로써 허가된 사용자만 해당 데이터를 볼 수 있는 권한을 부여

6. 보안 메일, 전자 서명 시스템에서 응용 가능



◆  gpgkey

아스키 GPG 키가 들어 있는 저장소의 URL이 적혀 있으면 된다.


이 중에서 꼭 필욘한 것은 [식별자]와 name, baseurl, gpgcheck 정도





yum 고급 옵션 


◆ 여러개의 yum repository가 있을 경우 사용할 repos 를 지정, * 같은 wildcard를 사용할 수 있다

-enablerepo=[repo]     



◆ 사용하지 않을 repos 를 지정한다. wildcard 사용 가능

--disablerepo=[repo]     



◆ GPG 서명검증을 사용하지 않는다. 해당 repos 의 공개키가 없어서 서명검증에 실패할 경우에 사용
--nogpgcheck     



◆ debugging level을 지정한다. 0 - 10 까지 가능하며 숫자가 클수록 자세한 정보를 출력

-d [debug level]     



◆ yum 진행중 나오는 질문을 모두 yes 로 처리한다. 삭제할 경우에는 의존성있는 모든 패키지까지 삭제되므로 주의

-y, --assumeyes    



◆ yum repository 를 제공하지 않고 rpm 으로만 제공하는 패키지가 있을 경우 (Ex: MySQL) 유용한 명령어다.

# yum localinstall

rpm 을 로컬에 다운로드하고 yum localinstall 로 설치하면 된다.

rpm -ivh 로 설치할 수도 있지만 yum  으로 작업하면 transaction 기록이 남으므로 yum history 를 사용하여 rollback 이 가능하다.

rpm 제작사의 서명이 없어서 에러가 날수 있으므로 --nogpgcheck 옵션을 추가해야 할 경우도 있다.





yum 플러그인


◆ downloadonly plugin

package 를 설치하지 않고 rpm 을 다운로드만 해주는 플러그인



download 시에는 --downloadonly 옵션을 붙여서 yum 을 실행



RHEL7 or CentOS7 에서는 변경







반응형

'Linux' 카테고리의 다른 글

Linux 실시간 명령어 (watch, while)  (0) 2018.08.08
Linux RPM  (0) 2018.08.08
Linux ntpd 설정  (0) 2018.08.08
Linux du  (0) 2018.08.08
Linux sort  (0) 2018.08.08

+ Recent posts