Linux

[Linux] 소프트웨어 설치 및 관리 - yum

thdwldud 2025. 8. 26. 10:14

yum

yum의 개요

  • yum(Yellowdog Updater, Modified)은 rpm 기반의 시스템에서 패키지를 손쉽게 설치하고 자동으로 업데이트를 수행하는 명령행 기반의 유틸리티
  • rpm 패키지 설치 시에 가장 많이 발생하는 의존성 문제를 자동으로 해결
  • 소프트웨어 저장소(repository)에 관련 패키지들을 모아두고 네트워크를 통해서 의존성을 검사하여 설치 및 업데이트 등을 수행
  • RHEL8 버전 부터는 새로운 패키지 관리 도구인 dnf가 등장하면서 대체되었지만, dnf 명령의 심볼릭 링크 파일로 제공되면서 명령어 사용을 지원

yum 관련 파일 및 디렉터리

  • yum의 환경 설정 파일은 /etc/yum.conf, 설치 및 업데이트를 위한 저장소(repository) 관련 파일들은 /etc/yum.repos.d 디렉터리에 저장
  • CentOS7 기준으로 이 디렉터리에는 네트워크 작업용 저장소 파일인 CentOS-Base.repo, 로컬 시스템에서 CD-ROM이나 DVD-ROM 작업용 저장소 파일인 CentOS-Media.repo 등이 존재
  • 작업과 관련된 정보는 /var/cache/yum/x86_64/7/base 디렉터리에 저장
  • yum 관련 작업 로그는 /var/log/yum.log 파일에 저장
  • Rocky Linux8에서는 dnf로 전환되면서 네트워크 작업용 저장소 파일인 Rocky-Base.repo, 로컬 시스템에서 CD-ROM이나 DVD-ROM 작업용 저장소 파일인 Rocky-Media.repo 등이 존재

yum 사용법

yum [option] [command] [패키지_파일명]

 

옵션

옵션 설명
-y
(--assumeyes)
모든 질의에 ‘yes’라고 답한다
-v
(--verbose)
자세한 정보를 출력한다

 

주요 명령

명령 설명
list [항목] 전체 패키지에 대한 정보를 출력
설치가 되어 있는 경우에는 installed
업데이트가 가능한 항목은 updates
기본 항목값은 all, installed/updates 등의 항목값 사용 가능
info [패키지명] 패키지에 대한 정보를 출력
check-update 업데이트가 필요한 패키지를 출력
yum list updates 와 동일
update [패키지명] 패키지를 업데이트할 때 사용
install [패키지명] 패키지를 설치할 때 사용
search [문자열..] 문자열이 포함된 패키지를 찾아줌
remove [패키지명]
erase [패키지명]
패키지를 삭제할 때 사용
group list 패키지 그룹에 대한 정보를 출력
group info 패키지그룹명 해당 패키지 그룹명과 관련된 패키지의 정보를 보여줌
group update 패키지그룹명 지정한 그룹의 패키지를 업데이트
group install 패키지그룹명 지정한 그룹의 패키지를 설치
group remove 패키지그룹명 지정한 그룹의 패키지를 제거
whatprovides 특정한 파일이나 기능과 관련된 패키지 정보를 검색할 때 사용
clean [값] yum 관련해서 저장된 정보를 삭제할 때 사용 설정값에는 all, packages, rpmdb, dbcache 등이 있음
history [sub-command] yum 명령을 사용한 작업 이력 정보를 출력
하위 명령어(sub-command)에는 list, info, summary 등이 있고 기본 값은 list

 

사용 예

  • 전체 패키지에 대한 정보를 출력. 기본 값이 yum list all
yum list
  • 설치된 패키지에 대한 정보를 출력
yum list installed
  • 업데이트가 필요한 패키지에 대한 정보를 출력
yum list updates
yum check-update
  • 모든 패키지에 대한 정보를 출력
yum info
  • telnet-server 패키지에 대한 정보를 출력
yum info telnet-server
  • 전체 패키지를 업데이트할 때 사용
yum update
  • gzip 패키지를 업데이트할 때 사용
yum update gzip
  • telnet-server 패키지 설치. 의존성 관련 패키지도 자동으로 설치
yum install telnent-server
  • player과 music이라는 문자열이 들어있는 패키지 찾기
yum search player music
  • rhythmbox라는 패키지를 설치하는데 질의 시 무조건 [y]를 선택
yum install -y rhythmbox
  • telnet-server 패키지를 제거
yum remove telnet-server
yum erase telnet-server
  • 패키지 그룹 별 설치 정보를 출력. 설치된 그룹은 Installed Groups에 표기되고, 설치되지 않은 그룹은 Available Groups에 표기됨
yum group list
  • ‘High Availability’이라는 그룹과 연관된 패키지 정보를 보여줌
yum group info 'High Availability'
  • ‘Print Server’ 그룹의 패키지를 업데이트
yum group update 'Print Server'
  • ‘CIFS file server’ 그룹의 패키지를 설치
yum group install 'CIFS file server'
  • Eclipse 그룹에 속한 패키지를 삭제
yum group remove Eclipse
  • portmap과 관련 있는 패키지 정보를 출력
yum whatprovides portmap
  • yum 관련해서 저장된 모든 정보를 삭제
yum clean all
  • yum 관련한 작업 이력을 출력
yum history
yum history list
yum history list all
  • ID가 19인 작업의 자세한 작업 정보(Command Line)을 출력
yum history list 19
  • ID가 20인 작업을 취소
yum history undo 20
  • ID가 19인 작업을 다시 실행
yum history redo 19

 

💡 yum을 이용한 그룹 패키지 관리
RHEL6 이전 버전에서는 그룹 관련 명령어가 하나의 명령어 형식이었으나, RHEL7 버전부터는 'group 명령어' 형식으로 바뀜 RHEL 6 이전 버전 : # yum grouplist
RHEL 7 버전 : # yum group list
💡 yum을 이용해서 rpm 패키지 파일 다운로드 하기
기본적으로 설치되어 있는 yum-utils라는 패키지에는 yumdownloader라는 명령이 있는데, 이 명령어를 이용하면 rpm 패키지를 다운로드 가능
yumdownloader --destdir=/usr/local/src vsftpd
: vsftpd 관련 rpm 파일을 /usr/local/src에 다운로드
💡 확장 패키지 사용하기
기본 배포판에서 제공되지 않는 기능들은 확장 패키지 관련 레퍼지터리를 설치하면 사용 가능. (ex. NTFS 파일 시스템을 마운트하는 기능은 기본적으로 제공X) 따라서, 관련 패키지의 추가 설치가 요구됨
CentOS7 버전을 기준으로 먼저 확장 기능 사용을 위해 EPEL repository를 설치해야 함(EPEL : 레드햇 계열 리눅스인 RHEL, CentOS, Scientific Linux, Oracle Linux에서 사용 가능한 확장 패키지 모음. Fedora Special Interest Group에서 생성하고 유지 및 관리)
NTFS를 마운트하기 위해 필요한 패키지는 ntfs-3g이며, 패키지를 추가하고 마운트하는 방법은 아래와 같음

1. EPEL 레퍼지토리 설치
    # yum install epel-release
2. 관련 패키지인 ntfs-3g 설치
    # yum install ntfs-3g
3. mount 명령어를 사용해서 마운트
    # mount -t ntfs-3g /dev/sdb1 /mnt
    참고로 X윈도 기반으로 사용하는 경우에는 패키지 설치만 하면 대부분 자동으로 마운트됨

'Linux' 카테고리의 다른 글

[Linux] 소프트웨어 설치 -rpm  (1) 2025.09.02
[Linux] 압축 - tar(tape archive)  (3) 2025.09.01
[Linux] 프로세스 관련 명령어 - ps  (2) 2025.08.25
[Linux] 프로세스와 /proc 디렉터리  (0) 2025.08.19
[Linux] cron / crontab  (2) 2025.08.17