yum에 대해서
개념
- Yellowdog Update Modified의 약자
- 레드햇 계열의 리눅스에서 사용하는 패키지 설치 관리 도구
- rpm이 해결하지 못했던 패키지 의존성 문제를 해결한 스마트한 패키지 관리 툴
- 패키지 의존성 문제를 자동으로 처리하면서 설치, 업데이트, 삭제를 진행 → Spring(=rpm)에서 안되던 dependency 주입을 Springboot(=yum)에서 해주는 느낌
- 발음은 대부분 염이라고 한다..!
💡 패키지 의존성 이란?
A라는 패키지를 설치하려면 B 패키지를 먼저 설치해야 하는 것이다.
A라는 패키지를 B 패키지의 기능을 사용하도록 제작되었기 때문이다.

서로 여러 패키지들이 의존성을 갖게 되어 패키지 간의 의존 관계가 점점 복잡해지게 되고, 관리가 어려워지는 문제가 있다.
사용법
- 필요한 패키지는 인터넷에 있는 패키지 저장소 서버로부터 다운로드 받기 때문에 인터넷에 연결된 상태여야 함
- 패키지 저장소 서버는
/etc/yum.conf
와/etc/yum.repos.d/
디렉토리의 저장소 파일을 통해 관리됨
# 사용 형식
yum [옵션] [명령] [패키지명]
# 설치
yum install 패키지명
yum -y install 패키지명 # y옵션을 사용하면 사용자에게 yes/no 여부를 묻지 않고 넘어감
# 업데이트 가능한 패키지 목록 확인
yum check-update
# 업데이트
yum update 패키지명
# 삭제
yum remove 패키지명
# 정보 확인
yum info 패키지명
# 패키지 list ghkrdls
yum list
yum list | grep 패키지명 # 원하는 패키지 목록만 확인
# 설치된 패키지 중 업데이트된 패키지 목록을 보고싶은 경우
yum list updates
# 설치 가능한 패키지 리스트
yum list available
# 설치된 패키지 리스트
yum list installed
동작방식
- yum install로 패키지 설치 명령을 실행합니다.
- /etc/yum.repos.d/ 디렉토리의 여러 설정파일 및 CentOS-Base.repo 파일을 참고하여 인터넷 상의 패키지 저장소 서버 주소를 얻습니다.
- 패키지 목록을 저장소 서버로부터 얻습니다. 실제 패키지를 받는 것은 아니고 목록만 가져옵니다.
- 3번과 동일
- 가져온 패키지 목록을 터미널에 출력하고 설치할 것인지(y/n) 묻습니다.
- y를 입력하면 패키지를 다운로드하여 자동으로 설치합니다.
CentOS-Base.repo 설정 파일
패키지를 다운받는 패키지 저장소 서버는 /etc/yum.repos.d/CentOS-Base.repo 파일에 주소가 명시되어 있습니다.
아래 명령어로 파일을 열어봅니다.
vi /etc/yum.repos.d/CentOS-Base.repo
파일은 다음과 같은 구조입니다.
패키지 저장소
각 항목은 패키지 저장소의 위치를 나타냅니다.
[base], [updates], [extras]는 동작방식에 있는 원본 패키지, 업데이트 패키지, 추가 패키지입니다.
[base]
- CentOS가 릴리즈 되는 시점에 제작된 버전의 패키지
- 배포판을 처음 설치할때 같이 설치되는 패키지, DVD 이미지에 담겨있습니다.
- 이후 버그 수정이나 기능 수정 등으로 인해 업데이트 된 패키지
- [updates] 항목에 URL을 설정할 수 있습니다.
- yum은 패키지를 설치할 때 기본적으로 [base] 저장소가 아닌 [updates] 저장소를 이용하며, 이 항목을 주석처리하게 되면 yum 명령어로 패키지를 설치할때 업데이트 버전을 설치하는 것이 아닌 원본패키지 저장소의 패키지를 설치하게 됩니다.
- 추가로 배포된 패키지인 추가패키지 저장소 설정은 [extras] 항목에서 관리
- [centosplus] 항목이 있지만 기본적으로 enabled=0 으로 설정이 꺼져있고 사용되지 않습니다.
CentOS-Base.repo 설정 구성
- name : 저장소의 이름을 명시한 것이며, 아무렇게나 지정해도 상관없습니다.
- mirrorlist : baseurl 속성의 값이 생략된 경우 이곳에 명시된 URL을 사용합니다. 기본적으로 CentOS 프로젝트에서 운영하는 공식 서버 URL이 지정 되어 있습니다.
- baseurl : 패키지 저장소의 url이며, http://, ftp://, file:// 프로토콜 스킴을 사용할 수 있습니다.
- gpgcheck : GPG(GNU Privacy Guard) 키가 들어있는 저장소의 URL을 적습니다. GPG 키는 rpm 패키지를 인증하는데 사용하는 암호화 서명입니다.
- enabled : 이 저장소 설정 여부를 사용할것인지 여부를 지정합니다. 기본값은 1이며 1 = 사용, 0 = 미사용 입니다.
🔜 더 알아볼 내용
- RPM
- epel
참고