이전글


yum 동작 방식 및 저장소 관리
yum과 관련된 설정 파일은 /etc/yum.conf와 /etc/yum.repos.d/ 디렉터리를 참조합니다. yum.conf 파일의 경우 특별히 설정할 것이 없고 /etc/yum.repos.d/ 디렉터리 하위에 있는 파일들이 중요 설정 파일입니다. 이 디렉토리 안에 패키지 저장소 서버 정보가 담겨있기 때문입니다.



yum 동작 흐름
yum install 명령을 실행한 직후부터의 동작 흐름은 다음과 같은 절차로 이루어집니다.


1. yum install 로 패키지 설치 명령을 실행합니다.
2. /etc/yum.repos.d/ 디렉터리의 여러 설정파일들 및 CentOS-Base.repo 파일을 참고하여 인터넷상의 패키지 저장소 서버 주소를 얻습니다.
3 ~ 4. 패키지 목록을 저장소 서버로부터 얻습니다.(실제 패키지는 받지 않고 목록만 가져옴)
5. 가져온 패키지 목록을 터미널에 출력하고 설치할 것인지 여부(Y/N)를 묻습니다.
6. Y를 입력하면 패키지를 다운로드하여 자동으로 설치합니다. 만약 yum install -y 옵션을 사용했다면 여부를 묻지 않고 모든 과정을 자동으로 진행합니다.



CentOS-Base.repo 설정 파일 및 패키지 저장소 설명
지금까지 살펴봤듯이 패키지를 다운받는 패키지 저장소 서버는 etc/yum.repos.d/CentOS-Base.repo 파일에 주소가 명시되어 있다는 사실을 알 수 있습니다.

내용을 확인하기 위해 에디터로 설정 파일 CentOS-Base.repo 을 열어 봅니다.
vi /etc/yum.repos.d/CentOS-Base.repo                                                    
cs


CentOS-Base.repo 파일은 다음과 같은 구조를 지니고 있습니다.
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
...생략...

#additional packages that may be useful
[extras]
...생략...

#additional packages that extend functionality of existing packages
[centosplus]
...생략...
enabled=0

크게 [base], [updates], [extras], [centosplus] 로 공백줄로 구분하여 나뉘는데, 각 항목은 패키지 저장소의 위치를 나타냅니다. 글 위쪽으 yum 동작 흐름의 그림에서 패키지 저장소를 보면 원본 패키지, 업데이트 패키지, 추가 패키지가 있는것을 볼 수 있습니다.

[base]
여기서 [base] 항목은 원본 패키지 저장소를 의미합니다. 원본 패키지는 CentOS가 릴리즈 되는 시점에 제작된 버전의 패키지를 의미하며 원본 패키지 저장소에 패키지들이 저장되어 있습니다. 우리가 배포판을 처음 설치할때 같이 설치되는 패키지들이 이곳에 저장된 원본 패키지이며 DVD 이미지에 담겨있습니다.

[updates]
이후 버그 수정이나 기능 수정 등으로 인해 업데이트 된 패키지의 경우 업데이트 패키지 저장소에 별도 저장관리되며 [updates] 항목에 URL을 설정할 수 있습니다. yum은 패키지를 설치할 때 기본적으로 [base] 저장소가 아닌 [updates] 저장소를 이용하며, 이 항목을 주석처리하게 되면 yum 명령어로 패키지를 설치할때 업데이트 버전을 설치하는 것이 아닌 원본패키지 저장소의 패키지를 설치하게 됩니다.

[extras], [centosplus]
추가로 배포된 패키지인 추가패키지 저장소 설정은 [extras] 항목에서 관리하며, [centosplus] 항목이 있지만 기본적으로 enabled=0 으로 설정이 꺼져있고 사용되지 않습니다.



CentOS-Base.repo 설정 구성
바로 위에서 저장소에 관한 설명을 했고 여기서는 설정 항목에 대해서 알아보도록 합니다. 
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

저장소 항목별로 각각 아래에 몇가지 속성들이 있습니다.

name : 저장소의 이름을 명시한 것이며, 아무렇게나 지정해도 상관없습니다.
mirrorlist : baseurl 속성의 값이 생략된 경우 이곳에 명시된 URL을 사용합니다. 기본적으로 CentOS 프로젝트에서 운영하는 공식 서버 URL이 지정 되어 있습니다.
# : 설정에서 #은 주석을 뜻하며 설정이 무시됩니다.
baseurl : 패키지 저장소의 url이며, http://, ftp://, file:// 프로토콜 스킴을 사용할 수 있습니다.
gpgcheck : GPG(GNU Privacy Guard) 키가 들어있는 저장소의 URL을 적습니다. GPG 키는 rpm 패키지를 인증하는데 사용하는 암호화 서명입니다.
enabled : 이 저장소 설정 여부를 사용할것인지 여부를 지정합니다. 기본값은 1이며 1 = 사용, 0 = 미사용 입니다.




CentOS 패키지 저장소 목록
CentOS 패키지 저장는 CentOS 공식 사이트 뿐만 아니라 전 세계적으로 수많은 저장소를 제공하고 있는데, 이러한 저장소 서버들을 미러(mirror) 서버라고 합니다. 전 세계에 퍼져있는 미러 서버 정보는 다음의 링크를 참조합니다. 링크에 접근하여 Ctrl + F를 눌러 korea로 검색하면 카이스트, 카카오, 네이버에서도 미러서버를 제공하고 있는것을 알 수 있습니다.

패키지 저장소 미러서버 목록 -> https://www.centos.org/download/mirrors/

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!