Handbook:Parts/Portage/Files/ko

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

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

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

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

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

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

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

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

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

포티지 파일 및 디렉터리 위치 바꾸기
The previously mentioned configuration files cannot be stored elsewhere - portage will always look for those configuration files at those exact locations. However, portage uses many other locations for various purposes: build directory, source code storage, Portage tree location, ...

All these purposes have well-known default locations but can be altered to personal taste through. The rest of this chapter explains what special-purpose locations Portage uses and how to alter their placement on the filesystem.

This document isn't meant to be used as a reference though. To get 100% coverage, please consult the portage and make.conf man pages:

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

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

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

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

포티지 데이터베이스
Portage stores the state of the system (what packages are installed, what files belong to which package, ...) in.

포티지 캐시
The Portage cache (with modification times, virtuals, dependency tree information, ...) is stored in. This location really is a cache: users can clean it if they are not running any portage-related application at that moment.

임시 포티지 파일
Portage's temporary files are stored in by default. This is defined by the PORTAGE_TMPDIR variable.

When altering the PORTAGE_TMPDIR variable, it is recommended to also change the following variables as well since they will not notice the PORTAGE_TMPDIR change. This is due to how Portage handles variables: BUILD_PREFIX.

디렉터리 구성
Portage creates specific build directories for each package it emerges inside. This location is defined by the BUILD_PREFIX variable.

라이브 파일 시스템 위치
By default Portage installs all files on the current filesystem (/), but this can be changed by setting the ROOT environment variable. This is useful when creating new build images.

Ebuild logging
Portage can create per-ebuild log files, but only when the PORT_LOGDIR variable is set to a location that is writable by portage (through the portage user). By default this variable is unset. If PORT_LOGDIR is not set, then there will not be any build logs with the current logging system, though users may receive some logs from the new  support.

If PORT_LOGDIR is not defined and  is used, then build logs and any other logs saved by elog will be made available, as explained below.

Portage offers fine-grained control over logging through the use of elog:
 * 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: This selects the module(s) to process the log messages. If left empty, logging is disabled. Any space-separated combination of save, custom, syslog, mail, save_summary, and mail_summary can be used. At least one module must be used in order to use elog.
 * save: This saves one log per package in, or if $PORT_LOGDIR is not defined.
 * custom: Passes all messages to a user-defined command in $PORTAGE_ELOG_COMMAND; this will be discussed later.
 * syslog: Sends all messages to the installed system logger.
 * mail: Passes all messages to a user-defined mailserver in $PORTAGE_ELOG_MAILURI; this will be discussed later. The mail features of elog require >=portage-2.1.1.
 * save_summary: Similar to save, but it merges all messages in, or if $PORT_LOGDIR is not defined.
 * mail_summary: Similar to mail, but it sends all messages in a single mail when emerge exits.


 * PORTAGE_ELOG_COMMAND: This is only used when the custom module is enabled. Users can specify a command to process log messages. Note that the command can make use of two variables: ${PACKAGE} is the package name and version, while ${LOGFILE} is the absolute path to the logfile. For instance:


 * PORTAGE_ELOG_MAILURI: This contains settings for the mail module such as address, user, password, mailserver, and port number. The default setting is "root@localhost localhost". The following is an example for an smtp server that requires username and password-based authentication on a particular port (the default is port 25):


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


 * PORTAGE_ELOG_MAILSUBJECT: Allows the user to create a subject line for log mails. Note that it can make use of two variables: ${PACKAGE} will display the package name and version, while ${HOST} is the fully qualified domain name of the host Portage is running on. For instance: