Handbook:Parts/Working/Portage/de

Willkommen bei Portage
Portage ist eine der bemerkenswertesten Innovationen von Gentoo im Bereich der Softwareverwaltung. Mit seiner hohen Flexibilität und der enormen Anzahl an Funktionen wird es häufig als das beste Software-Management-Tool für Linux angesehen.

Portage ist vollständig in Python und Bash geschrieben und daher für die Benutzer vollständig sichtbar, da beides Skriptsprachen sind.

Die meisten Benutzer werden mit Portage über das Werkzeug arbeiten. Dieses Kapitel ist nicht dazu gedacht, die Informationen aus der emerge Handbuchseite zu duplizieren. Für eine vollständige Auflistung der Optionen von emerge, konsultieren Sie bitte die Handbuchseite:

Ebuilds
Wenn in der Dokumentation von Gentoo von Paketen die Rede ist, sind damit Softwaretitel gemeint, die den Gentoo-Benutzern über das Gentoo-Repositorium zur Verfügung stehen. Dieses Repositorium ist eine Sammlung von Ebuilds, Dateien, die alle Informationen enthalten, die Portage benötigt, um Software zu warten (installieren, suchen, abfragen, etc.). Diese Ebuilds befinden sich standardmäßig in.

Wann immer jemand Portage auffordert, eine Aktion in Bezug auf Softwaretitel durchzuführen, wird es die Ebuilds auf dem System als Grundlage verwenden. Es ist daher wichtig, die Ebuilds auf dem System regelmäßig zu aktualisieren, damit Portage über neue Software, Sicherheitsupdates usw. informiert ist.

Aktualisieren des Gentoo-Repositoriums
Das Gentoo-Repositorium wird normalerweise mit aktualisiert, einem schnellen inkrementellen Dateitransferprogramm. Das Aktualisieren ist ziemlich einfach, da der Befehl ein Front-End für  bereitstellt:

Manchmal gibt es Firewall-Einschränkungen, die verhindern, dass die Spiegelserver kontaktiert. In diesem Fall aktualisieren Sie das Gentoo-Repositorium mit Hilfe der täglich erzeugten Snapshots von Gentoo. Das Tool holt sich automatisch den neusten Snapshot und installiert ihn auf dem System.

Ein zusätzlicher Vorteil der Verwendung von ist, dass es dem Administrator erlaubt, nur Gentoo-Repositorium-Snapshots zu beziehen, die mit dem GPG-Schlüssel des Gentoo Release Engineering signiert sind. Weitere Informationen dazu finden Sie im Abschnitt über die Portage-Funktionen unter Abrufen von validierten Gentoo-Repositorium-Snapshots.

Suche nach Software
Es gibt mehrere Möglichkeiten, das Gentoo-Repositorium, nach Software zu durchsuchen. Eine Möglichkeit is durch selbst. Standardmäßig gibt die Namen der Pakete zurück, deren Titel (entweder vollständig oder teilweise) mit dem Suchbegriff übereinstimmen.

Zum Beispiel, um nach allen Paketen zu suchen, die "pdf" in ihrem Namen haben:

Um auch die Beschreibung zu durchsuchen, verwenden Sie die Option  (oder  ):

Beachten Sie, dass die Ausgabe eine Vielzahl von Informationen liefert. Die Felder sind eindeutig beschriftet, so dass wir nicht weiter auf ihre Bedeutung eingehen werden:

Installation der Software
Wenn ein Softwaretitel gefunden wurde, ist die Installation nur noch einen Befehl entfernt. Zum Beispiel, um gnumeric zu installieren:

Da viele Anwendungen voneinander abhängen, kann jeder Versuch, ein bestimmtes Softwarepaket zu installieren, auch die Installation mehrerer Abhängigkeiten nach sich ziehen. Machen Sie sich keine Sorgen, Portage kann gut mit Abhängigkeiten umgehen. Um herauszufinden, was Portage installieren würde, fügen Sie die Option  hinzu. Zum Beispiel:

Während der Installation eines Pakets wird Portage den notwendigen Quellcode aus dem Internet herunterladen (falls notwendig) und standardmäßig in speichern. Danach wird es das Paket entpacken, kompilieren und installieren. Um Portage anzuweisen, nur die Quellen herunterladen, ohne sie zu installieren fügen Sie die Option  zum emerge Befehl hinzu:

Dokumentation der installierten Pakete finden
Viele Pakete werden mit einer eigenen Dokumentation ausgeliefert. Manchmal bestimmt das  USE-FLag, ob die Paketdokumentation installiert werden soll oder nicht. Um zu sehen, ob das  USE-Flag von einem Paket verwendet wird, verwenden Sie :

Der beste Weg, das  USE-Flag zu aktivieren, ist es, dies auf einer paketweisen Basis über  zu tun, so dass nur die Dokumentation für die gewünschten Pakete installiert wird. Für weitere Informationen lesen Sie den Abschnitt USE-Flags.

Sobald das Paket installiert ist, befindet sich seine Dokumentation in der Regel in einem Unterverzeichnis mit dem Namen des Pakets im Verzeichnis :

Ein sicherer Weg, um installierte Dokumentationsdateien aufzulisten ist die Verwendung der  Option von. wird zur Abfrage der Portage Datenbank verwendet und ist Teil des Pakets :

Die Option  kann mit anderen Regeln verwendet werden, um die Installationsorte für viele andere Dateitypen anzuzeigen. Zusätzliche Funktionen können in der Handbuchseite von nachgelesen werden:.

Entfernen von Software
Um Software sicher von einem System zu entfernen, verwenden Sie. Dies teilt Portage mit, dass ein Paket nicht mehr benötigt wird und für eine Bereinigung durch  geeignet ist.

Wenn ein Paket nicht mehr ausgewählt ist, verbleiben das Paket und seine Abhängigkeiten, die bei der Installation automatisch installiert wurden, auf dem System. Um Portage alle Abhängigkeiten aufspüren zu lassen, die nun entfernt werden können, verwenden Sie die  Funktionalität von emerge, die später dokumentiert wird.

Aktualisieren des Systems
Um das System in perfekter Form zu halten (und ganz zu schweigen von der Installation der neuesten Sicherheitsupdates), ist es notwendig, das System regelmäßig zu aktualisieren. Da Portage nur die Ebuilds im Gentoo-Repositorium prüft, ist das erste was zu tun ist, dieses Repositorium zu aktualisieren. Wenn das Gentoo-Repositorium aktualisiert ist, kann das System mit aktualisiert werden. Im nächsten Beispiel wird auch die  Option verwendet, die Portage anweist, die Liste der Pakete, die es aktualisieren möchte, anzuzeigen und um Bestätigung zu bitten:

Portage wird dann nach neueren Versionen der installierten Anwendungen suchen. Es werden jedoch nur die Versionen der explizit installierten Anwendungen überprüft (die in aufgelisteten Anwendungen) - die Abhängigkeiten werden nicht gründlich überprüft. Um auch die Abhängigkeiten dieser Pakete zu aktualisieren, fügen Sie die Option  hinzu:

Dennoch sind damit nicht alle Pakete gemeint: einige Pakete auf dem System werden während des Kompilierungs- und Buildprozesses von Paketen benötigt, aber sobald das Paket installiert ist, werden diese Abhängigkeiten nicht mehr benötigt. Portage nennt diese build dependencies. Um diese in einen Aktualisierungszyklus einzubeziehen, fügen Sie  hinzu:

Da Sicherheitsupdates auch in Paketen vorkommen, die nicht explizit auf dem System installiert sind (sondern als Abhängigkeiten von anderen Programmen hinzugezogen werden), ist es empfehlenswert, diesen Befehl hin und wieder auszuführen.

Wenn die USE-Einstellungen des Systems geändert wurden, wird empfohlen, auch  hinzuzufügen. Portage prüft dann, ob die Änderungen die Installation neuer Pakete oder die Neukompilierung bestehender Pakete erfordert:

Metapakete
Einige Pakete im Gentoo-Repositorium haben keinen wirklichen Inhalt, sondern werden verwendet, um eine Sammlung von Paketen zu installieren. Zum Beispiel installiert das Paket den KDE Plasma Desktop auf den System, indem es verschiedene Plasma-bezogene Pakete als Abhängigkeiten einbezieht.

Um ein solches Paket von Ihrem System zu entfernen, wird die Ausführung von für das Paket nicht viel bewirken, da die Abhängigkeiten auf dem System verbleiben.

Portage hat auch die Funktionalität verwaiste Abhängigkeiten zu entfernen, aber da die Verfügbarkeit von Software dynamisch abhängig ist, ist es wichtig, zuerst das gesamte System vollständig zu aktualisieren, einschließlich der neuen Änderungen, die beim Ändern von USE-Flags angewendet werden. Danach kann man ausführen, um die verwaisten Abhängigkeiten zu entfernen. Wenn dies geschehen ist, kann es notwendig sein, die Anwendungen, die dynamisch mit den nun entfernten Softwaretiteln gelinkt waren, diese aber nicht mehr benötigen, neu zu erstellen, obwohl Portage kürzlich Unterstützung dafür hinzugefügt wurde.

All dies wird mit den folgenden zwei Befehlen gehandhabt:

Lizenzen
Beginnend mit Portage Version 2.1.7 ist es möglich, die Installation von Software auf Basis ihrer Lizenz zu akzeptieren oder abzulehnen. Alle Pakete im Baum enthalten einen LICENSE -Eintrag in ihren Ebuilds. Wenn Sie ausführen, wird die Lizenz des Pakets angezeigt.

Standardmäßig erlaubt Portage Lizenzen, die explizit von der Free Software Foundation oder der Open Source Initiative genehmigt wurden oder die der Free Software Definition folgen.

Die Variable, die die erlaubten Lizenzen kontrolliert, heißt ACCEPT_LICENSES und kann in der Datei gesetzt werden. Im nächsten Beispiel wird dieser Standardwert gezeigt:

Mit dieser Konfiguration können Pakete mit einer Lizenz für freie Software oder Dokumentation installiert werden. Unfreie Software ist nicht installierbar.

Es ist möglich ACCEPT_LICENSE global in zu setzten, oder es für jedes Paket in der Datei  anzugeben.

Um zum Beispiel die Lizenz für das Paket  zuzulassen, fügen Sie Folgendes zu  hinzu:

Dies erlaubt die Installation des Pakets, verbietet aber die Installation des Pakets , auch wenn es die gleiche Lizenz hat.

Lizenzgruppen, die in der ACCEPT_LICENSE Variable definiert sind, werden mit einem  Zeichen vorangestellt. Eine mögliche Einstellung (welche die frühere Portage-Einstellung war) ist es, alle Lizenzen zuzulassen, außer End User License Agreements (EULAs), die das Lesen und Unterschreiben einer Akzeptanzvereinbarung erfordern. Um dies zu erreichen, akzeptieren Sie alle Lizenzen (mit ) und entfernen Sie dann die Lizenzen in der EULA-Gruppe wie folgt:

Beachten Sie, dass diese Einstellung auch unfreie Software und Dokumentation akzeptiert.

Terminologie
Wie bereits erwähnt, ist Portage extrem leistungsfähig und unterstützt viel Funktionen, die anderen Software-Management-Tools fehlen. Um dies zu verstehen, erläutern wir einige Aspekte von Portage, ohne zu sehr ins Detail zu gehen.

Mit Portage können verschiedene Versionen eines einzelnen Pakets auf einem System koexistieren. Während andere Distributionen dazu neigen, ihre Pakete nach diesen Versionen zu benennen (wie freetype und freetype2), verwendet Portage eine Technologie namens SLOT. Ein Ebuild deklariert einen bestimmten SLOT für seine Version. Ebuilds mit verschiedenen SLOTs können auf dem gleichen System koexistieren. Zum Beispiel hat das freetype Paket Ebuilds mit SLOT="1" und SLOT="2".

Es gibt auch Pakete, die dieselbe Funktionalität bieten, aber anders implementiert sind. Zum Beispiel sind metalogd, sysklogd und sylog-ng alle Systemlogger. Anwendungen, die auf die Verfügbarkeit "eines Systemloggers" angewiesen sind, können sich nicht auf z.B. metalogd verlassen, da die anderen Systemlogger eine genauso gute Wahl sind wie jeder andere. Portage erlaubt virtuelle Pakete: jeder Systemlogger wird als "exklusive" Abhängigkeit des Logging-Dienstes im virtuellen Logger-Paket der virtual Kategorie aufgelistet, so dass Anwendungen von dem -Paket abhängen können. Bei der Installation zieht das Paket das erste im Paket erwähnte Logging-Paket heran, es sei denn, es wurde bereits ein Logging-Paket installiert (in diesem Fall ist das virtuelle Paket befriedigt).

Software im Gentoo-Repositorium kann sich in verschiedenen Zweigen befinden. Standardmäßig akzeptiert das System nur Pakete, die Gentoo als stabil einstuft. Die meisten neuen Softwaretitel werden, wenn sie committed werden, dem Testing-Zweig hinzugefügt, was bedeutet, dass weitere Tests durchgeführt werden müssen, bevor sie es als stabil markieren werden. Obwohl sich die Ebuilds für diese Software im Gentoo-Repositorium befinden, wird Portage sie nicht aktualisieren, bevor sie in dem stabilen Zweig aufgenommen werden.

Manche Software ist nur für einige wenige Architekturen verfügbar. Oder die Software funktioniert nicht auf den anderen Architekturen, oder sie muss noch weiter getestet werden, oder der Entwickler, der die Software in das Gentoo-Repositorium aufgenommen hat, ist nicht in der Lage zu überprüfen, ob das Paket auf verschiedenen Architekturen funktioniert.

Jede Gentoo-Installation hält sich auch an ein bestimmtes Profil, das neben anderen Informationen die Liste der Pakete enthält, die für ein normal funktionierendes System erforderlich sind.

Blockierte Pakete
Ebuilds enthalten spezifische Felder, die Portage über ihre Abhängigkeiten informieren. Es gibt zwei mögliche Abhängigkeiten: Build-Abhängigkeiten, die in der DEPEND deklariert sind und Laufzeit-Abhängigkeiten, die in der RDEPEND Variable deklariert sind. Wenn eine dieser Abhängigkeiten ein Paket oder Virtual explizit als nicht kompatibel markiert, löst dies eine Blockade aus.

Während die neueren Versionen von Portage intelligent genug sind, um kleinere Blockaden ohne Benutzereingriff zu umgehen, müssen solche Blockaden gelegentlich manuell gelöst werden.

Um eine Blockade zu beheben, können Benutzer wählen, ob sie das Paket nicht installieren oder das konfligierende Paket zuerst deinstallieren wollen. Im angegebenen Beispiel kann man sich dafür entscheiden, postfix nicht zu installieren oder ssmtp zuerst zu entfernen.

Manchmal gibt es auch blockierende Pakete mit bestimmten Atoms, wie z.B. . In diesem Fall könnte eine Aktualisierung auf eine neuere Version des blockierenden Pakets die Blockierung aufheben.

Es ist auch möglich, dass zwei Pakete, die noch nicht installiert sind, sich gegenseitig blockieren. In diesem seltenen Fall versuchen Sie herauszufinden, warum beide installiert werden müssen. In den meisten Fällen reicht es aus, wenn nur eines der Pakete installiert ist. Falls nicht, melden Sie bitte einen Bug auf Gentoo's Bug-tracking System.

Maskierte Pakete
Wenn sie versuchen, ein Paket zu installieren, dass nicht für das System verfügbar ist, tritt dieser Maskierungsfehler auf. Benutzer sollten versuchen, eine andere Anwendung zu installieren, die für das System verfügbar ist, oder warten, bis das Paket als verfügbar markiert ist. Es gibt immer einen Grund, warum ein Paket maskiert ist:

Necessary USE flag changes
The error message might also be displayed as follows, if  isn't set:

Such warning or error occurs when a package is requested for installation which not only depends on another package, but also requires that that package is built with a particular USE flag (or set of USE flags). In the given example, the package app-text/feelings needs to be built with USE="test", but this USE flag is not set on the system.

To resolve this, either add the requested USE flag to the global USE flags in, or set it for the specific package in.

Missing dependencies
The application to install depends on another package that is not available for the system. Please check Bugzilla if the issue is known and if not, please report it. Unless the system is configured to mix branches, this should not occur and is therefore a bug.

Ambiguous ebuild name
The application that is selected for installation has a name that corresponds with more than one package. Supply the category name as well to resolve this. Portage will inform the user about possible matches to choose from.

Circular dependencies
Two (or more) packages to install depend on each other and can therefore not be installed. This is most likely a bug in one of the packages in the Gentoo repository. Please re-sync after a while and try again. It might also be beneficial to check Bugzilla to see if the issue is known and if not, report it.

Fetch failed
Portage was unable to download the sources for the given application and will try to continue installing the other applications (if applicable). This failure can be due to a mirror that has not synchronized correctly or because the ebuild points to an incorrect location. The server where the sources reside can also be down for some reason.

Versuchen Sie es nach einer Stunden erneut, um zu sehen, ob das Problem weiterhin besteht.

Systemprofilschutz
Der Benutzer hat darum gebeten, ein Paket zu entfernen, das zu den Kernpaketen des Systems gehört. Es ist im Profil als erforderlich aufgeführt und sollte daher nicht aus dem System entfernt werden.

Digest-Überprüfungsfehler
Dies ist ein Zeichen dafür, dass etwas mit dem Gentoo-Repositorium nicht stimmt - oft verursacht durch einen Fehler beim Übertragen eines Ebuilds in das Gentoo-Ebuild-Repositorium.

Wenn die Überprüfung des Digests fehlschlägt, versuchen Sie nicht, das Paket selbst erneut zu digesten. Das Ausführen von wird das Problem nicht beheben; es könnte es sogar noch schlimmer machen.

Warten Sie stattdessen ein oder zwei Stunden, bis sich das Repositorium beruhigt hat. Es ist wahrscheinlich, dass der Fehler sofort bemerkt wurde, aber es kann ein wenig dauern, bis die Korrektur angekommen ist. Schauen Sie auf Bugzilla nach, ob schon jemand das Problem gemeldet hat oder fragen Sie auf (IRC). Wenn nicht, machen Sie weiter und melden Sie einen Bug für das defekte Ebuild.

Sobald der Fehler behoben ist, synchronisieren Sie das Gentoo-Ebuild-Repositorium erneut, um den korrigierten Digest zu übernehmen.