Handbook:Parts/Portage/Files/ru

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

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

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

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

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

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

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

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

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

Изменение файлов Portage и расположение каталогов
Ранее упомянутые конфигурационные файлы нельзя хранить в любом месте; Portage всегда будет искать эти файлы в строго определенных местах. Однако Portage использует много других каталогов для различных целей: каталог для сборки, хранения исходного кода, расположение Gentoo репозитория, ...

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

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

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

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

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

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

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

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

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

Каталог компиляции
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 : эта переменная используется только в случае когда используется модуль custom. Пользователи могут определить команду для обработки сообщений журнала. Обратите внимание, что команда может использовать две переменные: ${PACKAGE} — это имя и версия пакет, а ${LOGFILE} — это полный путь до файла журнала. Например:


 * PORTAGE_ELOG_MAILURI : эта переменная содержит настройки для модуля mail, такие как адрес, логин, пароль, почтовый сервер и номер порта. По умолчанию это "root@localhost localhost". Следующий пример для сервера SMTP, который требует аутентификацию на основе логина и пароля на определённом порту (по умолчанию 25):


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


 * PORTAGE_ELOG_MAILSUBJECT : позволяет пользователям создать тему для писем с журналами. Обратите внимание, что можно использовать две переменные: ${PACKAGE} отобразит имя и версию пакета, а ${HOST} отобразит полностью определенное доменное имя (FQDN) хоста на котором запущен Portage. Например: