This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Portage log
Во время использования emerge для компиляции пакета часто можно заметить сообщения от самого Portage. Так как они могут содержать важную информацию от разработчиков Gentoo их рекомендуется читать. Но часто, это получается не сразу, так как они быстро прокручиваются на экране. Это можно легко решить с помощью возможности Portage, которая называется elog. Цель этой возможности заключается в сохранении сообщений на диск для последующего просмотра. Но существуют и другие возможности ведения журнала ...
Подсистема elog в portage
Подсистема elog в Portage отслеживает конкретные сообщения из ebuild, которые разработчики поместили в ebuild, чтобы привлечь внимание администратора или пользователя. Часто эти сообщения содержат важную или интересную информацию, связанную со сборкой упомянутого пакета.
Настройка
С помощью переменной PORTAGE_ELOG_CLASSES выберите какой тип информации нужно журналировать. Возможные значения info
, warn
, error
, log
и qa
:
PORTAGE_ELOG_CLASSES="log warn error"
Настройка для хранения в виде файлов
Portage может обрабатывать события elog в ряде случаев.
Для того чтобы сохранить события elog на диск, включите модуль save
в переменной PORTAGE_ELOG_SYSTEM:
/etc/portage/make.conf
PORTAGE_ELOG_SYSTEM="save"
Сообщения будут сохранены в файл /var/log/portage/elog или в файл ${PORT_LOGDIR}/elog, если указанная переменная установлена.
Для того чтобы создать файлы elog для каждой категории, включите split-elog
. Это заставить Portage в каталоге /var/log/portage/elog создавать подкаталоги для каждой категории.
Настройка для e-mail
Для того чтобы отправить журнал по почте, включите модуль mail
. Для модуля mail необходимо установить некоторые дополнительные переменные. Чтобы получить больше информации, прочитайте /usr/share/portage/config/make.conf.example.
Ниже, показан пример настройки, который говорит, надеемся, сам за себя:
/etc/portage/make.conf
PORTAGE_ELOG_SYSTEM="mail" # Сперва ящик для сообщений, затем сервер SMTP PORTAGE_ELOG_MAILURI="log-intake@example.com mail.example.com" PORTAGE_ELOG_MAILFROM="portage@$(hostname).example.com" PORTAGE_ELOG_MAILSUBJECT="${PACKAGE} is ${ACTION} on ${HOST}"
Другой пример для nullmailer или sendmail:
/etc/portage/make.conf
PORTAGE_ELOG_SYSTEM="mail" # Сперва ящик для сообщений, затем сервер SMTP PORTAGE_ELOG_MAILURI="users@host /usr/sbin/sendmail" PORTAGE_ELOG_MAILFROM="portage@$(hostname).example.com" PORTAGE_ELOG_MAILSUBJECT="${PACKAGE} is ${ACTION} on ${HOST}"
Сопутствующее программное обеспечение
Далее идет список сопутствующего для elog программного обеспечения:
- app-portage/elogv - утилита сделанная на библиотеки curses для разбора содержимого файлов elog
- app-portage/elogviewer - просмотрщик файлов elog сделанный на основе Python
Журналы компиляции
При использовании подсистемы Portage elog журналы сборки пакетов сохраняются на диске или отправляются по почте удаленному получателю, независимо от сбоя или успеха. Это позволяет администраторам просматривать журнал компиляции позже или использовать журналы компиляции для получения сторонней поддержки.
Настройка
Чтобы включить журналирование Portage, отредактируйте файл /etc/portage/make.conf и установите в переменной PORT_LOGDIR каталог, где файлы журналов будут храниться. По умолчанию Portage использует /var/log/portage:
/etc/portage/make.conf
PORT_LOGDIR="/var/log/portage"
Далее несколько настроек для переменной FEATURES влияющих на то, как Portage будет обрабатывать журналы компиляции.
- С включенным
binpkg-logs
журнал будет сохраняться даже при установки из бинарных пакетов. - С включенным
clean-logs
будет выполнятся операция по очистке файлов с журналами. Команда, которая будет выполняться, определена в PORT_LOGDIR_CLEAN и по умолчанию удаляются файлы старше 7 дней. - С включенным
split-log
журналы компиляции сохраняются в субкаталогах каталога${PORT_LOGDIR}/build
, которые используют категорию в качестве имени.
Очистка
Если установлен clean-logs
, Portage будет выполнять команду, которая определена в переменной PORT_LOGDIR_CLEAN, после каждой операции компиляции или удаления. По умолчанию используется следующая команда:
/usr/share/portage/config/make.globals
PORT_LOGDIR_CLEAN="find \"\${PORT_LOGDIR}\" -type f ! -name \"summary.log*\" -mtime +7 -delete"
Если определяете пользовательскую команду, не забудьте зазеркалировать переменную PORT_LOGDIR (или сразу жестко запишите правильное месторасположение).