Portageのログ
emergeを使用してパッケージを構築すると、Portage自身から送られるメッセージに気づくのは珍しいことではありません。 メッセージには Gentoo 開発者からの重要な情報が含まれる場合がありますので読むべきです。しかし、多くの場合には急速に画面の外にスクロールしてしまって、そのときには読めません。 これは、elog と呼ばれる Portage の機能を有効にすることで、容易に解決することができます。elog の目的は、あとから読むためにメッセージをディスクに保存することです。 しかし、他のロギング機能も同様に存在します...
Portage elog サブシステム
Portage elog サブシステムは、管理者またはユーザーの注意を引き付けるために ebuild に開発者が入れた特定の、ebuild が生成したログメッセージを追跡します。 これらのメッセージにはパッケージのビルドに関連した情報が含まれ、それはしばしば重要だったり関心をもつべきものだったりします。
セットアップ
PORTAGE_ELOG_CLASSES 変数を介してログに記録する情報の種類を選択。 可能な値は、info
, warn
, error
, log
and qa
:
PORTAGE_ELOG_CLASSES="log warn error"
ファイルへの保存の設定
Portageは、多くの方法で elog イベントを処理することができます。
ディスクに elog のイベントを保存するためには、PORTAGE_ELOG_SYSTEM 変数の save
モジュールを有効化してください:
/etc/portage/make.conf
PORTAGE_ELOG_SYSTEM="save"
メッセージは、/var/log/portage/elog または${PORT_LOGDIR}/elog(当該の変数が設定されている場合)に保存されます。
カテゴリ毎に elog ファイルを作成するには、Portage のsplit-elog
機能を有効にします。 これは、/var/log/portage/elog という場所にカテゴリベースのサブディレクトリを作成することを、Portageに強制します。
電子メール機能を設定
ログをメール送信するために、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 - Pythonのベースのelogビューア
ビルドログ
失敗や成功に関係なく、Portage elogサブシステムと、パッケージのビルドログはディスク上に保存されているか、リモート受信者に郵送します。 管理者が確認するためにこれは後のビルドまたはサポートチケットのビルドログを取得できます。
セットアップ
Portage のロギングを有効にするには、/etc/portage/make.conf を編集して、PORT_LOGDIR
にログファイルを保存する場所を設定してください。 デフォルトでは、Portage は /var/log/portage を使用します:
/etc/portage/make.conf
PORT_LOGDIR="/var/log/portage"
次に、/etc/portage/make.confにあるFEATURES設定に、Portageが構築するログがどのように処理されるのかに影響する設定を編集,または設定したいと思うかもしれません。
binpkg-logs
を設定すると、バイナリパッケージの展開時にもログが保存されますclean-logs
を設定すると、定期的にログファイルのクリーン操作が実行されます。実行されるコマンドは PORT_LOGDIR_CLEAN によって定義され、デフォルトでは 7 日分のファイルが保持されます。split-log
を設定すると、ビルドログは${PORT_LOGDIR}/build
の下の、各カテゴリの名前を付けられたサブティレクトリの中に保存されます
後片付け
clean-logs
が設定されている場合、PortageはPORT_LOGDIR_CLEANで定義されているコマンドを、毎回のビルドあるいはunmerge操作後に実行します。デフォルトでは、以下のコマンドが使用されます:
/usr/share/portage/config/make.globals
PORT_LOGDIR_CLEAN="find \"\${PORT_LOGDIR}\" -type f ! -name \"summary.log*\" -mtime +7 -delete"
もし任意のコマンドを定義する場合、PORT_LOGDIR変数をエスケープするのを忘れないでください(あるいは直接正しい場所にハードコートしてください)。