YUM
YUM
개요
YUM(Yellowdog Updater, Modified)은 RPM 기반 리눅스 배포판에서 소프트웨어 패키지를 관리하기 위해 개발된 명령줄 패키지 관리자입니다. 초기에는 Yellow Dog Linux 운영체제용으로 개발되었으나, Red Hat Enterprise Linux(RHEL), CentOS, Fedora 등 주요 서버 및 엔터프라이즈 환경으로 널리 확산되었습니다. YUM은 패키지 설치·업데이트·제거는 물론 의존성 자동 해결과 중앙 리포지토리 관리를 통합하여, 시스템 관리자가 복잡한 소프트웨어 종속 관계를 수동으로 처리하지 않고도 안정적으로 운영 환경을 구축할 수 있도록 지원합니다.
주요 기능 및 특징
- 의존성 자동 해결: 패키지를 설치하거나 업데이트할 때 필요한 다른 패키지, 라이브러리, 프로바이더(provides)를 자동으로 분석하여 연결합니다. 이를 통해 버전 충돌이나 누락된 의존성으로 인한 시스템 불안정을 방지합니다.
- 리포지토리 기반 관리: 네트워크 상의 중앙 저장소(리포지토리)에서 메타데이터와 바이너리 패키지를 다운로드받아 일관된 버전과 보안 패치를 제공합니다. 로컬 디렉토리를 리포지토리로 지정하는 것도 가능합니다.
- 트랜잭션 기록 및 롤백:
yum history명령어를 통해 설치·삭제·업데이트 이력을 타임라인 형태로 추적할 수 있으며, 문제가 발생한 경우 특정 시점으로 시스템 상태를 되돌릴 수 있습니다. - 확장 가능한 플러그인 아키텍처:
yum-plugin-*패키지를 통해 자동 백업(yum-plugin-auto-update-debuginfo), 리포지토리 동기화(yum-plugin-fastestmirror), 보안 업데이트 필터링 등 기능을 유연하게 확장할 수 있습니다.
설치 및 구성 파일
YUM은 대부분의 RPM 기반 배포판에서 기본 패키지로 포함되어 있으며, 별도 설치가 필요하지 않습니다. 주요 설정 구조는 다음과 같습니다:
전역 설정 파일 (/etc/[yum.conf](/doc/%EA%B8%B0%EC%88%A0/%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EA%B4%80%EB%A6%AC/%EC%84%A4%EC%A0%95%20%ED%8C%8C%EC%9D%BC%20%EA%B5%AC%EC%84%B1/yum.conf))
시스템 전체의 동작을 제어하는 핵심 설정 파일입니다. 캐시 경로(cachedir), 로그 레벨(debuglevel), 플러그인 활성화 여부(plugins=1), GPG 키 검증 옵션(gpgcheck=1) 등을 정의합니다.
리포지토리 설정 디렉토리 (/etc/yum.repos.d/)
개별 저장소 정보를 담는 *.repo 파일이 위치하는 디렉토리입니다. 각 파일은 [repository-id] 섹션과 다음 옵션을 포함합니다:
- name: 리포지토리 표시명
- baseurl 또는 mirrorlist: 패키지 다운로드 경로
- enabled: 활성화 여부 (1=활성, 0=비활성)
- gpgcheck: GPG 서명 검증 여부
기본 사용법
YUM은 직관적인 명령어 구조를 가지며, 대부분의 작업은 yum [옵션] [명령어] [패키지이름] 형식으로 실행됩니다.
핵심 명령어
| 명령어 | 설명 |
|---|---|
yum install <package> |
지정된 패키지 및 의존성 설치 |
yum update 또는 yum upgrade |
시스템 전체 또는 특정 패키지 업데이트 |
yum remove <package> |
패키지 제거 (의존성 확인 후 경고) |
yum search <keyword> |
키워드 기반 패키지 검색 |
yum repolist [all\|enabled\|disabled] |
리포지토리 목록 조회 |
yum info <package> |
패키지 상세 정보 및 버전 조회 |
실행 예시
# nginx 패키지를 최신 안정 버전으로 설치하고 의존성 확인 생략
sudo yum install -y nginx
# 시스템 패키지 전체 업데이트 (캐시 갱신 포함)
sudo yum update --refresh
# 특정 리포지토리만 활성화하여 패키지 검색 (예: EPEL)
sudo yum --disablerepo="*" --enablerepo="epel" search python3-devel
DNF와의 관계 및 현재 상태
YUM은 오랫동안 Red Hat 생태계의 표준 패키지 관리자로 자리 잡았으나, Python 2 기반의 아키텍처와 의존성 해결 알고리즘의 성능 한계로 인해 차기 버전으로 DNF(Dandified YUM)가 개발되었습니다. DNF는 Python 3를 기반으로 하며, 멀티스레드 의존성 해결과 효율적인 메타데이터 처리를 통해 실행 속도와 메모리 사용량을 대폭 개선했습니다.
- RHEL/CentOS 8 이상 및 Fedora 22+부터 기본 패키지 관리자가 DNF로 변경되었습니다.
- 기존
yum명령어는 호환성 유지를 위해 DNF 엔진을 호출하는 래퍼(wrapper)로 동작합니다. 따라서 대부분의 YUM 명령어는 DNF 환경에서도 동일하게 작동합니다. - 레거시 시스템이나 특정 임베디드 환경에서는 여전히 YUM이 활발히 사용되고 있으나, 신규 배포 및 공식 가이드에서는 DNF 사용을 권장하며, 장기 지원(LTS) 버전에서도 점진적인 마이그레이션이 진행 중입니다.
참고 자료
- Red Hat Documentation: Managing software with the yum package manager
- Fedora Project Wiki: DNF vs YUM
- Linux man page:
man yum,man dnf,man yum.conf
이 문서는 AI 모델(qwen3.6-35b-a3b@iq4_xs)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.