"Gentoo change portage rsync to git"의 두 판 사이의 차이

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기
40번째 줄: 40번째 줄:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
$ sudo mkdir -p /etc/portage/repos.conf
 
$ sudo mkdir -p /etc/portage/repos.conf
$ touch /etc/portage/repos.conf/gentoo.conf # 또는 편집기로 직접 열고 위에 언급한 내용 붙여넣고 저장.
+
$ vi /etc/portage/repos.conf/gentoo.conf # 편집기로 직접 열고 위에 언급한 내용 붙여넣고 저장.
 
</syntaxhighlight>
 
</syntaxhighlight>
  

2016년 5월 15일 (일) 05:37 판

서문

이 문서는 포티지 트리의 기존의 rsync 다운로드 방식을 git 방식으로 바꾸는 방법을 언급합니다. 사용자의 컴퓨터에는 최신 portage를 먼저 설치해두었다고 가정합니다.

git 방식 꾸러미 트리 다운로드의 장점

현재 젠투의 꾸러미 트리는 사실상 git 위주로 운영하고 있다고 해도 과언이 아닙니다. 때문에 git 저장소를 활용하여 실시간으로 업데이트를 진행합니다. 만약 unstable 키워드(예: ~amd64)를 /etc/portage/make.conf에 지정했다면, 실시간으로 바뀐 git 저장소의 꾸러미 트리를 받아서 바로 설치할 수 있습니다. 젠투 포티지 트리 실시간 상황은 젠투 포티지 트리 gitweb에서 확인할 수 있습니다.

심지어 rsync는 증분 업데이트를 모두 받아내야 하지만 git 방식은 바이너리를 압축한 후 블록 단위로 쪼개어 보관하는 방식을 쓰기 때문에 데이터 중복 방지+압축으로 인한 추가 용량 감소+멀티 쓰레드를 통한 블록 다운로드로 rsync보다 다운로드 및 동기화 속도가 월등히 빠릅니다. 그러니까 대부분 x86, amd64를 사용하는 상황에서 젠투 인프라 관리팀에서는 git 저장소 다운로드 방식으로의 전환을 강력 추천합니다.

git 설치

우선 git 꾸러미를 설치합니다. 필요한 USE 플래그는 공식 페이지en를 참고하십시오.


주의: 이 과정을 수행하지 않으면 돌이킬 수 없는 문제에 직면할 수 있습니다.


$ sudo emerge git;

설정 파일 편집

/etc/portage/repos.conf/gentoo.conf를 열고 안의 내용을 모두 삭제한 후 다음 내용을 넣습니다.

[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = git
sync-uri = https://anongit.gentoo.org/git/proj/portage.git
auto-sync = true
sync-depth = 1


/etc/portage/repos.conf/gentoo.conf 파일이 없다면 다음 과정을 따릅니다.

$ sudo mkdir -p /etc/portage/repos.conf
$ vi /etc/portage/repos.conf/gentoo.conf # 편집기로 직접 열고 위에 언급한 내용 붙여넣고 저장.

꾸러미 트리 삭제

꾸러미 트리를 모두 삭제합니다. 이전 단계를 반드시 우선적으로 수행해야합니다. 이전 과정을 올바르게 수행해왔다면 꾸러미 트리가 모두 증발했다고 해서 그 다음 꾸러미 설치 관리자가 먹통이 되진 않습니다.


중요: 아래 예제 명령 뒤의 슬래시와 구두점을 빼면 안됩니다. 오타가 아닙니다.


$ sudo rm -rf /usr/portage/.;

꾸러미 트리 전체 재동기화

다음 명령으로 꾸러미 트리 재동기화를 시도합니다(왜냐면 이전 단계에서 꾸러미 트리를 모두 삭제했기 때문입니다).

$ sudo emerge --sync;

다음과 같은 메시지가 뜨면서 저장소 fetch, merge, and rebase에 성공하면 포티지 트리 동기화가 끝납니다.

>>> Syncing repository 'gentoo' into '/usr/portage'...
/usr/bin/git pull

....

q: Updating ebuild cache in /usr/portage ... 
q: Finished 39923 entries in 0.148991 seconds