본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/리눅스

yum이 패키지를 찾지 못할때

by 미노드 2021. 8. 4.

yum으로 패키지를 설치할 때 원하는 패키지가 없는 경우가 있다.

이럴 경우 문제점가 되는 경우는 대략 3가지정도 이다.

1. epel-release 미설치

epel은 Extra Packages for Enterprise Linux의 약자이다.
말 그대로 yum 에서 기본적으로 제공하는 패키지가 아닌 번외 패키지라 할 수 있다.
대표적으로 Apache 웹서버는 기본 패키지이고 Nginx는 epel에 속하는 패키지이다.
OS를 설치하고 아무런 작업 없이 yum install nginx 명령어를 날리면 패키지를 찾을 수 없다는 메세지를 만나게 되는데
이 경우가 epel-release를 설치해주지 않은 경우에 만나는 상황이다.
설치는 간단하다.
yum install -y epel-release를 설치한 다음 원하는 패키지를 검색하거나 설치하면 된다.

2. yum.repo.d 에 <package>.repo 파일 미등록

패키지의 주소는 바로 /etc/yum.repos.d/ 디렉토리 아래에 모여있다.  (CentOS 7기준)
디렉토리에 들어가 보면 xxx.repo라는 이름을 가진 파일이 여러개 있을 것이다.
우리가 일반적으로 yum을 날렸을때 가장 먼저 참조하는 파일이 CentOS-Base.repo이다
이 저장소에서 찾아봤는데 없다면 차례로 repo 확장자를 가진 파일의 주소를 참조하면서 패키지가 있는지 찾게된다.
주로 자신들만의 패키지를 배포하는 업체들이 repo파일을 배포한다.

3. OS 버전 다름

OS버전에 따라 같은 패키지 명을 검색해도 버전이 다른 패키지가 나올 수도 있고 아예 나오지 않는 경우가 있다.
대표적으로 CentOS 6.x 버전과 7.x 버전에서는 기본설치되는 Apache의 버전이 2.2.x 와 2.4.x 버전으로 구분된다.
이러한 이유는 OS 버전마다 참조하는 저장소가 다른데 6.x 버전이 참조하는 저장소의 Apache는
2.2.x 버전이 등록되어 있고 7.x 버전이 참조하는 저장소의 Apache는 2.4.x 버전이 등록되어 있기 때문이다. 
이렇듯 OS 버전마다 변경되거나 추가, 삭제되는 패키지가 있기에 yum이 패키지를 찾지 못할수도 있다.
이 경우 소스코드를 다운받아서 컴파일설치하거나 rpm에서 설치하는 대안이 있다.