리눅스서버

yum 저장소 추가 (epel, remi)

레드헷 (Red Hat/CentOS/Fedora) 계열은 yum 이라는 자동설치 도구를 사용하고 있습니다.

참조 : https://conory.com/blog/42585


본 문서는 centos 를 기준으로 작성되었기때문에 앞으로도 yum을 통해서 프로그램들을 설치할 예정입니다. 그외의 소스컴파일 설치방법은 추천하지않습니다. 


yum 저장소는 yum 통한 패키지 설치에 꼭 필요한 존재입니다. 바로 yum 저장소에서 패키지 파일을 다운로드하기때문인데요. 하지만 저장소에 원하는 패키지가 없으면 설치도 할 수 없게 됩니다. 또한, 버전도 최신버전이 아닌 경우도 많습니다. 이럴경우 다른 설치방법을 찾게 되는 데.. 그치만 자동화 설치, 업데이트에서 yum 시스템의 장점이 없다는 게 걸릴 것입니다.


그럴경우 이 yum 저장소를 잘만 활용하면 원하는 패키지, 원하는 버전의 패키지 설치가 가능하게 됩니다. 먼저 yum 저장소에 대해 살펴보고, epel, remi 이라는 저장소들도 추가해보도록 하겠습니다.


1. yum 저장소 살펴보기

아래 명령어를 실행하면 현재 추가된 저장소가 표시됩니다.


# yum repolist


저장소는 저장소 파일에 의해 추가/제거가 되도록 되어있습니다. 저장소 파일에는 저장소에 접속할 저장소 URL 정보가 담겨있는 데... 이 파일에서 찾은 저장소 URL에 접속해 yum이 패키지를 다운로드하도록 되어있지요.


* yum 저장소 파일의 위치

/etc/yum.repos.d


저장소 파일은 파일이름.repo 형식으로 되어있는 데.. 한 저장소 파일에 여러 저장소 정보가 있을 수 있다는 것이 특징입니다.



2. yum 저장소 추가

yum 저장소 추가는 간단하게 저장소 파일을 추가하는 것으로 할 수 있습니다. 

수동으로 파일을 추가해서 저장소를 추가할 수도 있지만, 저장소 패키지로 설치해서 저장소가 추가되는 형태도 있습니다. (있다가 추가해볼 epel, remi 저장소가 그런형태입니다.)


다음은 수동으로 저장소를 추가하는 방법입니다. 


# vi /etc/yum.repos.d/저장소이름.repo

파일내용은 아래와 같은 형식으로 작성됩니다.


[저장소 이름]

name=저장소 표시이름

baseurl=저장소 주소 예) http://nginx.org/packages/centos/$releasever/$basearch/

enabled=활성화 여부 (0 or 1)

gpgcheck=gpg 서명키 사용여부 (0 or 1)

gpgkey= 서명키를 사용한다면 서명키 주소 입력



3. epel, remi 저장소 설치(추가)

remi 저장소는 epel 저장소 의존성이 있습니다. 따라서 epel 저장소를 먼저 설치해야 remi 저장소를 설치할 수 있습니다.


epel 저장소

epel 저장소는 확장된 패키지의 저장소입니다. 그러니까 기본 저장소에는 없는 패키지들이 저장되어 있겠죠..

간단하게 yum을 통해서 epel 저장소를 설치할 수 있습니다.


# yum install epel-release



remi 저장소

remi 저장소에는 최신버전의 패키지가 저장되어있습니다. 기본 저장소에는 오래된 버전이 올라가있는 경우가 많습니다. 그래서 최신버전의 패키지가 필요할 경우 remi 저장소를 설치하게 됩니다.


yum 저장소에는 remi 저장소 패키지가 없기때문에 rpm 파일을 따로 다운로드 받아서 설치해야 합니다. 

OS 버전별 패키지 파일 url을 아래와 같습니다.

  • centos 5 : http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
  • centos 6 : http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
  • centos 7 : http://rpms.famillecollet.com/enterprise/remi-release-7.rpm


rpm -ivh [URL] 명령어를 이용하면 인터넷에서 바로 다운로드 받아 바로 설치할 수 있습니다


# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm


서명키를 통과하지못해 "warning: /var/tmp/rpm-tmp.ronYwh: Header V3 DSA/SHA1 Signature" 에러가 나긴하지만 설치된 목록을 조회해보면 설치되어있다고 나옵니다.


# rpm -qa | grep remi-release

remi-release-7.0-1.el7.remi.noarch


저장소 디렉토리에도 epel, remi 저장소 파일들이 생성되어있을 겁니다.


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


1.png



하지만 yum repolist 명령어를 쳐보면 epel 저장소 하나밖에 등록되지않는 것을 볼 수 있습니다. 저장소 파일은 있어도 실제로는 remi 저장소가 등록되어있지않는 것입니다.


yum repolist


2.png


이유는 간단합니다. remi 저장소가 활성화되지않았기때문입니다. remi 저장소를 새로 설치하면 활성화되지않은 채 설치됩니다. 이럴경우 remi 저장소 파일에서 활성화 시켜주면 됩니다.


# vi /etc/yum.repos.d/remi.repo


해보면 제일 첫부분에 아래와 같이 적혀 있을 겁니다. remi 저장소 부분이죠..


[remi]

name=Les RPM de remi pour Enterprise Linux 7 - $basearch

#baseurl=http://rpms.famillecollet.com/enterprise/7/remi/$basearch/

mirrorlist=http://rpms.famillecollet.com/enterprise/7/remi/mirror

enabled=0

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi


enabled=0 에서 아래와 같이 설정값을 1로 변경하면 저장소가 활성화되고, yum repolist 에도 뜨게 됩니다.

enabled=1


3.png


remi 저장소의 기본값이 0(비활성)이 된 이유는 아마 선택형으로 두고 싶었기때문이였을 겁니다. remi 저장소는 최신버전의 패키지들을 취급하는 저장소였고, 선택적으로 최신버전을 사용할지 말지를 사용자가 결정하라는 의도였을 것입니다.


그래서 의도된 사용법은 저장소가 비활성화된 상태에서 yum 설치시에만 일시적으로 활성화 시키는 방법을 이용하는 것입니다. yum에서 --enablerepo 옵션을 사용하면 됩니다.


yum --enablerepo=[저장소] install [패키지]


예) 

yum --enablerepo=remi install php



Atachment
첨부 3
?