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
When using emerge for building a package, it is not uncommon to notice messages coming from Portage itself. Since they may contain important information from Gentoo developers it is a good idea to read them, but often this is not immediately possible because they rapidly scroll out of the screen. This can be easily solved by enabling a Portage feature called elog, whose purpose is to save messages to disk for later review. But other logging capabilities exist as well...
Portage elog Teilsystem
Das Portage elog Teilsystem behält bestimmte von ebuild gelieferte Log-Meldungen im Auge, die von Entwicklern in die ebuilds gepackt wurden um die Aufmerksamkeit des Administrators oder der Benutzer auf sich zu ziehen. Diese Meldungen beinhalten oft wichtige oder interessante Informationen in Bezug zu den genannten Paketen.
Einrichtung
Wählen Sie durch die Variable PORTAGE_ELOG_CLASSES
welche Art von Informationen geloggt werden sollen. Mögliche Werte sind info
, warn
, error
, log
und qa
:
/etc/portage/make.conf
PORTAGE_ELOG_CLASSES="log warn error"
Konfiguration für Datei-basierte Speicherung
Portage kann die elog Ereignisse auf mehrere Arten handhaben.
Um die elog Ereignisse auf Festplatte zu speichern aktivieren Sie das save
Modul in der Variable PORTAGE_ELOG_SYSTEM
:
/etc/portage/make.conf
PORTAGE_ELOG_SYSTEM="save"
Die Meldungen werden in /var/log/portage/elog oder ${PORT_LOGDIR}/elog gespeichert, wenn die genannte Variable gesetzt ist.
Um in Kategorien unterteilte elog Dateien zu erzeugen, aktivieren Sie die Portage Funktion split-elog
. Sie wird Portage dazu bringen Kategorie-basierte Unterverzeichnisse im Verzeichnis /var/log/portage/elog zu erzeugen.
Für E-Mail Konfigurieren
Um Logdateien an einen Empfänger zu mailen aktivieren Sie das Modul mail
. Die Mail-Option erfordert dass einige zusätzliche Variablen gesetzt sind. Lesen Sie /usr/share/portage/config/make.conf.example für weitere Informationen.
Unterhalb ist eine Beispiel-Konfiguration gezeigt, die hoffentlich selbsterklärend ist:
/etc/portage/make.conf
PORTAGE_ELOG_SYSTEM="mail" # Zuerst die Empfangs-Mail Adresse, dann der SMTP Server 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}"
Ein weiteres Beispiel mit nullmailer oder sendmail:
/etc/portage/make.conf
PORTAGE_ELOG_SYSTEM="mail" # Zuerst die Empfangs-Mail Adresse, dann der SMTP Server PORTAGE_ELOG_MAILURI="users@host /usr/sbin/sendmail" PORTAGE_ELOG_MAILFROM="portage@$(hostname).example.com" PORTAGE_ELOG_MAILSUBJECT="${PACKAGE} is ${ACTION} on ${HOST}"
Ähnliche Software
Das folgende ist eine Liste von elog-ähnlichen Softwarepaketen:
- app-portage/elogv - Curses based utility to parse the contents of elogs
- app-portage/elogviewer - Python based elog viewer
Logdateien erzeugen
Mit dem Portage elog Teilsystem werden Paketerzeugungs-Logdateien auf Festplatte gespeichert oder zu einem entfernten Empfänger geschickt, unabhängig von Erfolg oder Misserfolg. Dies erlaubt es Administratoren den Bau später zu überprüfen oder Bau-Logdateien für Support-Tickets abzurufen.
Einrichtung
To enable Portage logging, edit /etc/portage/make.conf and set PORT_LOGDIR to a location where the log files should be stored. By default, Portage will use /var/log/portage:
/etc/portage/make.conf
PORT_LOGDIR="/var/log/portage"
Als Nächstes beeinflusst eine Anzahl von FEATURES
Einstellungen wie Portage mit Build-Logs umgeht.
- Mit gesetztem
binpkg-logs
werden selbst die Protokolle von Binärpaketen gespeichert - Wenn
clean-logs
gesetzt ist werden regelmässig Logdatei-Säuberungsoperationen durchgeführt. Der Befehl der ausgeführt wird ist durchPORT_LOGDIR_CLEAN
definiert und standardmässig beträgt die Aufbewahrungsdauer der Dateien 7 Tage. - Mit gesetztem
split-log
werden Build-Logs in Kategorie-benannten Unterverzeichnissen von${PORT_LOGDIR}/build
aufbewahrt.
Aufräumen
Wenn clean-logs
gesetzt ist, wird Portage nach jeder Build oder unmerge Operation den Befehl ausführen, der durch PORT_LOGDIR_CLEAN
definiert ist. Standardmässig wird der folgende Befehl verwendet:
/usr/share/portage/config/make.globals
PORT_LOGDIR_CLEAN="find \"\${PORT_LOGDIR}\" -type f ! -name \"summary.log*\" -mtime +7 -delete"
Falls Sie ein benutzerdefiniertes Kommando definieren, vergessen Sie nicht die Variable ${PORT_LOGDIR}
zu "escapen" (oder geben sie den richtigen Ort hartkodiert an).