Handbook:Parts/Working/Features/ko

포티지 기능
포티지는 여러분의 더 나은 젠투 경험을 만들어줄 여러가지 추가 기능이 있습니다. 이 수많은 기능들은 성능, 신뢰성, 보안 등을 개선하기 위한 몇가지 프로그램 도구에 의지합니다.

이들 포티지 기능을 활성화 하거나 비활성화 하려면, 공백으로 구분한 여러 기능 키워드가 들어있는 의  변수를 편집할 필요가 있습니다. 대부분의 경우 기능과 관련한 추가 도구를 설치해야 합니다.

여기에 언급한 포티지 지원 기능이 기능 전부를 의미하지는 않습니다. 전체적으로 간단히 살펴보려면 맨 페이지를 참고하십시오:

변수에 어떤 값을 기본으로 지정했는지 보려면 를 실행하여 FEATURES 변수를 찾아보거나 grep으로 출력 내용을 잡아내십시오:

distcc 사용
프로그램은 네트워크 상에서 반드시 동일할 필요가 없는 많은 장비들로 분산 컴파일을 수행하는 프로그램입니다. distcc 클라이언트는 사용가능한 distcc 서버(distccd 실행)에 필요한 정보를 보내서 클라이언트에 대한 소스코드 일부를 컴파일 할 수 있게 합니다. 이 네트워크를 통해 컴파일 시간이 더 빨라집니다.

distcc에 대한 더 자세한 정보(와 젠투에서 동작하게 하는 방법)는 distcc 글에서 찾아 보실 수 있습니다.

distcc 설치
distcc에는 컴파일할 내용을 전달하는 컴퓨터의 작업을 감시하는 그래픽 감시 프로그램이 있습니다. USE=gnome 또는 USE=gtk를 설정하면 이 도구를 자동으로 설치합니다.

포티지 distcc 지원 활성화
distcc를 의 FEATURES 변수에 추가하십시오. 다음, 여러분이 원하는대로 MAKEOPTS 변수를 편집하십시오. 알려진 지침대로라면 "-jX"의 X에 distccd를 실행하는 CPU의 갯수 + 1을 채워넣는 것입니다만, 단순히 지침일 뿐입니다.

이제 를 실행하고 사용할 수 있는 distcc 서버의 목록을 입력하십시오. 간단한 예로, 사용할 수 있는 DistCC 서버가 192.168.1.102(현재 호스트), 192.168.1.103, 192.168.1.104(두개의 "원격" 호스트)라고 가정합니다.

마찬가지로 distccd 데몬 실행도 잊지 마십시오:

ccache 정보
는 빠른 컴파일러 캐시입니다. 프로그램을 컴파일 할 때 중간 내용을 캐시해서 같은 프로그램을 언제 다시 컴파일 하든지 상관없이 컴파일 타임은 급격하게 줄입니다. ccache를 처음 실행할 때 보통 컴파일 할 때보다 훨씬 느립니다. 그 다음 다시 컴파일 할 때 더 빨라집니다. ccache는 같은 프로그램을 여러번 컴파일 할 때만 도움됩니다. 따라서 이는 대부분 프로그램 개발자들에게만 유용합니다.

ccache에 대한 더 많은 내용은 홈페이지en 를 방문해보십시오.

ccache 설치
ccache를 설치하려면 를 실행하십시오:

포티지 ccache 지원 활성화
를 열고 FEATURES 변수에 ccache를 추가하십시오. 다음 CCACHE_SIZE라고 하는 새 변수를 추가하고, "2G"로 설정하십시오:

ccache 기능을 확인하려면 ccache에게 통계 데이터를 제공해달라고 요청하십시오. 포티지가 다른 ccache 홈 디렉터리를 사용하기 때문에 CCACHE_DIR 변수를 임시로 설정해야합니다:

위치는 포티지의 기본 ccache 홈 디렉터리 입니다. 의 CCACHE_DIR 변수 값을 설정하여 위치를 바꿀 수 있습니다.

를 자체적으로 실행할 때, 기본 위치를 사용하는데, 이것이 (포티지) ccache 통계를 요청할 때 CCACHE_DIR 변수를 설정해야 할 이유입니다.

포티지 외의 용도로 ccache 사용
비 포티지 컴파일을 목적으로 ccache를 사용하려면 PATH변수의 앞부분에 ( 앞에) 을 추가하십시오. 사용자 홈 디렉터리에 있는 을 편집하면 됩니다. 을 활용하는 방법이 PATH 변수를 정의하는 방법입니다.

미리 빌드한 꾸러미 만들기
포티지는 미리 빌드한 꾸러미의 설치를 지원합니다. 젠투가 자체적으로 미리 빌드한 꾸러미를 제공하는 것은 아니지만, 포티지에서 미리 빌드한 꾸러미를 완전히 인식할 수 있습니다.

미리 빌드한 꾸러미를 만들려면, 꾸러미가 이미 시스템에 설치되어 있는 경우 를 사용하고, emerge에  옵션이나  옵션을 붙여서 사용하십시오.

여러분이 설치한 모든 단일 꾸러미에 대해 포티지로 미리 빌드한 꾸러미를 만들려면 FEATURES 변수에 buildpkg를 추가하십시오.

미리 빌드한 꾸러미를 만들기 위한 더 많은 지원은 catalyst로 받을 수 있습니다. catalyst에 대한 더 많은 정보를 보시려면 Catalyst 자주 묻는 질문en 을 읽어보십시오.

미리 빌드한 꾸러미 설치
비록 젠투에서 제공하는건 아니지만, 미리 빌드한 꾸러미를 저장한 중앙 저장소를 만들 수 있습니다. 이 저장소를 사용하려면 PORTAGE_BINHOST 변수를 통해 저장소를 포티지에서 인식하도록 해야합니다. 예를 들어, 미리 빌드한 꾸러미가 ftp://buildhost/gentoo 에 있다면:

미리 빌드한 꾸러미를 설치하려면, emerge 명령에 옵션 다음에   옵션을 추가하십시오. 이 구성자는 후자가 emerge 에게 소스코드를 가져오고 컴파일 하기 전에 미리 빌드한 꾸러미의 설치를 시도해보라고 알리며, 앞서 정의한 서버에서 미리 빌드한 꾸러미를 내려받으라고 요청합니다.

미리 빌드한 꾸러미를 통해 gnumeric을 설치하려면:

더 많은 emerge의 미리 빌드한 꾸러미 옵션은 emerge 맨 페이지에서 찾아보실 수 있습니다:

Distributing prebuilt packages to others
If prebuilt packages are to be distributed to others, then make sure that this is permitted. Check the distribution terms of the upstream package for this. For example, for a package released under the GNU GPL, sources must be made available along with the binaries.

Ebuilds may define a  restriction in their   variable if built binaries are not distributable. Sometimes this restriction is conditional on one or more USE flags.

By default, Portage will not mask any packages because of restrictions. This can be changed globally by setting the  variable in. For example, to mask packages that have a  restriction, add the following line to :

It is also possible to override the  variable by passing the   option to the   command. For example,  will temporarily mask packages with a   restriction.

Also consider setting the  variable when distributing packages. See the Licenses section for this.

Userfetch
포티지를 루트 권한으로 실행할 때 FEATURES="userfetch" 설정은 꾸러미 소스코드를 가져오는 동안 포티지가 루트 권한을 버릴 수 있게 합니다. 이 방법은 약간의 보안성 개선책입니다.

검증한 포티지 트리 스냅샷 가져오기
Administrators can opt to update the local Gentoo ebuild tree with a cryptographically validated tree snapshot as released by the Gentoo infrastructure. This ensures that no rogue rsync mirror is adding unwanted code or packages to the tree the system is downloading.

The Gentoo release media OpenPGP keys are now available as a binary keyring, installed via the package.

This will install the keyring to the location.

Make sure that package is installed:

Use gpg to verify that the keys in the keyring are the correct keys:

Verify the fingerprints of the key(s) against those listed here: Project:RelEng Repeat the following command for each key you wish to trust. (Substitute the keyid '0x...' for the desired key you wish to trust.)

The system is now set-up to sync using only OpenPGP/gpg verified snapshots. Several command options are available to perform the sync.

Original install and configuration instructions

To configure Portage to validate the snapshots, first create a truststore in which the keys of the Gentoo Infrastructure responsible for signing the Portage tree snapshots are stored. Of course, this OpenPGP key can be validated as per the proper guidelines (like checking the key fingerprint). The list of OpenPGP keys used by the release engineering team is available on their project page.

Make sure that is installed:

In the next set of commands, substitute the keys with those mentioned on the release engineering site:

Next, edit and enable support for validating the signed portage tree snapshots (using FEATURES="webrsync-gpg") and disabling updating the Portage tree using the regular emerge --sync method.

In the file, clear the   and   variables so that emerge --sync no longer works (and thus no longer pulls in ebuilds that come from a potentially non-validated source):

That is it. Next time emerge-webrsync is ran, only the snapshots with a valid signature will be expanded on the filesystem.