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 : определяет какие виды сообщений будут записываться в журнал. Разделяя пробелами можно указать любую комбинацию из: info, warn, error, log и qa.
 * info: журналирует "einfo" сообщения от ebuild
 * warn: журналирует "ewarn" сообщения от ebuild
 * error: журналирует "eerror" сообщения от ebuild
 * log: журналирует the "elog" сообщения, которые есть в некоторых ebuild
 * qa: журналирует "QA Notice" сообщения от 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 : 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: