yum(Yellodog Update Modified)
yum이란 Yellodog Update Modified의 약자로 레드햇 계열의 리눅스 배포판에서 사용하는 프로그램(패키지) 설치 관리 도구 입니다. 명령어 이름으로만 봤을때는 전혀 기능과 관련이 없어보이기도 합니다. 그러나 yum은 rpm 명령어가 해결하지 못했던 패키지 의존성 문제를 해결한 똑똑한 패키지 관리 툴입니다. yum 명령어를 사용하면 패키지 의존성 문제를 자동으로 처리하면서 설치, 업데이트, 삭제를 진행할 수 있습니다.

여담으로 yum 발음을 궁금해 하시는 분이 계실 수 있는데 저의 경우 윰으로 발음해서 사용하곤 했는데 염으로 발음하시는 분이 많으며, 검색해보니 영어권에서 냠냠 소리를 뜻하는 yum이 염이라는 발음을 사용하는 것을 알고 최근에는 저도 염으로 발음하는 중입니다.




패키지 의존성이란
앞서 포스팅 했던 글 중 RPM이라는 패키지 관리 매니저를 살펴 보았습니다.  -> [Linux] 리눅스 RPM이란? 패키지 관리 및 RPM 사용법 
그러나 RPM의 가장 큰 단점은 패키지 의존성이었습니다. 패키지 의존성을 간단히 설명하자면 A라는 패키지를 설치하는데에 있어서 B패키지를 먼저 설치해야 하는 것입니다. 이유는 A라는 패키지를 B라는 패키지의 기능을 사용하도록 제작 되었기 때문입니다.




그러나 문제는 B 패키지가 C라는 패키지에 의존성을 지니고 그 이외에서 서로 여러 패키지들간에 의존성을 지닐때 입니다. 이렇게 패키지 의존성이 복잡해 질수록 패키지 관리가 어려워지고 많은 시간을 투자하게 되는 문제점이 있었습니다.




패키지 의존성 문제를 해결한 yum
RPM 명령어가 해결하지 못한 패키지 의존성 문제를 yum 명령어는 자동으로 필요한 패키지들까지 설치해 줌으로써 패지키 의존성 문제를 해결해 주었습니다. 필요한 패키지들은 인터넷상에 존재하는 패키지 저장소 서버로부터 다운로드 받아 설치하게 되므로 인터넷에 연결되어 있어야 합니다.

리눅스 특성상 서버의 역할을 하기 때문에 인터넷에 연결되어 있지 않은 일은 거의 없을것이며, 만약 보안상 사설망에서만 사용하는 네트워크 환경이라면 yum의 패키지 의존성 해결 기능은 사용할 수 없기때문에 RPM과 별다른 차이점이 없어집니다.

또한 패키지 저장소 서버는 /etc/yum.conf와 /etc/yum.repos.d/ 디렉터리의 저장소파일을 통해 관리하게 됩니다. 자세한 내용은 현재 글 하단의 다음글 링크를 참조합니다.



명령어 사용법
명령어 사용 형식은 다음과 같습니다.
yum [옵션] [명령] [패키지명]                                                                
cs


패키지 설치
yum을 통해 vsftpd를 설치하고 싶은 경우 다음과 같이 사용합니다.
만약 vsftpd가 의존하는 다른 패키지들이 있다면 해당 패키지들을 자동으로 설치한 후에 진행합니다.
또한 install 명령은 패키지가 이미 설치되어 있다면 최신 버전으로 업데이트를 진행합니다.
yum install vsftpd
yum -y install vsftpd  # y옵션을 사용하면 사용자에게 yes/no 여부를 묻지 않고 넘어감                
cs



.rpm 파일을 설치하고 싶은 경우
만약 rpm 패키지 파일을 가지고 있는 경우 다음과 같이 설치 가능합니다. 이때 rpm 파일을 설치하면서 필요한 의존 패키지가 있다면 인터넷으로 해당 패키지들을 먼저 설치한 후 rpm 패키지 설치를 진행합니다.
yum localinstall rpm패키지.rpm                                                            
cs



GPG 키 검사 생략하여 설치
CentOS7에서 인증되지 않은 rpm 패키지를 설치하는 경우 설치가 되지 않는 경우가 있습니다. 이럴경우 다음과 같이 옵션을 사용하여 GPG 키 인증을 생략하고 설치합니다.
yum install --nogpgcheck rpm패키지.rpm                                                    
cs



업데이트 가능한 패키지 목록 확인
패키지를 업데이트하기 전 업데이트할 패키지가 있는지 체크할 수 있습니다.
yum check-update                                                                        
cs



패키지 업데이트
설치 되어 있는 패키지를 업데이트 하고 싶은 경우에는 다음과 같이 사용합니다.
업데이트 명령어는 자주 사용되지 않는데, 이유는 yum install 명령어가 설치뿐만 아니라 업데이트까지 제공하지 때문입니다.
yum update 패키지명
yum update  #패키지명을 지정하지 않으면 업데이트 가능한 모든 패키지를 업데이트함                
cs



패키지 삭제
설치된 패키지 삭제는 다음과 같이 사용합니다. 패키지를 삭제하는 경우 의존성 있는 패키지들 또한 자동으로 삭제됩니다.
yum remove 패키지명                                                                        
cs


패키지 정보 확인
패키지의 요약 정보를 볼 수 있습니다.
yum info 패키지명                                                                        
cs


저장소 목록 지우기
다운로드한 패키지 목록을 지우고 다시 yum install 을 실행하면 새로 패키지 목록을 다운로드합니다.
yum clean all                                                                            
cs




패키지 list 확인 
list 명령을 통해 패키지 목록을 확인할 수 있습니다.

저장소 서버에 있는 모든 패키지 목록을 확인하는 경우 다음과 같이 사용합니다.
수많은 패키지들이 있기 때문에 한눈에 보려면 파이프와 grep을 활용합니다.
yum list
yum list | grep 패키지명 #원하는 패키지목록만 확인하고 싶은 경우                            
cs



설치된 패키지 중 업데이트된 패키지 목록을 보고싶은 경우
yum list updates                                                                        
cs

 


설치 가능한 패키지 리스트
yum list available                                                                        
cs

설치된 패키지 리스트 확인
yum list installed                                                                        
cs



yum의 핵심 명령어들을 알아 보았습니다. 이외에도 yum 패키지 저장소 관리, 패키지 그룹, 환경(Environment) 그룹 설치 등의 고급 기능들이 있는데, 다음 글에서 알아보도록 하겠습니다.


다음글
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,