Handbook:Parts/Portage/Files/ru

Конфигурационные директивы
Portage поставляется с настройками по умолчанию, которые хранятся. Все настройки Portage обрабатываются с помощью переменных. Какие переменные использует Portage и для чего они нужны будет описано позже.

Так как многие директивы отличаются в разных архитектурами, у Portage есть настроечный файл по умолчанию, который является частью системного профиля. Этот профиль указывается с помощью символьной ссылки ; конфигурации Portage устанавливаются из файлов профиля и всех вышестоящих профилей. Мы объясним позже о профилях и о каталоге.

Если требуется изменить конфигурационные переменные, не меняйте или. Вместо этого используйте файл у которого больший приоритет над предыдущими файлами. Для получения дополнительной информации прочитайте. Как следует из названия, это просто пример; Portage не использует этот файл.

Также можно определить конфигурационные переменные Portage в переменном окружении, но мы не рекомендуем этого делать.

Информация из определенного профиля
Мы уже ознакомились с каталогом. На самом деле это не каталог, а символьная ссылка на один из профилей, по умолчанию это, однако можно создать свои собственные профили где угодно и ссылаться на них. Профиль, на который указывает символьная ссылка, и есть системный профиль.

Профиль содержит информацию о конкретной архитектуре для Portage, например, список пакетов, которые принадлежат этому системному профилю, список пакетов, которые не работают (или замаскированы) в этом системном профиле, и так далее.

Пользовательская конфигурация
Если нужно изменить поведение Portage относительно того, как устанавливается программное обеспечение, то будет правильно настроить файлы в. Настоятельно рекомендуется использовать файлы в и очень не рекомендуется переопределять поведение Portage в переменном окружении!

Пользователи могут создать в следующие файлы:
 * список пакетов, которые Portage никогда не будет устанавливать
 * список пакетов, которые Portage будет устанавливать, даже если разработчик Gentoo отговаривает пользователей от их установки
 * список пакетов, которые Portage будет устанавливать, даже если они не подходят для используемой системы или архитектуры (пока)
 * список пакетов, для которых необходимо использовать специфичные USE-флаги, а не брать системные USE-флаги

Не обязательно они должны быть файлами; это могут быть каталоги, содержащие по одному файлу для пакета. Больше информации о каталоге и весь список возможных файлов, которые можно создать там, можно найти в man-странице Portage:

Изменение файлов Portage и расположение каталогов
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.

Данная статья не предназначена для использования в качестве полноценного справочника. С полной информацией можно ознакомиться в man-страницах portage и make.conf:

Дерево Portage
Дерево Portage по умолчанию находится в. Месторасположение определяется переменной PORTDIR. Не забудьте сменить символьную ссылку на, если хотите хранить (меняя переменную) дерево Portage в другом месте.

После изменения переменной PORTDIR рекомендуется изменить следующие переменные, так как они не заметят изменений в переменной PORTDIR. Portage так работает с переменными: PKGDIR,  DISTDIR ,  RPMDIR.

Двоичные пакеты
Хотя по умолчанию Portage не использует двоичные пакеты, в нем есть широкая поддержка их. Когда Portage просят установить бинарный пакет, он будет искать их в каталоге. Этот каталог определяется переменной PKGDIR.

Исходный код
По умолчанию исходный код для приложений хранится в каталоге. Этот каталог определяется переменной DISTDIR.

База Portage
Portage хранит статус системы (какие пакеты установлены, какие файлы какому пакету принадлежат, ...) в каталоге.

Кеш Portage
Кэш Portage (с временем изменений, виртуальными пакетами, информации о зависимостях в дереве, ...) хранится в. Там располагается просто кэш: пользователи спокойно могут отчистить это каталог, если на данный момент не запущено никаких приложений Portage.

Временные файлы Portage
Временные файлы Portage по умолчанию хранятся в. Этот каталог определяется с помощью переменной PORTAGE_TMPDIR.

После изменения переменной PORTAGE_TMPDIR рекомендуется изменить следующие переменные, так как они не заметят изменений в переменной PORTAGE_TMPDIR. Portage так работает с переменными: BUILD_PREFIX.

Каталог компиляции
Portage создает специальные каталоги в для всех компилируемых пакетов. Этот каталог определяется переменной BUILD_PREFIX.

Расположение реальной системы
По умолчанию Portage устанавливает все файлы на текущую файловую систему, но это можно изменить, если настроить переменную окружения ROOT. Что весьма удобно, в случае создания новых сборочных образов.

Журналироване для ebuild
Portage может создавать фалы журналов для каждого ebuild, но только в том случае, когда переменная PORT_LOGDIR указывает на каталог, который доступен для записи Portage (пользователю portage). По умолчанию эта переменная не задана. Если переменная PORT_LOGDIR не задана то, в текущей системе журналирования не будет журналов, хотя пользователи могут получить некоторый журналы с помощью новой поддержки.

Если переменная PORT_LOGDIR не определена и используется, тогда можно получить журналы сборки и любые другие журналы, которые сохраняются программой elog, как показано ниже.

Portage предлагает гибкую систему контроля над журналированием с помощью программы 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 : эта переменная содержит настройки для модуля почты, такие как адрес, логин, пароль, почтовый сервер и номер порта. По умолчанию это "root@localhost localhost". Следующий пример для сервера SMTP, который требует аутентификацию на основе логина и пароля на определённом порту (по умолчанию 25):


 * PORTAGE_ELOG_MAILFROM : позволяет пользователю настроить адрес "from" для отправленных по почте журналов; если ничего не задано, то по умолчанию "Portage".


 * 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: