Linux 에서 'sudo: yum: command not found' 오류 문제 해결

LinuxBeginner
지금 연습하기

소개

CentOS 또는 RHEL 과 같은 Red Hat 기반 Linux 배포판에서 작업할 때 "sudo: yum: command not found" 오류는 소프트웨어 패키지를 설치하거나 시스템을 업데이트하는 것을 방해할 수 있습니다. 이 오류는 일반적으로 YUM 패키지 관리자가 누락되었거나, 잘못 구성되었거나, 손상된 경우 발생합니다.

YUM Command Not Found

이 실습 랩에서는 CentOS 환경에서 실습을 통해 이 일반적인 문제를 진단하고 해결하는 방법을 배우게 됩니다. Docker 를 사용하여 CentOS 컨테이너를 생성하여 패키지 관리를 안전하게 실험하고, YUM 관련 문제를 해결하며, 시스템 유지 관리에 대한 모범 사례를 적용할 수 있습니다.

이 랩은 학습을 위해 인터넷 연결이 필요하므로, Pro 사용자만 VM 을 시작할 수 있습니다. 계정을 Pro 로 업그레이드하세요.

Docker 를 사용하여 CentOS 환경 설정

이 랩에서는 Docker 를 사용하여 YUM 패키지 관리자와 함께 작업할 수 있는 CentOS 환경을 만들 것입니다. Docker 를 사용하면 호스트 시스템에 영향을 주지 않고 테스트 및 문제 해결을 위해 격리된 컨테이너를 빠르게 설정할 수 있습니다.

Linux 의 패키지 관리자 이해

다양한 Linux 배포판은 서로 다른 패키지 관리 시스템을 사용합니다.

  1. Debian 기반 배포판 (Ubuntu, Debian, Linux Mint):

    • APT 패키지 관리자 (Advanced Package Tool) 사용
    • 패키지 형식: .deb
    • 명령어: apt, apt-get, dpkg
  2. Red Hat 기반 배포판 (RHEL, CentOS, Fedora):

    • YUM (Yellowdog Updater, Modified) 또는 DNF (Dandified YUM) 사용
    • 패키지 형식: .rpm
    • 명령어: yum, dnf, rpm

CentOS 컨테이너 생성

Docker 를 사용하여 CentOS 컨테이너를 생성하는 것으로 시작해 보겠습니다. 터미널을 열고 다음을 실행합니다.

docker run -it --name centos-lab centos:7 /bin/bash

이 명령어는 다음을 수행합니다.

  • centos-lab라는 이름의 대화형 컨테이너를 생성합니다.
  • CentOS 7 이미지를 사용합니다.
  • 컨테이너 내에서 bash 쉘을 제공합니다.

이 명령을 실행하면 터미널 프롬프트가 변경되어 현재 CentOS 컨테이너 내에서 작업하고 있음을 나타냅니다. 시스템 정보를 확인하여 이를 확인할 수 있습니다.

cat /etc/os-release

CentOS Linux 를 사용하고 있음을 보여주는 정보를 확인할 수 있습니다.

CentOS Container

YUM 오류 시뮬레이션 및 진단

이 단계에서는 "sudo: yum: command not found" 오류를 시뮬레이션하고 이를 진단하는 방법을 배웁니다. CentOS 에는 일반적으로 YUM 이 사전 설치되어 있지만, YUM 이 누락되었거나 손상된 시나리오를 만들 것입니다.

YUM 설치 확인

먼저, CentOS 컨테이너에 YUM 이 설치되어 있는지 확인해 보겠습니다.

which yum
rpm -q yum

which yum 명령어는 YUM 실행 파일의 경로 (일반적으로 /usr/bin/yum) 를 표시해야 하며, rpm -q yum은 설치된 YUM 패키지 버전을 표시해야 합니다.

테스트 시나리오 생성

YUM 이 누락된 상황을 시뮬레이션하기 위해 YUM 실행 파일의 이름을 변경해 보겠습니다.

mv /usr/bin/yum /usr/bin/yum.backup

이제 YUM 을 사용해 보십시오.

yum update

"yum: command not found"와 같은 오류 메시지가 표시되어야 합니다. 이는 YUM 실행 파일이 시스템에서 누락된 경우 발생하는 상황을 시뮬레이션합니다.

sudo 로도 시도해 보겠습니다.

sudo yum update

"sudo: yum: command not found" 오류가 표시되며, 이는 문제 해결의 초점입니다.

YUM Error

오류 원인 이해

"sudo: yum: command not found" 오류는 여러 가지 이유로 발생할 수 있습니다.

  1. YUM 패키지가 설치되지 않음
  2. YUM 실행 파일이 이동, 이름 변경 또는 삭제됨
  3. PATH 환경 변수에 YUM 실행 파일이 포함된 디렉토리가 포함되지 않음
  4. YUM 을 실행할 권한 부족

PATH 환경 변수를 확인해 보겠습니다.

echo $PATH

이는 콜론으로 구분된 디렉토리 목록을 표시해야 합니다. /usr/bin (일반적으로 YUM 이 위치하는 곳) 이 이 목록에 포함되어 있는지 확인하십시오.

누락된 YUM 문제 해결

이제 문제를 진단했으므로 "yum: command not found" 오류를 해결해 보겠습니다. 이 문제의 근본 원인에 따라 이 문제를 해결하는 방법에는 여러 가지가 있습니다.

YUM 실행 파일 복원

이전 단계에서 YUM 실행 파일의 이름을 변경했으므로 원래 위치로 복원해 보겠습니다.

mv /usr/bin/yum.backup /usr/bin/yum

이제 YUM 이 다시 작동하는지 확인합니다.

yum --version

YUM 버전 정보를 확인하여 YUM 에 이제 접근할 수 있음을 나타냅니다.

YUM Working

YUM 설치 (누락된 경우)

YUM 이 완전히 누락된 실제 시나리오에서는 하위 수준의 패키지 관리 도구인 RPM (Red Hat Package Manager) 을 사용하여 설치해야 합니다. 다음은 그 방법입니다.

## This is for demonstration. Don't run this command since we already restored YUM
## rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm

YUM 권한 수정

YUM 이 존재하지만 잘못된 권한을 가지고 있는 경우 chmod 명령을 사용하여 수정할 수 있습니다.

## Check current permissions
ls -l /usr/bin/yum

## Set correct permissions if needed
chmod 755 /usr/bin/yum

YUM 에 대한 올바른 권한은 755여야 합니다 (모두가 읽고 실행할 수 있으며 소유자만 쓸 수 있음).

PATH 업데이트 (필요한 경우)

YUM 이 포함된 디렉토리가 PATH 에 없는 경우 다음을 사용하여 임시로 추가할 수 있습니다.

export PATH=$PATH:/usr/bin

영구적인 해결책을 위해서는 이 줄을 쉘의 구성 파일 (예: .bashrc) 에 추가해야 합니다.

YUM 구성 문제 해결

YUM 이 제대로 설치되어 있더라도 제대로 작동하지 못하게 하는 다른 문제가 발생할 수 있습니다. 몇 가지 일반적인 YUM 구성 문제와 이를 해결하는 방법을 살펴보겠습니다.

YUM 구성 파일 이해

YUM 의 구성은 주로 다음 파일 및 디렉토리에 의해 제어됩니다.

  1. 기본 구성 파일: /etc/yum.conf
  2. 저장소 파일 디렉토리: /etc/yum.repos.d/

기본 구성 파일을 살펴보겠습니다.

cat /etc/yum.conf

이 파일에는 캐시 디렉토리, 로그 파일 위치 및 기본 옵션과 같은 전역 YUM 설정이 포함되어 있습니다.

YUM 저장소 확인

YUM 저장소는 /etc/yum.repos.d/ 디렉토리의 .repo 확장자를 가진 파일에 정의되어 있습니다. 이러한 파일을 나열해 보겠습니다.

ls -l /etc/yum.repos.d/

이제 저장소 파일 중 하나를 살펴보겠습니다.

cat /etc/yum.repos.d/CentOS-Base.repo

각 저장소 정의에는 다음이 포함됩니다.

  • 대괄호 안의 고유한 저장소 ID (예: [base])
  • name: 설명적인 이름
  • baseurl: 패키지가 있는 URL
  • enabled: 저장소가 활성 상태인지 (1) 비활성 상태인지 (0)
  • gpgcheck: 패키지 서명을 확인해야 하는지 (1) 여부 (0)

저장소 문제 시뮬레이션

저장소 디렉토리의 이름을 변경하여 저장소 문제를 시뮬레이션해 보겠습니다.

mv /etc/yum.repos.d /etc/yum.repos.d.backup
mkdir /etc/yum.repos.d

이제 YUM 을 사용해 보십시오.

yum update

활성화된 저장소를 찾을 수 없다는 오류가 표시될 것입니다. 이는 YUM 이 제대로 설치되어 있더라도 YUM 이 작동하지 못하게 할 수 있는 일반적인 문제입니다.

YUM Error

저장소 구성 복원

저장소 구성을 복원해 보겠습니다.

rm -rf /etc/yum.repos.d
mv /etc/yum.repos.d.backup /etc/yum.repos.d

이제 YUM 이 다시 작동하는지 확인합니다.

yum repolist

이렇게 하면 시스템에서 활성화된 저장소가 나열됩니다.

YUM 유지 관리 및 모범 사례

이제 다양한 YUM 문제를 해결했으므로 CentOS 또는 기타 Red Hat 기반 배포판에서 건전한 패키지 관리 시스템을 유지 관리하기 위한 모범 사례에 대해 논의해 보겠습니다.

정기적인 시스템 업데이트

시스템을 최신 상태로 유지하는 것은 보안과 안정성에 매우 중요합니다. 다음 명령을 정기적으로 실행하십시오.

## Update package metadata
yum check-update

## Install all available updates
yum update -y

YUM 캐시 정리

YUM 은 패키지 메타데이터와 다운로드된 패키지의 캐시를 유지 관리합니다. 이 캐시를 주기적으로 정리하면 문제를 해결하고 디스크 공간을 확보하는 데 도움이 될 수 있습니다.

## Clean metadata
yum clean metadata

## Clean packages
yum clean packages

## Clean everything
yum clean all

## Rebuild the cache
yum makecache

YUM 플러그인 관리

YUM 기능은 플러그인을 사용하여 확장할 수 있습니다. 설치된 플러그인을 나열하려면 다음을 수행합니다.

yum list installed "yum-plugin-*"

일반적으로 유용한 플러그인에는 다음이 포함됩니다.

  • yum-plugin-fastestmirror: 가장 빠른 저장소 미러를 자동으로 선택합니다.
  • yum-plugin-security: 보안 관련성별로 업데이트를 필터링합니다.
  • yum-plugin-priorities: 서로 다른 저장소에 대한 우선 순위를 설정합니다.

YUM 문제 해결

YUM 문제에 직면했을 때 다음 명령은 문제를 진단하는 데 도움이 될 수 있습니다.

## Check if repositories are accessible
yum repolist

## Show YUM history (past transactions)
yum history

## Check for package problems
yum check

## Run YUM with debug output
yum -v update

컨테이너 종료

랩을 마치면 다음을 입력하여 CentOS 컨테이너를 종료합니다.

exit

그러면 Ubuntu 호스트 시스템으로 돌아갑니다.

요약

Linux 에서 "sudo: yum: command not found" 오류 문제 해결에 대한 이 랩을 완료하신 것을 축하드립니다. 이 실습에서 다음을 수행했습니다.

  1. 안전한 실험을 위해 Docker 를 사용하여 CentOS 환경을 설정했습니다.
  2. "yum: command not found" 오류를 시뮬레이션하고 진단했습니다.
  3. YUM 기능을 복원하기 위한 다양한 솔루션을 구현했습니다.
  4. 일반적인 YUM 구성 문제와 해결책을 탐구했습니다.
  5. YUM 유지 관리 및 문제 해결을 위한 모범 사례를 배웠습니다.

이 랩의 주요 내용:

  • "yum: command not found" 오류는 실행 파일 누락, 잘못된 권한 또는 PATH 문제로 인해 발생할 수 있습니다.
  • YUM 구성은 /etc/yum.conf/etc/yum.repos.d/의 파일에 의해 제어됩니다.
  • 캐시 정리 및 패키지 업데이트와 같은 정기적인 유지 관리 작업은 시스템 상태를 유지하는 데 도움이 됩니다.
  • Docker 는 Linux 시스템을 안전하게 배우고 문제 해결하기 위한 훌륭한 환경을 제공합니다.

이러한 기술은 Red Hat 기반 Linux 시스템을 유지 관리하고 문제 해결하는 데 도움이 되며, 소프트웨어 설치 및 시스템 업데이트를 위해 패키지 관리 시스템이 올바르게 작동하도록 보장합니다.