[Fedora 11] Fedora yum 한국 미러(KAIST mirror server) 전환하기
안녕하세요. 일전에 Fedora 11 Feature List를 올린 이후로 헥헥 대며, 다음 주제는 무엇으로 정할까 고민하던 드자이너입니다. 이쯤되면 이제 드자이너가 아니라 삽질러라 불러도 될만큼… 삽질만 하고 있습니다… ㅠㅠ
이번 포스팅은 Fedora의 업데이트 패키지인 Yum의 미러를 한국으로 바꾸는 것이 대해 올려보고자 합니다. 아시다시피 Fedora의 경우 다 좋은데(뭐 리눅스가 사실 다 좋습니다… 다 아시면서^^), 이 놈이 최대 약점은 바로 느린 업데이트 다운로드속도 였다는 것이죠 ㅠㅠ.. Google 검색을 해보아도 리눅스를 데스크톱 운영체제로 널리 알린 Ubuntu와 비교하는 기사를 보면 대부분 Fedora Yum의 느린 다운로드 속도를 꼽고 있습니다.
다들 아시다시피 Yum은 Fedora에서 만든건 아니고, 원래는 쉽게 패키지를 설치해보자는 생각에서 Duke University의 Dan Burcaw, Bryan Stillwell, Stephen Edie, 그리고 Troy Bengegerdes가 제작한 업데이트용 프로그램입니다. 현재는 GPL로 GNU 프로젝트에 포함되어 이를 채용한 리눅스 배포판의 기본 패키지 관리자로서 활용되고 있죠. 우선 Fedora yum의 속도가 느린 것에 대해서 생각해보자면 기본적으로 다음과 같은 방식으로 저장소에 접근을 하기 때문에 발생합니다.
-
http://mirrors.fedoraproject.org에 접속하여 미러리스트를 다운로드한다.
-
미러리스트를 조회한 후 시스템에 설정된 현재 언어, 혹은 AS(Whois의 ASN을 조회하여 나옵니다. 쉽게말하면 ISP 식별이 가능한 정보이죠)에 따라서 가장 가까운 지역의 미러로 접속한다.
-
GPG 키등을 확인하고 적합한 저장소인지 확인한 후 메타데이터의 참조 지시에 따라 적절한 위치로 이동해 패키지 정보를 담은 관련 DB를 다운로드한다.
-
패키지 정보에 관련된 DB로 검색하려는 패키지를 쿼리한 후, 이에 적합한 패키지를 다운로드하거나 설치하거나 삭제한다.
대충 이런 얼개입니다. 실제로는 더 복잡하지만, 일단 눈에 보이는 과정은 이렇게 진행됩니다. 백엔드에서 진행되는 것까지 다 설명하자면 제가 완벽히 이해를 하지 못한 것도 있고 해서 검증되지 않은 부정확한 정보를 날리게 될까봐 일단 패스합니다. (태... 태클을 제발 ㅠㅠ) 자 여기서 핵심은 바로 “미러리스트 조회”와 “가장 가까운 지역의 미러”라는 것입니다.
Fedora의 약점이 바로 여기에서 노출되는데요, 바로 “한국”미러가 예전에는 없었다는 것입니다. 많은 리눅서분들이 애용하는 미러로 다음과 카이스트를 꼽습니다. 특히 다음의 경우에는 거의 모든 배포판 리눅스를 다 서비스하고 있었다고 해도 과언이 아닙니다. 심지어는 윈도우로 포팅된 Cygwin의 모든 바이너리와 소스까지 배포하는 미러이니까요.. 문제는…
Fedora는 없다!
아;;; 안습도 이런 안습이 없습니다… 참고로 다음과 카이스트의 미러사이트 주소는 다음과 같습니다.
다음 미러사이트 - http://ftp.daum.net/
카이스트 미러사이트 – http://ftp.kaist.ac.kr
다음과 카이스트는 오픈소스프로젝트를 위해서 정말 큰 일을 하고 있습니다. 그러나 안타깝게도 공식 Fedora Mirror List를 보면 현재에도 한국은 없습니다… 일본의 JAIST(우리나라의 KAIST와 비슷한 곳이라고 생각하시면 됩니다)의 경우에는 각종 리눅스 배포판의 미러에서부터, SourceForge.net의 미러까지 맡아서 하고 있는데, 우리나라의 오픈소스에 대한 지원을 보면 조금 안구에 습기가 차오를려고 합니다. 하지만 실제로 카이스트는 이전 릴리즈에 대해서도 미러링을 해주고 있었습니다. 그런데 왜 리스트에는 없을까요? 아래 기사를 보시면 조금 답이 나오실 겁니다.
https://bugs.launchpad.net/ubuntu/+bug/144511 - “default korean mirror has been dead for one month”
제목에서도 보실 수 있듯이 무려 한달이나 서버가 죽어있었다는 사실때문에... 그 외에도 잦은 서버 다운타임이 보고되었다고 합니다. 즉, 불안정하게 운용되고 있다는 점이 크게 작용한 것으로 보입니다. 그래서 공식적인 미러로는 아직 인정을 받지 못하고 있는 것 같습니다. 확실히는 모르겠지만요. 뭐 여차저차해서 불안정하다느니 뭐… 이런 말 다 제껴두고… 어쨌든 운용은 되고 있다! 이겁니다. 그럼 당연히 한국 미러로 접속이 될거 아니냐!라고 생각하시면 아니되옵니다 ㅠㅠ
보다시피 미러들이 오류가 나면서 오류를 뿜어댑니다. 그냥 kernel하나로 검색해본 것에 불과한데… (물론 이 스샷하나 올려보려고 yum clean all로 다 지웠네요 ㅠㅠ) 게다가 미러는 전혀 한국과는 상관없는 hk(응? 한국? ㅋㅋㅋ 홍콩입니다), jp(일본) 도메인의 미러로 접속이 되고 맙니다. 안구에 습기가 불현듯… 사실 가끔씩은 카이스트의 미러로 접속하기는 했습니다만, 대부분은 저런 외국 도메인으로 접속을 하고 있었습니다. 그렇다면 이제 직접 미러를 바꿔보도록 하겠습니다. (참고로 2009년 6월 27일 현재 Fedora 11의 최신 커널 버전은 2.6.29.5-191-fc11입니다.)
보통 Fedora의 경우 /etc/yum.repos.d 에 미러에 대한 정보를 가지고 있습니다. 이 파일을 뜯어보면 대충 다음과 같은 내용으로 되어 있습니다.
fedora.repo – Fedora 11 base repositery
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[fedora-source]
name=Fedora $releasever - Source
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/SRPMS/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
그리고 업데이트의 경우 아래와 같습니다.
fedora-updates.repo – Fedora 11 Updates base repositery
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[updates-debuginfo]
name=Fedora $releasever - $basearch - Updates - Debug
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/debug/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[updates-source]
name=Fedora $releasever - Updates Source
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/SRPMS/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
rawhide나 updates-testing도 있으나 대부분의 경우 저 두개만 사용하시므로 일단 두개만 보여드리자면 다음과 같은 내용으로 되어 있습니다. 여기에서 핵심은 바로 “baseurl”과 “mirrorlist”입니다. 일반적으로 Fedora 11을 설치 하면 baseurl은 주석처리되어 있고, mirrorlist를 통해서 미러링하여 다운로듣 받도록 되어 있습니다. 물론 처음에는 아무 미러로나 접속할 가능성이 높은데, “yum-fastestmirror” 플러그인을 설치하시면 미러 목록중에서 현재 위치에서 가장 가까운 미러로 자동 접속하도록 해줍니다. 핵심은 여기에 있습니다. 바로 mirrorlist를 비활성화하고, baseurl을 직접 지정해서 사용한다는 것이죠... 참 쉽죠잉? 결국 할일은 그것 뿐입니다. 쉽게 말하자면 다음과 같이 할 수 있다는 것이죠.
- baseurl의 주석제거 및 mirrorlist를 주석 처리
- baseurl을 변경
baseurl은 http://ftp.kaist.ac.kr/fedora/linux 입니다. 이 곳 하위에 이제 release냐(요게 base repositery이죠), 그리고 updates를 정한 이후 설치한 시스템의 architecture에 맞게 수정을 해주는 것입니다. 다음은 수정된 fedora.repos와 fedora-updates.repos 파일입니다.
fedora.repo – Fedora 11 base repositery from KAIST mirror
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://ftp.kaist.ac.kr/fedora/linux/releases/$releasever/Everything/$basearch/os/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
failovermethod=priority
baseurl=http://ftp.kaist.ac.kr/fedora/linux/releases/$releasever/Everything/$basearch/debug/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[fedora-source]
name=Fedora $releasever - Source
failovermethod=priority
baseurl=http://ftp.kaist.ac.kr/fedora/linux/releases/$releasever/Everything/source/SRPMS/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
그리고 다음은 업데이트 리포지터리 경로입니다.
fedora-updates.repo – Fedora 11 updates repositery from KAIST mirror
[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=http://ftp.kaist.ac.kr/fedora/linux/updates/$releasever/$basearch/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[updates-debuginfo]
name=Fedora $releasever - $basearch - Updates - Debug
failovermethod=priority
baseurl=http://ftp.kaist.ac.kr/fedora/linux/updates/$releasever/$basearch/debug/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[updates-source]
name=Fedora $releasever - Updates Source
failovermethod=priority
baseurl=http://ftp.kaist.ac.kr/fedora/linux/updates/$releasever/SRPMS/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
이렇게 편집하시면 됩니다. 제가 밑줄로 표시한 부분이 바로 바뀐부분이죠. 다른 부분은 손 안댔습니다. 그냥 저렇게 경로하나만 바꿔주셔도 엄청나게 빨라집니다. 보통 Fedora를 DVD로 설치할 경우 설치하면서 업데이트를 다운로드하면서 설치하는 경우가 있긴 한데요, 이 경우 미러 속도로 인해서 안구에 습기가 줄줄 흘렀습니다. 하지만 일단은 DVD로 바로 설치하고 난 다음 바로 미러를 바꿔주시고 업데이트하면 거의 광속의 속도(외국에 접속할 때 비해서죠^^) 업데이트가 가능합니다. 정말 완전 빠릅니다... 놀랄 노!자가 튀어나옵니다...
허접하고 별거 아닌 정보인데 너무 길게 쓴것 같습니다 ㅠㅠ. 여러분에게 유용한 정보가 되었으면 좋겠습니다. 다음에는 보안에 관해서 몇가지 정보를 올려드리도록 하겠습니다. 그럼 이만 삽질 드자이너 물러갑니다…
-------------- p.s.
실제로 얼마나 빠른지 보기 위해 동영상을 올렸습니다. 화면캡춰를 위해서 putty를 사용했습니다. 양해를 부탁드립니다^^
아마 Fedora로 업데이트 해보신 분들은 이 정도 속도면 얼마나 빠른건지 아실거라고 생각합니다. 참고하세요.
'시스템 > linux' 카테고리의 다른 글
chmod (0) | 2010.08.24 |
---|---|
diff (0) | 2010.08.24 |
IPTABLES 사용법 예제로 정리 (0) | 2010.08.16 |
linux network config(fedora) (0) | 2010.08.15 |
m4 오류해결법 sendmail (0) | 2010.08.15 |