리눅스 YUM 개념과 기본 명령어

YUM(Yellow dog Updater, Modified)은 레드햇(RPM) 계열 리눅스 배포판에서 사용되는 패키지 설치 및 관리 도구입니다. 기존의 RPM 방식은 패키지 설치 시 의존성 문제로 사용자가 필요한 도구를 일일이 설치해야 하는 번거로움이 있었습니다. YUM은 이러한 의존성 문제를 자동으로 해결해 주며, 필요한 패키지와 관련된 의존 패키지를 함께 설치하여 오류를 최소화합니다.

의존성이 존재할 때 관련된 다른 패키지들을 자동으로 먼저 설치 해 줍니다. 패키지 저장소를 수용하는 패키지 검색 후 다운로드와 설치를 처리하면서 패키지 의존성에 의한 오류를 줄일 수 있습니다. 우분투 계열의 APT와 유사한 기능을 하며, Fedora, CentOS 등에서 널리 사용되는 필수적인 패키지 관리 도구입니다.

YUM이 ‘노란 개 업데이터’라는 이름을 갖게 된 이유는, 한때 존재했던 Yellow Dog Linux의 패키지 관리 도구였던 Yellowdog Updater가 레드햇 계열에서도 사용될 수 있도록 개량(modified)되었기 때문입니다.

✅패키지 의존성

패키지 의존성은 특정 패키지를 설치할 때, 그 패키지가 정상적으로 작동하기 위해 필요한 다른 패키지를 먼저 설치해야 하는 관계를 말합니다.

리눅스에서 응용 프로그램(패키지)을 설치할 때, 해당 패키지가 다른 패키지에 의존할 수 있습니다. 이러한 관계를 패키지 의존성이라 하며, 만약 의존 관계에 있는 패키지가 시스템에 설치되어 있지 않으면, 해당 패키지를 먼저 설치해야 합니다.

예를 들어, 패키지 A를 설치하려면 패키지 B가 필요할 수 있습니다. 이때 YUM은 의존성 있는 패키지를 자동으로 인식하여, 필요한 패키지를 자동으로 다운로드하고 설치합니다.

✅ yum 명령어(기본)

yum update
yum update

yum 명령어

사용 예시

설명

yum search

yum search apache

설치 가능한 패키지 검색. 패키지 검색 시 패키지나 키워드를 같이 기입해야 한다.

yum list updates

yum list updates php

현재 서버에 설치된 패키지들 중에서, 저장소에 최신 버전이 존재하는 목록을 확인할 수 있음. 확인 후 업데이트를 통해 특정 패키지를 업데이트 함.

yum update

yum update php

· 모든 yum 패키지를 업데이트 함.
· 재부 팅후 적용이라고 하는데 test 커널,php 등 버전 그대로임-패키지저장소만 업데이트 됨.]
· (패키지 명을 지정하지 않으면 모든 패키지가 업데이트 된다.)

yum check-update

yum check-update
yum check-update php

설치된 프로그램 중 업데이트 된 것을 체크해줌.

–exclude=kernel*

yum update –exclude=kernel*

전체 시스템 패키지 업데이트를 진행할 때 커널 관련 패키지를 제외하고 나머지 패키지들을 업데이트하는 데 사용

check-update

yum check-update php

설치된 프로그램 중 업데이트 된 것을 체크해줌.

yum -y install

yum -y install [패키지명]
yum -y php

 yum 패키지 설치

yum repolist

.

· 현재 추가된 저장소가 표시
· 저장소 파일 위치: /etc/yum.repos.d

· vi /etc/yum.repos.d/저장소이름.repo
→ 수동으로 저장소를 추가  / yum.repos.d/ 저장소

yum list

yum list httpd

현재 시스템에 설치된 패키지들 및 저장소에서 제공되는 패키지 목록을 조회

yum list all

yum list all httpd

yum list 명령만으로도 설치된 패키지와 설치할 수 있는 패키지가 모두 표시되는 것이 보통이지만, 설치할 수 있는 패키지가 표시되지 않을 때 yum list all을 사용하여 모든 패키지를 확인할 수 있음.

yum list available

.

현재 활성화된 저장소에서 사용할 수 있는(설치되지 않은) 패키지 목록을 출력

yum list updates

.

시스템에 설치된 패키지 중에서 업데이트 가능한 패키지 목록을 출력

yum clean

yum clean packages
yum clean metadata(저장소 정보)
yum clean dbcache
yum clean all

패키지 캐시만 삭제합니다.
메타데이터(저장소 정보) 캐시만 삭제함.
YUM의 데이터베이스 캐시를 삭제함.
모든 캐시를 완전히 삭제

–skip-broken

yum –skip-broken update httpd

충돌 패키지 건너뛰고 기존 패키지들 업데이트

(~]# yum clean all 실행 후 => yum update를 해주면
문제 있는 패키지를 쉽게 조회하고 문제 있는 패키지를 삭제하는 조치 등을 취할 수 있다.)

dnf 명령어

yum –skip-broken update httpd

Dandified YUM

· 더 멋지게, 다듬어진 YUM이라는 뜻
· Fedora, CentOS 8 이상, RHEL 8 이상, Rocky Linux 등에서 기본 패키지 관리 도구로 사용됩니다.
· yum보다 속도, 의존성 처리, 메모리 사용 측면에서 개선된 점이 많습니다.

삭제 명령어

사용 예시

설명

yum remove

yum remove [패키지명]
yum remove apache

패키지 삭제 [의존성에 의해 같이 설치된 프로그램을 같이 삭제]

yum erase

yum erase [패키지명]

시스템에서 패키지 제거 [의존성에 의해 같이 설치된 프로그램을 삭제하지 않는다.

리눅스 이미지

🔲 커널을 제외한 업데이트가 필요한 이유

  • 시스템 안정성 유지
  • 커널 업데이트는 시스템의 동작에 큰 영향을 미칩니다. 커널을 업데이트 후 재부팅해야만 변경 사항이 적용되므로, 재부팅 시점에 문제가 발생할 수 있습니다. 시스템의 안정성을 우선시하고 싶다면, 커널을 별도로 업데이트하거나, 커널 업데이트를 나중에 진행할 수 있습니다.
  • 서비스 중단 방지
  • 커널 업데이트는 일반적으로 시스템의 중요한 변경 사항을 포함하고 있어, 적용 후 재부팅이 필요합니다. 그 동안 실행 중인 서비스가 영향을 받을 수 있기 때문에, 즉시 커널을 업데이트하지 않고 재부팅 후 진행할 수 있도록 설정할 수 있습니다.
  • 커널의 직접적인 필요성 여부
  • 커널 업데이트는 일반적으로 시스템의 중요한 변경 사항을 포함하고 있어, 적용 후 재부팅이 필요합니다. 그 동안 실행 중인 서비스가 영향을 받을 수 있기 때문에, 즉시 커널을 업데이트하지 않고 재부팅 후 진행할 수 있도록 설정할 수 있습니다.
  • 커널 버전 테스트
  • 새로운 커널 버전이 안정성이나 호환성 문제를 일으킬 수 있기 때문에, 이를 먼저 테스트하고 문제가 없다면 그때 커널을 업데이트하고자 할 수 있습니다. 이 경우 커널을 제외하고 나머지 패키지를 먼저 업데이트해 놓고 커널 업데이트는 나중에 진행할 수 있습니다.

🔲 yum cache

YUM 캐시는 패키지 관리자가 패키지 설치, 업데이트, 삭제 등을 처리할 때 사용되는 임시 데이터입니다. YUM은 패키지 설치 및 관리 시, 다운로드한 패키지 파일과 메타데이터를 로컬에 저장해두며, 이는 다음에 같은 작업을 수행할 때 속도를 빠르게 하기 위해 사용됩니다.

  • 패키지 캐시 (Package Cache)
  • YUM이 다운로드한 .rpm 패키지 파일을 저장합니다.
  • 패키지를 설치하거나 업데이트할 때, YUM은 먼저 캐시에서 해당 패키지가 있는지 확인하고, 없다면 네트워크를 통해 다운로드합니다.
  • 만약 여러 번 설치를 해야 하는 패키지라면, 캐시된 패키지를 재사용하여 네트워크 다운로드를 줄일 수 있습니다.
  • 패키지 캐시 (Package Cache)
  • 저장소에서 제공하는 정보(예: 패키지 목록, 버전, 의존성 등)를 캐시합니다.
  • YUM은 패키지 목록이나 업데이트 정보를 저장소에서 매번 새로 요청하지 않고, 이 메타데이터를 사용하여 패키지 검색이나 업데이트를 더 빠르게 처리합니다.
  • 파일 캐시 (File Cache):
  • 다운로드한 패키지 파일들이 저장됩니다. 이후 동일한 패키지를 다시 설치하거나, 캐시를 사용하여 설치를 더 빠르게 할 수 있습니다.

◻️ yum clean all

yum clean all은 YUM의 모든 캐시를 완전히 삭제합니다. 이는 패키지 캐시, 메타데이터 캐시, 로그 파일 등 모든 관련 캐시를 삭제하는 명령어입니다. 디스크 공간을 많이 차지하는 캐시를 전부 정리할 때 사용됩니다.

🔲 yum –skip-broken update

‘–skip-broken’ 옵션은 패키지 설치나 업데이트 중 의존성 충돌이나 문제가 발생한 패키지를 건너뛰고, 나머지 정상적인 패키지들만 업데이트하는 기능을 합니다.

  1. 충돌 패키지 건너뛰기:
    • 예를 들어, 패키지 A가 다른 패키지 B와 의존성 충돌을 일으키면, yum update는 해당 패키지들을 업데이트할 수 없습니다. yum –skip-broken update를 사용하면, 충돌이 일어난 패키지를 건너뛰고 나머지 정상적인 패키지들만 업데이트가 됩니다.
  2. 문제 해결 후 다음 조치:
    • yum clean all을 실행하여 yum 캐시를 정리하고, yum update를 실행하면 문제 있는 패키지를 쉽게 조회하고, 그 후 해당 패키지를 삭제하거나 문제를 해결한 후 다시 설치할 수 있습니다.
    • yum clean all: Yum 캐시를 모두 삭제하여 오래된 메타데이터와 패키지를 제거합니다. 이로 인해 패키지 설치나 업데이트 중 문제가 발생할 수 있는 캐시 문제를 해결합니다.
    • 그 후, yum update를 다시 실행하여 시스템을 최신 상태로 유지할 수 있습니다.

◻️ 이 명령어를 사용하는 이유

  • 업데이트가 중단될 수 있는 상황에서: 패키지의 의존성 문제가 발생하여 전체 업데이트가 불가능한 경우, 나머지 패키지는 최신 버전으로 업데이트하고 문제 있는 패키지는 추후에 해결할 수 있습니다.
  • 빠른 해결책: 특정 패키지가 문제가 되어도 나머지 패키지는 빠르게 업데이트를 진행할 수 있으므로, 시스템을 최신 상태로 유지할 수 있습니다.

✅ 설정 파일: /etc/yum.conf | /etc/dnf/dnf.conf

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 ” 이다.

✅ 저장소: /etc/yum.repos.d/

.repo 파일들이 들어 있는 /etc/yum.repos.d/ 디렉터리는 YUM 및 DNF가 사용하는 소프트웨어 저장소(repository) 설정 파일을 보관하는 위치입니다. 각 .repo 파일은 저장소의 이름, URL, 활성 여부 등을 정의하며 패키지 설치와 업데이트에 사용됩니다.

✅ 로그: /var/log/yum.log | /var/log/dnf.log

패키지 관리자에서 수행한 작업의 로그를 기록하는 파일입니다.

✅ 캐시 데이터: /var/cache/yum | /var/cache/dnf/

다운로드한 패키지와 메타데이터를 임시로 저장하는 디렉터리입니다. 디스크 공간 확보를 위해 yum clean all 또는 dnf clean all 명령어로 삭제할 수 있습니다.

✅ etc/yum | /etc/dnf/

디렉터리는 [YUM | DNF] 설정 파일이 저장되는 기본 디렉터리입니다.

주요 내용은 다음과 같습니다:

  • /.conf : 전역 설정 파일 (캐시 설정, GPG 체크, 자동 업데이트 관련 설정 등 포함)
  • /plugins/ : 플러그인 설정 파일들이 들어 있는 하위 디렉터리 (있을 경우)

이 디렉터리를 통해 [YUM | DNF] 동작 방식을 세부적으로 조정할 수 있습니다.

YUM 명령어 | 패키지 및 저장소 관리

Similar Posts

  • rm 명령어

    목차✅패키지 의존성✅ yum 명령어(기본)🔲 커널을 제외한 업데이트가 필요한 이유🔲 yum cache🔲 yum –skip-broken update✅ 설정 파일: /etc/yum.conf | /etc/dnf/dnf.conf✅ 저장소: /etc/yum.repos.d/✅ 로그: /var/log/yum.log | /var/log/dnf.log✅ 캐시 데이터: /var/cache/yum | /var/cache/dnf/✅ etc/yum | /etc/dnf/1. rm 명령어 ‘rm 명령어‘ 는 파일 및 디렉토리를 삭제하는 명령어이다. ‘rm 명령어’ 는 심볼릭 링크는 삭제하지만 링크의 대상 파일은 삭제하지…

  • /tmp 디렉토리 보안 설정 [CentOS 7]

    리눅스 웹 서버를 운영할 때, /tmp 디렉토리는 시스템과 여러 애플리케이션이 임시 파일을 저장하는 공간으로 자주 사용됩니다. 하지만 /tmp 디렉토리는 누구나 쓰기 가능한 특성을 가지고 있어, 적절한 보안 설정 없이 방치하면 악성 스크립트 실행과 같은 보안에 위험이 될 수 있습니다. 목차✅패키지 의존성✅ yum 명령어(기본)🔲 커널을 제외한 업데이트가 필요한 이유🔲 yum cache🔲 yum –skip-broken update✅…

  • Rocky Linux 설치 (9.5 Ver Minimal) | 이더넷 설정

    VirtualBox로 Rocky Linux 설치(9.5 Ver)를 진행해 보겠습니다. Rocky Linux 설치를 위해 ISO 파일을 다운로드 받은 후 가상 머신을 생성합니다. EFI 활성화를 체크 후 설치 진행을 하겠습니다. 목차✅패키지 의존성✅ yum 명령어(기본)🔲 커널을 제외한 업데이트가 필요한 이유🔲 yum cache🔲 yum –skip-broken update✅ 설정 파일: /etc/yum.conf | /etc/dnf/dnf.conf✅ 저장소: /etc/yum.repos.d/✅ 로그: /var/log/yum.log | /var/log/dnf.log✅ 캐시 데이터:…

  • 리눅스 셸 환경(Shell Environment) 정의 및 이해와 쉘 환경변수 | Shell 시작 파일 2가지

    셸 세션을 이용해서 서버와 상호 작용을 할 때 해당 동작과 리소스에 대한 연결을 결정하기 위해 컴파일 하는 많은 정보가 있습니다. 이러한 서정 중 일부는 구성 설정에 포함되어 있으며, 다른 설정은 사용자 입력에 의해 결정됩니다. 리눅스 셸 환경은 셸의 구성 설정과 사용자 입력에 의해 결정된 설정을 유지관리 영역을 이용해 관리하는 가장 일반적인 방법을 이용하게…

  • df 명령어

    df(Disk Free)는 마운트 된 장치 전체 용량, 사용 용량, 여유 용량을 확인할 수 있습니다. 파일 시스템(Filesystem), 디스크 크기(Size), 사용량(Used), 여유공간(Avail), 사용률(Use%), 마운트지점(Mounted on)을 순서로 확인할 수 있습니다. 목차✅패키지 의존성✅ yum 명령어(기본)🔲 커널을 제외한 업데이트가 필요한 이유🔲 yum cache🔲 yum –skip-broken update✅ 설정 파일: /etc/yum.conf | /etc/dnf/dnf.conf✅ 저장소: /etc/yum.repos.d/✅ 로그: /var/log/yum.log | /var/log/dnf.log✅ 캐시…

  • [Linux] ifcfg: IP 네트워크 인터페이스 구성(이더넷) | CentOS 7 ver.

    레드헷 계열 리눅스에서 네트워크 구성은 /etc/sysconfig/network-scripts/ifcfg-* 파일에서 설정합니다. ifcfg(interface configuration)는 “이더넷” 장치를 어떻게 네트워크에 연결할지 설정하는 게 ifcfg-* 파일의 목적입니다. 네트워크 인터페이스는 컴퓨터가 네트워크에 연결되는 물리적 또는 가상 장치입니다. 유선(이더넷 카드), 무선(Wi-Fi 어댑터) 등이 이에 해당합니다. 리눅스에서는 eth0, wlan0, enp0s3 등 이름으로 식별하며 고유하게 관리합니다. 네트워크 인터페이스를 통해 데이터가 송수신 되어 인터넷이나 로컬…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 7   +   3   =