Handbook:Parts/Portage/Files/ko

설정 지시문
포티지 기본 설정은 에 저장합니다. 모든 포티지 설정은 변수에 저장합니다. 어떤 변수들을 포티지에서 살펴보는지 이들이 나중에 어떤 의미를 지니고 있는지는 나중에 설명하겠습니다.

수많은 설정 지시문이 아키텍처에 따라 다르듯이, 포티지에서는 여러분의 프로파일의 일부로서 기본 설정 파일을 지니고 있습니다. 이 프로파일은 심볼릭 링크를 가리키며, 포티지 설정내용은 여러분의 프로파일의 와 모든 상위 프로파일에 있습니다. 앞으로 프로파일과 디렉터리를 설명하겠습니다.

설정 변수를 바꾸려면 또는 를 바꾸지 마십시오. 앞의 두 파일에 우선하는 를 대신 활용하십시오. 에서도 내용을 찾아볼 수 있습니다. 이름으로 의미를 함축한 바와 같이, 이런 경우는 거의 예제 파일일 뿐입니다. 포티지에서는 이 파일을 읽지 않습니다.

포티지 설정 변수를 환경 변수처럼 설정할 수 있지만, 추천하지 않습니다.

프로파일별 정보
이미 앞에서 디렉터리를 언급했습니다. 음, 정확히는 디렉터리는 아니고, 다른 어딘가에 여러분 자신의 프로파일을 만들 수 있다 하더라도 기본적으로 에 있는 프로파일의 심볼릭 링크이며, 기본 프로파일을 가리킵니다. 이 프로파일 심볼릭 링크는 시스템이 속한 프로파일을 가리킵니다.

프로파일에는 해당 프로파일에 속한 시스템의 꾸러미 목록, 프로파일 상에서 동작하지 않는 (또는 가려놓은) 꾸러미 등과 같은 아키텍처별 포티지 정보를 포함합니다.

사용자별 설정
소프트웨어 설치와 관련한 포티지 동작의 우선 설정이 필요할 때, 에 있는 파일을 편집해서 끝낼 수 있습니다. 에 있는 파일 사용을 강력히 권장하며, 웬만하면 환경 변수로 우선 설정하지 마십시오!

/etc/portage에서 다음과 같은 파일을 만들 수 있습니다.
 * : 포티지로 설치하지 말아야 하는 꾸러미 목록 파일
 * : 젠투 개발자들이 이머징하는 것을 강력히 만류하지만 그래도 설치할 수 있게 하는 꾸러미 목록 파일
 * : 시스템 또는 아키텍처에서 (아직) 꾸러미를 설치하는데 적당함을 발견하지 못했지만, 그래도 설치할 수 있도록 한 꾸러미 목록
 * : 전체 시스템에서 USE 플래그를 사용하도록 제각각의 꾸러미 사용하려는 USE 플래그 목록

이들 요소가 꼭 파일일 필요는 없습니다. 꾸러미 각각에 포함한 단 하나의 파일이어도 됩니다. 디렉터리와 이곳에 만들 수 있는 모든 파일 목록에 대한 더 많은 내용은 포티지 맨페이지에 있습니다.

포티지 파일 및 디렉터리 위치 바꾸기
이전에 언급한 설정 파일은 아무데나 저장할 수 없습니다 - 포티지에서는 항상 정확한 위치에서 설정 파일을 찾습니다. 그러나 포티지에서는 다른 위치를 디렉터리를 구성하고, 소스코드를 저장하며, 포티지 트리 위치로 활용하는 등 다양한 목적으로 활용합니다.

이들 목적은 잘 알려진 기본 위치를 보유하지만 에서 개인 취향에 따라 바꿀 수 있습니다. 이 절의 나머지 부분에서는 어떤 특수 목적의 위치를 포티지에서 사용하는지 파일 시스템의 해당 위치를 어떻게 바꾸는지 설명합니다.

이 문서는 단순히 참고서로서의 의미가 아닙니다. 100% 활용하려면 포티지 및 make.conf의 맨 페이지를 참고하십시오.

포티지 트리
포티지 트리의 기본 위치는 입니다. 이 값은 PORTDIR 변수에 지정합니다. (변수 값을 바꿔서) 다른 곳에 포티지 트리를 저장하려면, 바뀐 위치에 따라 /etc/portage/make.profile 심볼릭 링크를 바꿔주는걸 잊지 마십시오.

PORTDIR 변수를 바꿨다면, PORTDIR을 바꾼 것을 알아채지 못하는 PKGDIR, DISTDIR, RPMDIR 변수들 역시 바꿔야 합니다. 포티지가 이 변수들을 다루기 때문입니다.

미리 빌드한 바이너리
기본적으로 포티지에서 미리 빌드한 바이너리를 사용하지 않지만, 이를 위해 더 광범위한 지원을 제공합니다. 포티지에 미리 빌드한 꾸러미로 작업하라고 요청하면, 에서 꾸러미를 찾습니다. 이 위치는 PKGDIR 변수에 정의되어 있습니다.

소스 코드
프로그램 소스코드는 기본적으로 에 저장합니다. 이 위치는 DISTDIR 변수에 정의합니다.

포티지 데이터베이스
포티지는 (어떤 꾸러미를 설치했는지, 꾸러미에 어떤 파일이 속해있는지 등) 시스템의 상태를 에 저장합니다.

포티지 캐시
포티지 캐시(수정 일시, 가상 꾸러미, 의존성 트리 정보 등)는 에 저장합니다. 이 위치는 말 그대로 캐시 입니다. 포티지 관련 프로그램이 돌아가고 있는 잠깐 동안의 상태가 아니라면 이 디렉터리를 비울 수 있습니다.

임시 포티지 파일
포티지 임시 파일은 기본적으로 에 저장합니다. 이는 PORTAGE_TMPDIR 변수에 정의되어 있습니다.

PORTAGE_TMPDIR 변수를 바꿨다면, PORTAGE_TMPDIR이 바뀜을 알아채지 못한 BUILD_PREFIX 변수의 값도 바꿔주어야 합니다. 포티지가 이 변수를 다루기 때문입니다.

디렉터리 구성
포티지는 이머지할 각각의 꾸러미에 대해 안에 각각의 빌드 디렉터리를 만듭니다. 이 위치는 BUILD_PREFIX 변수에 지정합니다.

라이브 파일 시스템 위치
기본적으로 포티지는 현재 파일시스템(/)에 모든 파일을 설치하지만, 여러분은 ROOT 환경 변수를 설정하여 위치를 바꿀 수 있습니다. 이는 여러분이 새로운 빌드 이미지를 만들 때 유용합니다.

Ebuild 로깅
포티지는 각각의 ebuild 에 대해 로그 파일을 만들 수 있지만, PORT_LOGDIR 변수에 설정한 위치가 포티지에서(portage 사용자가) 기록할 수 있을 때 가능합니다. 이 변수는 기본적으로 설정이 되어 있지 않습니다. PORT_LOGDIR을 설정하지 않으면, 새로운 로부터 어떤 로그를 받았다 할 지라도 현재 로깅 시스템에서 빌드 로그에 대한 어떤 내용도 받을 수 없습니다.

PORT_LOGDIR 변수를 지정하지 않고 를 사용한다면, 아래에서 설명한 바와 같이 빌드 로그와 elog가 저장한 로그를 보실 수 있습니다.

포티지는 elog를 사용하여 세밀한 단위의 기록 기능을 제공합니다:
 * PORTAGE_ELOG_CLASSES: 이 변수는 로그를 남길 메시지의 종류를 설정하는 곳입니다. 공백으로 구분하여 다음 단어들을 함께 쓸 수 있습니다: info, warn, error, log, qa.
 * info: ebuild가 출력하는 "einfo" 메시지를 기록합니다.
 * warn: ebuild가 출력하는 "ewarn" 메시지를 기록합니다.
 * error: ebuild가 출력하는 "eerror" 메시지를 기록합니다.
 * log: ebuild가 출력하는 "elog" 메시지를 기록합니다.
 * qa: ebuild가 출력하는 "QA Notice" 메시지를 기록합니다.


 * PORTAGE_ELOG_CLASSES : This is where users can define what kinds of messages to be logged. This can be any space-separated combination of info, warn, error, log, and qa.
 * info: Logs "einfo" messages printed by an ebuild
 * warn: Logs "ewarn" messages printed by an ebuild
 * error: Logs "eerror" messages printed by an ebuild
 * log: Logs the "elog" messages found in some ebuilds
 * qa: Logs the "QA Notice" messages printed by an ebuild


 * PORTAGE_ELOG_SYSTEM: 로그 메시지를 처리할 모듈을 선택합니다. 비워둔 채로 내버려두면, 로깅을 사용하지 않습니다. 공백으로 구분하여 다음 단어들을 함께 쓸 수 있습니다: save, custom, syslog, mail, save_summary, mail_summary. elog를 사용하려면 최소한 한개 이상의 모듈을 선택해야 합니다.
 * save: $PORT_LOGDIR이 정의되지 않았을 경우 또는 에 각각의 꾸러미에 대한 로그를 저장합니다.
 * custom: $PORTAGE_ELOG_COMMAND에 있는 모든 사용자 정의 명령에 메시지를 전달합니다. 다음에 언급될 것입니다.
 * syslog: 설치한 시스템 로거로 모든 메시지를 보냅니다.
 * mail: $PORTAGE_ELOG_MAILURI에 있는 사용자 정의 메일 서버에 모든 메시지를 전달합니다. 다음에 언급될 것입니다. elog의 메일 기능을 사용하시려면 portage-2.1.1 이상이 필요합니다.
 * save_summary: save와 유사하나, $PORT_LOGDIR이 정의되지 않았을 경우 또는 에 모든 메시지를 합칩니다.
 * mail_summary: mail과 유사하나, emerge를 빠져나갈 때 모든 메시지를 하나의 메일에 작성해서 보냅니다.


 * PORTAGE_ELOG_COMMAND: custom 모듈을 활성화했을때만 사용합니다. 로그 메시지를 처리할 명령을 지정하는 곳입니다. 참고로 두가지 변수를 사용하도록 할 수 있습니다. ${PACKAGE}는 꾸러미의 이름과 버전이고, ${LOGFILE}은 로그 파일의 절대 경로입니다. 사용 예는 다음과 같습니다:


 * PORTAGE_ELOG_MAILURI: 이 변수에는 주소, 사용자, 암호, 메일서버, 포트 번호와 같은 설정 내용을 포함합니다. 기본 설정은 "root@localhost localhost" 입니다. 다음은, 사용자 이름 및 암호 기반의 인증을 개별적인 포트(기본 포트는 25번입니다)에서 필요로 하는 smtp 서버에 대한 사용 예시 입니다.


 * PORTAGE_ELOG_MAILFROM : Allows the user to set the "from" address of log mails; defaults to "Portage" if unset.


 * PORTAGE_ELOG_MAILSUBJECT: 로그 메일의 제목 줄을 만들 수 있게 하는 변수입니다. 참고로, 두가지 변수를 사용할 수 있습니다. ${PACKAGE} 에서 꾸러미 이름과 버전을 표시하며, ${HOST}는 포티지가 실행중인 호스트의 완전한 자격을 갖춘 도메인 이름을 표시합니다. 사용 예는 다음과 같습니다: