Handbook:Parts/Portage/Files/de

Konfigurationsanweisungen
Portage bringt eine Standardkonfiguration mit, die unter gespeichert ist. Jede Konfiguration von Portage findet über Variablen statt. Welche Variablen das sind und was sie bedeuten wird später beschrieben.

Da viele Konfigurationsanweisungen je nach Architektur unterschiedlich sind, hat Portage auch dafür Standardkonfigurationsdateien, die Teil des Systemprofils sind. Auf dieses Profil wird über den Symlink verwiesen. Portages Konfigurationen werden über die -Dateien des Profils und all seiner Parent-Profile gesetzt. Später wird mehr auf Profile und das -Verzeichnis eingegangen.

Über lassen sich die Defaultvariablen übersteuern. Wenn also eine Konfigurationsvariable geändert werden soll, dann in und nicht via  oder. Unter findet sich eine Beispiel- mit weiterführenden Erklärungen. Diese dient jedoch lediglich als Beispiel und wird von Portage nicht ausgewertet.

Es ist ebenfalls möglich eine Portage-Konfigurationsvariable über eine Umgebungsvariable festzulegen, dies wird jedoch nicht empfohlen.

Profil-spezifische Informationen
Es wurde bereits auf das -Verzeichnis eingegangen. Dabei handelt es sich um einen symbolischen Link zu einem Profil. Dies ist standardmäßig eines aus. Jedoch kann man auch ein eigenes Profil wo anders erstellen und auf dieses verweisen. Das Profil auf das dieser Symlink zeigt ist das Profil, dass das komplette System beschreibt.

Ein Profil enthält architekturspezifische Informationen für Portage, wie z.B. eine Liste von Paketen die zu dem jeweiligen System gehören, eine Liste von nicht-funktionierenden (oder maskierten) Paketen, etc.

Nutzer-spezifische Konfiguration
Wenn das Verhalten von Portage bezüglich der Installation von Software geändert werden soll, müssen bestimmte Dateien innerhalb von geändert werden. Es wird dringend davon abgeraten, dieses Verhalten über Umgebungsvariablen anzupassen.

Unter können Nutzer folgende Dateien erstellen:
 * in der Pakete aufgelistet werden, die von Portage nie in Betracht gezogen werden sollen für eine Installation.
 * in der Pakete aufgelistet werden, die Portage installieren können soll, obwohl diese von den Gentoo-Entwicklern explizit nicht für die Installation empfohlen werden.
 * in der Pakete aufgelistet werden, die Portage installieren können soll, obwohl das Paket (noch) nicht für das System oder die Architektur als passend befunden wurde.
 * in der die USE-Flags für bestimmte Pakete aufgelistet werden, ohne dass diese für alle Pakete des Systems wirksam werden.

Diese Dateien können auch als Verzeichnisse angelegt werden, die pro Paket eine Datei enthalten. Weitere Informationen über das -Verzeichnis und eine komplette Liste möglicher Dateien, die darin erstellt werden können, kann man in der Portage-Manpage finden:

Speicherorte für Portage-Dateien ändern
Die vorhergehenden Konfigurationsdateien können nicht an anderer Stelle gespeichert werden - Portage wird immer an genau diesen Speicherorten nach diesen Dateien suchen. Allerdings nutzt Portage viele andere Speicherorte für verschiedene Zwecke: Build-Ordner, Source Code, Gentoo Repository, ...

All diese Zwecke haben wohlbekannte Standartspeicherorte, können aber nach eigenen Belieben über angepasst werden. Der Rest dieses Kapitels erklärt, welche speziellen Speicherorte Portage verwendet und wie diese Orte im Dateisystem geändert werden können.

Dieses Dokument ist allerdings nicht als Referenz gedacht. Eine 100%-Abdeckung liefern nur die Portage- und make.conf-Manpages:

Gentoo ebuild-Repository
Der Standardspeicherort für das Gentoo ebuild-Repository ist. Dieser ist definiert von der Standard--Datei unter. Zum Ändern wird diese Datei nach kopiert und unter location angepasst. Wenn das Gentoo ebuild-Repository wo anders gespeichert wird, muss der Symlink unter entsprechend mit angepasst werden.

Nachdem der Pfad unter location in geändert wurde, wird empfohlen, dass die folgenden Variablen in  ebenfalls angepasst werden, da diese nicht automatisch durch die location -Änderung mitgeändert werden. Das hat etwas damit zu tun, wie Portage Variablen verarbeitet: PKGDIR, DISTDIR und RPMDIR.

Binärpakete
Obwohl Portage standardmäßig keine Pinärpakete verwendet, unterstützt es diese. Wenn Portage dafür konfiguriert wird mit Binärpaketen zu arbeiten, wird es in danach suchen. Dieser Pfad über die PKGDIR -Variable definiert.

Source Code
Der Source Code von Anwendungen wird standardmäßig in gespeichert. Dieser Pfad wird über die DISTDIR -Variable definiert.

Portage-Datenbank
Portage speichert den Stand des Systems (welche Pakete installiert sind, welche Dateien zu welchen Paket gehören, ...) in.

Portage Cache
Der Portage-Cache (mit Änderungszeiten, virtuelle Pakete, Abhängikeiten, ...) ist in gespeichert. Dieser Speicherort ist ein Cache im üblichen Sinne, d.h. man kann den Inhalt jederzeit löschen, solange keine Portage-bezogene Operation läuft.

Temporäre Portage-Dateien
Portages temporäre Dateien werden standardmäßig in gespeichert. Dieser Pfad wird durch die PORTAGE_TMPDIR -Variable konfiguriert.

Build-Verzeichnis
Portage erstellt für jedes Paket, dass durch emerge installiert wird ein eigenes Build-Verzeichnis innerhalb von. Dieser Pfad wird durch die PORTAGE_TMPDIR -Variable definiert woran angehangen wird.

Pfad des Root-Dateisystems
Standardmäßig installiert Portage alle Dateien in das aktuelle Dateisystem. Dies kann durch Anpassen der ROOT -Umgebundvariable geändert werden. Dies ist dann sinnvoll, wenn man neue Build-Images erstellt.

Ebuild-Logging
Portage kann pro ebuild Logdateien erstellen. Dies funktioniert nur, wenn die Variable PORT_LOGDIR einen Pfad angibt, in den von Portage geschrieben werden kann (über den Portage-User). Standardmäßig ist diese Variable nicht gesetzt. Wenn die PORT_LOGDIR nicht gesetzt ist, gibt es keine Build-Logs im aktuellen Logging-System, obwohl Nutzer einige Logs erhalten können über den neuen -Support.

Wenn die PORT_LOGDIR -Variable nicht gesetzt ist und benutzt wird, werden die Build-Logs und alle anderen von elog erstellten Logs zur Verfügung gestellt, wie folgend beschrieben.

Portage bietet eine feingranulare Kontrolle über das Logging mithilfe von elog:


 * PORTAGE_ELOG_CLASSES : Darin können Nutzer bestimmen, welche Art von Nachrichten geloggt werden sollen. Dies kann jede durch Leerzeichen getrennte Kombination von info, warn , error , log und qa sein.
 * info: Loggt die "einfo"-Nachrichten, die von ebuilds geschrieben werden
 * warn: Loggt die "ewarn"-Nachrichten, die von ebuilds geschrieben werden
 * error: Loggt die "eerror"-Nachrichten, die von ebuilds geschrieben werden
 * log: Loggt die "elog"-Nachrichten, die in manchen ebuilds verwendet werden
 * qa: Loggt die "QA Notice"-Nachrichten, die von ebuilds ausgegeben werden


 * PORTAGE_ELOG_SYSTEM : Darüber wird das Modul (oder die Module) ausgewählt, dass die Log-Nachrichten verarbeitet. Wenn dies leer ist, ist das Logging deaktiviert. Jede durch Leerzeichen getrennte Kombination von save, custom , syslog , mail , save_summary und mail_summary kann hier gesetzt werden. Mindestens ein Modul muss ausgewählt werden werden, um elog zu verwenden.
 * save: Damit wird ein Log pro Paket in oder, wenn $PORT_LOGDIR nicht gesetzt ist, gespeichert.
 * custom: Damit werden alle Nachrichten zu einem eigenen Befehl weitergeleitet, der über $PORTAGE_ELOG_COMMAND definiert wird; dazu später mehr.
 * syslog: Sendet alle Nachrichten an den installierten System Logger.
 * mail: Leitet alle Nachrichten zu einem Nutzer-definierten Mailserver via $PORTAGE_ELOG_MAILURI weiter; dazu später mehr. Das Mail-Feature von elog ist verfügbar ab >=portage-2.1.1.
 * save_summary: Ähnlich wie save, nur dass hier die Nachrichten zusammengefasst gespeichert werden unter oder, wenn $PORT_LOGDIR nicht definiert ist.
 * mail_summary: Ähnlich wie mail, nur dass alle Nachrichten in einer einzigen Mail gesendet werden, wenn emerge fertig ist.


 * PORTAGE_ELOG_COMMAND : Dies wird nur ausgewertet, wenn das custom-Modul aktiviert ist. Nutzer können damit einen Befehl definieren, der die Nachrichten verarbeitet. Beachte, dass dem Befehl zwei Variablen zur Verfügung stehen: ${PACKAGE} enthält den Paketnamen mit Version und ${LOGFILE} enthält den absoluten Pfad zu der Logdatei. Zum Beispiel:


 * PORTAGE_ELOG_MAILURI : Darin enthalten sind Einstellungen für das mail-Modul, wie z.B. Adresse, Nutzername, Passwort, Mailserver und Portnummer. Der Standard ist "root@localhost localhost". Im folgenden ein Beispiel für einen SMTP-Server der eine Nutzernamen- und Passwort-basierte Authentifizierung auf einem bestimmten Port (Standard ist 25) verlangt:


 * PORTAGE_ELOG_MAILFROM : Darüber kann die "from"-Adresse der Log-Mails gesetzt werden, wenn nicht gesetzt, ist dies defaultmäßig "Portage".

Zum Beispiel:
 * PORTAGE_ELOG_MAILSUBJECT : Darüber kann der Betreff der Log-Mail bestimmt werden. Es stehen hier die beiden Variablen ${PACKAGE} und ${HOST} zur Verfügung, die den Paketnamen mit Version und den Fully Qualified Domain Name des Portage-Hosts enthält.