리눅스 YUM 개념과 기본 명령어
yum(Yellodog Update Modified)
yum이란 ellow dog Updater, Modified의 약자이며 레드헷(RPM) 계열의 리눅스 배포판에서 사용되는 프로그램(패키지) 설치 관리 도구입니다. 기존 RPM의 의존성 문제를 해결하기 위해 제공되는 도구이며, RPM의 경우 의존성 이슈로 인하여 필요한 도구들을 사용자가 일일히 설치하는 과정이 진행되었습니다.
기존 RPM에 비해 yum의 장점은 패키지 의존성이 존재할 때 다른 패키지들을 알아서 자동으로 먼저 설치해 주는 리눅스 설치 도구라는 점입니다. 우분투의 apt와 유사한 도구이며, 페도라, CeonOS, 등 RPM 기반 리눅스 배포판에서 사용 빈도가 매우 높은 패키지 관리 프로그램입니다. 패키지 저장소를 수요하는 패키지를 검색하여 다운로드 및 설치까지 처리하면서 패키지들의 의존성을 고려하여 설치할 때 패키지 의존성에 대한 Error를 줄일 수 있습니다.
패키지 의존성은 어떤 특정 패키지를 세팅할 때 필요한 패키지를 먼저 설치해야 하는 의존성을 말 합니다. 리눅스에서 응용프로그램(패키지) 설치 시 패키지가 사용하는 다른 패키지가 필요할 수 있습니다. 이러한 관계를 패키지 의존성이라 하며, 의존 관계인 패키지가 설치되어 있지 않은 경우 해당 패키지가 설치되어 있어야 합니다. 패키지 A를 설치하기 위해 B가 필요하지만 yum의 경우 의존 패키지를 인식하면 자동으로 내려 받아서 설치하게 됩니다.
yum 명령어(기본)
yum 명령어 | 설명 |
~]# yum search | 설치 가능한 패키지 검색 |
~]# yum update | 모든 yum 패키지를 업데이트 함.[재부팅후적용이라고 하는데 test 커널,php 등 버전 그대로임-패키지저장소만 업데이트 됨.] (패키지 명을 지정하지 않으면 모든 패키지가 업데이트 된다.) |
~]# yum list updates | 서버에 설치된 패키지 중에서 저장소에 업데이트된 패키지만 확인 할 수 있다. |
~]# yum update –exclude=kernel* | 커널 제외 업데이트 |
~]# yum check-update | 설치된 프로그램 중 업데이트 된 것을 체크해줌. |
~]# yum -y install [패키지명] | yum 패키지 설치 |
~]# yum –skip-broken update | 충돌 패키지 건너뛰고 기존 패키지들 업데이트(~]# yum clean all 실행 후 => yum update를 해주면 문제 있는 패키지를 쉽게 조회하고 문제 있는 패키지를 삭제하는 조치 등을 취할 수 있다.) |
~]# yum clean all | yum clean [packages metadata all] <= 각각의 캐시 된 데이터를 삭제한다. |
~]# yum repolist | 명령어를 실행하면 현재 추가된 저장소가 표시됩니다. |
~]# /etc/yum.repos.d | yum 저장소 파일의 위치 |
~]# vi /etc/yum.repos.d/저장소이름.repo | 수동으로 저장소를 추가 / yum.repos.d/ 저장소 |
~]# yum list installed | yum으로 설치된 패키지 목록 확인 |
~]# yum list all | 설치가 가능한 모든 패키지 목록 출력 |
삭제 명령어 | |
~]# yum remove [패키지명] | yum 패키지 삭제 [의존성에 의해 같이 설치된 프로그램을 같이 삭제해 준다] |
~]# yum erase [package_name] | 시스템에서 패키지 제거 [의존성에 의해 같이 설치된 프로그램을 삭제하지 않는다. |
dnf 명령어 | dandified > ceonos7은 yum, centos8은 yum의 업그레이드인 dnf 명령을 사용한다고 보면 된다. centos8을 사용할 때 쓰게 될 것이다. |
/etc/yum.conf
yum의 동작 방식을 /etc/yum.conf 파일을 통해 설정할 수 있습니다. 일반적으로 .conf 파일을 수정할 일은 거의 없으며, 어떤 내용이 있는지 정도로 알고 어떤 식으로 동작하는지 이해하는데 참고하면 좋습니다.
- cachedir
- yum 이 다운로드 받는 패키지를 어디에 저장할 지 여부를 설정하는 옵션으로 $basearch 는 “x86_64” 같은 시스템의 아키텍처 문자열로 치환되며(uname -m 과 동일) $releasever 는 RHEL이나 CentOS 의 메인 릴리스 버전(6 등)으로 치환된다. 64비트의 CentOS 6.5 를 설치했을 경우 cachedir 은 “/var/cache/yum/x86_64/6/” 이다.
- keepcache
- 0 또는 1로 설정 가능하며 0 으로 설정할 경우 패키지 설치가 성공하면 헤더와 패키지의 캐쉬를 유지하지 않으며 1이면 캐쉬를 유지한다. 0이 기본 값이다.
- debuglevel
- 디버깅을 위해 자세한 정보를 출력하는 옵션으로 정보 출력의 단계에 따라 0 부터 10까지 설정이 가능하다. 숫자가 클 수록 자세한 정보를 출력하며 0 으로 설정할 경우 정보를 출력하지 않으며 2가 기본 값이다.
- logfile
- yum 이 로깅을 남길 로그 파일의 절대 경로를 설정하며 기본 값은 /var/log/yum.log 이다.
- exactarch
- 0 또는 1로 설정할 수 있으며 1로 설정했을 경우 업데이트시 이미 설치된 패키지와 아키텍처가 일치할 경우에만 업데이트하며 1이 기본 설정이다.
- obsoletes
- 업데이트 명령에만 영향을 미치는 설정으로 0 또는 1로 설정할 수 있으며 1로 설정했을 경우 쓸모없게 된 패키지는 업데이트 하지 않는다. 전체 배포판의 버전을 업그레이드하는 경우에 유용하며 1이 기본 설정이다.
- gpgcheck
- 1로 설정되었을 경우 GNU PG 로 전자 서명한 서명값의 유효성 및 위변조 여부를 검사하며 0 일 경우 검사하지 않는다. 신뢰받는 벤더가 배포한 패키지가 맞는지 확인하기 위해서는 1로 설정하는 게 좋으며 1이 기본 설정이며 gpgcheck 는 개별 저장소마다 별도로 설정이 가능하다.
- plugins
- yum 은 플러그인을 통해 기능을 확장할 수 있으며 1 로 설정했을 경우 yum 의 플러그인을 사용할 수 있고 0 일 경우 사용할 수 없으며 1이 기본 설정이다.
- installonly_limit
- 대부분의 패키지는 새 버전이 나오면 설치하고 예전 버전을 덮어 쓰고 최신 버전 하나만 갖고 있게 되지만 예전 버전을 계속 갖고 있어야 하는 패키지들이 있다. 예로 리눅스 커널이 업데이트 되었다고 가정해 보자. 새로운 커널로 부팅했을 때 예상하지 못한 문제가 생겨서 예전 커널로 부팅해야 할 경우가 발생할 수 있으므로 커널 패키지는 예전 버전을 계속 남겨두어야 한다. installonly_limit 는 이렇게 새 버전을 설치해도 예전 버전을 갖고 있어야 하는 패키지가 동시에 갖고 있을 예전 버전의 최대 갯수를 지정하며 RHEL 6은 3, CentOS 6 은 5로 지정되어 있다.
- bugtracker_url
- CentOS 에만 있고 RHEL 에는 없는 설정으로 버그가 발생했을 경우 보고할 URL 이다.
- distroverpkg
- 현재 사용하고 있는 배포판의 버전을 확인하기 위한 패키지를 설정하며 “yum whatprovides centos-release” 명령어로 결과를 확인할 수 있다.
- group_package_types
- 설정 파일에는 없는 항목으로 yum 의 그룹 관련 명령어중 groupinstall,, groupremove 의 동작에 영향을 미치는 설정으로 mandatory, default,optional 세 가지의 설정이 가능하며 콤마를 구분자로 하여 여러 개를 지정할 수 있다. 그룹내 패키지들은 Mandatory, Default, Optional 로 분리되어 있으며 mandatory, default 로 설정되어 있으면 groupinstall 명령어 수행시 mandatory, default 패키지만 설치한다. 기본 설정은 “mandatory, default ” 이다.