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: