· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
GentooX86 Handbook_Ko_2-3

1. 포티지의 특징

1.1. 포티지의 특징들

포티지는 독자여러분의 젠투 성능을 좀더 좋게 하기위한 몇몇 추가적 특징들을 지니고 있습니다. 이런 많은 특징들은 성능, 신뢰성, 보안을 향상시키는 몇몇 소프트웨어 도구들에 의지합니다.

몇몇 포티지의 특징들을 가능케 하거나 불가능하게 하려면 /etc/make.conf의 공백으로 구분된 다양한 feature 키워드를 담는 FEATURES변수를 편집하는 것이 필요합니다. 어떤 경우에는 특징에 의존하는 추가적인 도구를 설치할 필요가 있기도 합니다.

포티지의 모든 특징이 여기에 나열된건 아닙니다. 전체 개요를 보려면 make.conf 맨 페이지를 참고하시기 바랍니다.

예제 1-1 : make.conf 맨페이지 참고
$ man make.conf

FEATURES기본 설정이 어떤지 찾아보려면 emerge --info를 실행하고 FEATURES 변수를 검색하거나 이를 grep하여 빼냅니다.

예제 1-2 : 이미 설정된 FEATURES 찾아내기
$ emerge --info | grep FEATURES

1.2. 분산 컴파일링

1.2.1. distcc 사용

distcc는 네트워크상에 있는 다양하지만 반드시 동일한 것은 아닌 시스템들을 통해 컴파일 결과물을 배포하는 프로그램입니다. distcc 클라이언트는 사용가능한 (distccd가 구동중인)distcc 서버로 필요한 정보를 보내어 그들로 하여금 클라이언트를 위해 소스코드 일부를 컴파일할 수 있게 합니다. 네트워크는 좀더 빠른 컴파일 시간 결과를 냅니다.

distcc 에 대한 좀 더 많은 정보(그리고 젠투와 어떻게 동작하게 하는지)를 [http]젠투 Distcc (한글)문서에서 찾을 수 있습니다.

1.2.2. distcc 설치

Distcc 는 컴파일을 위해 독자여러분이 보내는 작업을 감시하기 위해 그래피컬한 감시정보를 실어날라줍니다. Gnome을 사용한다면 USE변수에 'gnome'을 놓으시면 됩니다. 하지만 Gnome을 사용하지 않고 감시 기능을 보유하기 원한다면 USE변수에 'gtk'를 넣으실 것입니다.

예제 2-1 : distcc 설치
# emerge distcc

1.2.3. 포티지 지원 활성화

/etc/make.conf안의 FEATURES 변수에 distcc를 추가합니다. 그 다음 MAKEOPTS변수를 원하는 바대로 편집합니다. 알려진 지침사항은 X는 distccd가 동작하는 시스템 CPU의 +1만큼의 숫자로 "-jX"로 채우는 것이지만, 독자여러분은 더 좋은 결과를 내는 다른 숫자로 설정할 것입니다.

이제 distcc-config를 실행하고 사용가능한 distcc 서버의 목록을 입력합니다. 간단한 예로 사용가능한 DistCC서버들이 192.168.1.102 (현재 호스트), 192.168.1.103, 192.168.1.104 (두 "원격" 호스트)임을 가정하겠습니다.

예제 2-2 : 사용가능한 3대의 distcc 서버 설정
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

또한 distccd 데몬을 실행하는 것을 잊지 마십시오.

예제 2-3 : distccd 데몬 시작
# rc-update add distccd default
# /etc/init.d/distccd start

1.3. 캐싱 컴필레이션

1.3.1. ccache에 대하여

ccache 는 빠른 컴파일러 캐시 입니다. 프로그램을 컴파일할 때, 중간결과를 캐싱하여 어디서든 같은 프로그램을 재 컴파일하든지 컴파일 시간은 극도로 단축됩니다. 일반적인 컴파일 동작에 있어 이를 통해 5~10배 빠른 컴파일 시간 결과를 냅니다.

만약 ccache의 입출력 결과물에 관심있다면 [http]ccache 홈페이지를 방문해 주십시오.

1.3.2. ccache 설치

ccache를 설치하려면 emerge ccache를 실행합니다.

예제 3-1: ccache 설치
# emerge ccache

1.3.3. 포티지 지원 활성화

/etc/make.conf를 열고 FEATURES변수에 ccache를 추가합니다. 다음 CCACHE_SIZE 변수를 추가하고 여기에 "2G"라고 설정해줍니다.

예제 3-2 : /etc/make.conf의 CCACHE_SIZE 편집
CCACHE_SIZE="2G"

ccache 가 동작하는지 점검하기 위해서 ccache의 상황을 ccache가 제공하도록 요청해야 합니다. 포티지는 각기 다른 ccache 주 디렉토리를 사용하기 때문에 CCACHE_DIR 변수를 또한 다음과 같이 설정해야 할 필요가 있습니다.

예제 3-3 : ccache 상황 보기
# CCACHE_DIR="/var/tmp/ccache" ccache -s

/var/tmp/ccache 위치는 포티지의 기본 ccache 주 디렉토리 입니다. 이 설정을 대체하길 원한다면 /etc/make.conf의 CCACHE_DIR 변수를 설정할 수 있습니다.

그러나 ccache를 실행하려 한다면, (포티지) ccache 상황을 요청할때 CCACHE_DIR 변수 를 지정할 필요가 있는 이유때문에, 기본 위치로 ${HOME}/.ccache를 사용하려고 할 것입니다.

1.3.4. 비-포티지(non-Portage) C 컴파일링을 위한 ccache사용

비 포티지 컴파일을 위해 ccache를 사용하길 원한다면, /usr/lib/ccache/bin 을 PATH변수의 시작부분(/usr/bin 이전)에 추가합니다. 이는 독자 여러분의 사용자 홈 디렉토리 내의 .bash_profile을 편집함으로서 할 수 있습니다. .bash_profile을 사용하는 것이 PATH 변수를 정의하는 하나의 방법입니다.

예제 3-4 : .bash_profile 편집
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"

1.4. 바이너리 패키지 지원

1.4.1. 미리 빌드된 패키지 생성

포티지는 미리 빌드된 패키지의 설치를 지원합니다. 비록 젠투 자체로 인해 미리 빌드된 패키지를 제공하지는 않지만 (GRP 스냅샷은 예외입니다) 포티지는 미리 빌드된 패키지를 완벽하게 인식할 수 있게 합니다.

미리 빌드된 패키지를 생성하려면 패키지가 이미 시스템에 설치되었을때 quickpkg를 사용하거나 --buildpkg또는 --buildpkgonly와 함께 emerge 할 수 있습니다.

포티지를 통해 독자여러분이 설치한 모든 단일패키지중 미리 빌드된 패키지를 생성하길 원한다면, buildpkg를 FEATURES 변수에 추가합니다.

미리 빌드된 패키지 셋을 위한 좀더 확장된 지원사항으로 catalyst가 포함될 수 있습니다. catalyst에 대한 이 외 정보를 원하시면 [http]Catalyst FAQ를 읽어보시기 바랍니다..

1.4.2. 미리 빌드된 패키지 설치

비록 젠투가 이를 제공하진 못하지만, 미리 빌드된 패키지를 저장한 중앙저장소를 만들 수 있습니다. 만약 이 저장소를 사용하고 싶다면, 저장소를 가리치는 PORTAGE_BINHOST 변수를 포함하여 포티지로 하여금 이를 인식하게 할 필요가 있습니다.예를 들어 ftp://buildhost/gentoo 에 미리 빌드된 패키지(들)를 위치한다면

예제 4-1: /etc/make.conf 에 PORTAGE_BINHOST 변수 설정
PORTAGE_BINHOST="ftp://buildhost/gentoo"

미리 빌드된 패키지를 설치하고 싶을때는, --getbinpkg 옵션을 --usepkg 옵션과 나란히 emerge 명령에 추가합니다. 전자는 emerge를 통해 미리 빌드된 패키지를 앞서 정의한 서버로부터 내려받고, 후자는 소스를 받아서 컴파일 하기 전에 미리 빌드된 패키지를 설치시도하도록 요청하는 것입니다.

예를 들어, 미리 빌드된 패키지 gnumeric을 설치하기 위해

예제 4-2: 미리 빌드된 gnumeric 패키지 설치
# emerge --usepkg --getbinpkg gnumeric

emerge의 미리 빌드된 패키지에 대한 옵션정보를 더 알려면 emerge 맨 페이지에서 찾을 수 있습니다.

예제 4-3: emerge 맨 페이지 읽기
$ man emerge

1.5. 파일 받기

1.5.1. 병렬로 받기

패키지의 한 계열을 emerge하려면 포티지는 다른 패키지를 컴파일 하고 있는동안이라 할지라도 목록의 다음 패키지를 위해 소스파일을 미리 받아낼 수 있습니다. 그리하여 컴파일 시간을 줄일 수 있습니다. 이런 능력을 사용하려면 독자여러분의 FEATURES에 "parallel-fetch"를 추가합니다.

1.5.2. 사용자가 받기

루트 계정으로 포티지를 실행할때, FEATURES="userfetch"설정은 루트권한으로 패키지 소스를 받는 것을 포티지가 차단하도록 할 것입니다. 이는 약간의 보안성 향상을 가져옵니다.


ID
Password
Join
The Tree of Learning bears the noblest fruit, but noble fruit tastes bad.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-02-22 22:13:02
Processing time 0.0067 sec