Portage log

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Portage log and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎русский • ‎日本語 • ‎한국어

Во время использования 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 (или сразу жестко запишите правильное месторасположение).

Внешние ресурсы