Gentoo Logo

Haftungsausschluss: Dieses Handbuch wurde durch eine neuere Version ersetzt und wird nicht länger gepflegt.


[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


1. Eine Portage Einführung

Inhalt:

1.a. Willkommen zu Portage

Portage ist vermutlich Gentoos bemerkenswerteste Innovation in Sachen Software Management. Mit seiner großen Flexibilität und enormen Menge an Optionen wird es vielfach als bestes Software Management Tool für Linux gesehen.

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

Die meisten Benutzer werden Portage durch das emerge Programm benutzen. Dieses Kapitel soll nicht die Informationen aus der emerge Manpage duplizieren, für eine vollständige Auflistung aller emerge Optionen konsultieren Sie die Manpage:

Befehlsauflistung 1.1: Lesen der emerge Manpage

$ man emerge

1.b. Der Portage-Tree

Ebuilds

Wenn wir über Pakete reden, meinen wir oft Programme, die für Gentoo-Benutzer durch den Portage-Tree verfügbar sind. Der Portage-Tree ist eine Sammlung von Ebuilds -- Dateien, die alle Informationen enthalten, die Portage benötigt, um Anwendungen zu betreuen (installieren, suchen, abfragen, ...). Diese Ebuilds liegen standardmäßig in /usr/portage.

Wann immer Sie Portage bitten, eine Aktion betreffend irgendwelcher Anwendungen durchzuführen, wird es die Ebuilds auf Ihrem System als Basis benutzen. Es ist daher sehr wichtig, dass Sie die Ebuilds auf Ihrem System regelmäßig aktualisieren, so dass Portage über neue Anwendungen, Sicherheitsaktualisierungen usw. informiert ist.

Aktualisieren des Portage-Tree

Der Portage-Tree wird für gewöhnlich mit rsync aktualisiert, ein schnelles und inkrementelles Dateiübertragungsprogramm. Das Aktualisieren ist ziemlich einfach, da das emerge Kommando ein Frontend für rsync beinhaltet:

Befehlsauflistung 2.1: Aktualisieren des Portage-Tree

# emerge --sync

Wenn Sie aufgrund von Restriktionen einer Firewall das rsync-Protokoll nicht benutzen können, können Sie immer noch unsere täglich aktualisierten Portage-Snapshots benutzen. Das emerge-webrsync Tool lädt diesen automatisch und installiert den aktuellsten Snapshot in Ihrem System:

Befehlsauflistung 2.2: Running emerge-webrsync

# emerge-webrsync

Ein weiterer Vorteil von emerge-webrsync ist, dass es erlaubt, nur Portage-Tree-Schnappschüsse herunterzuladen, die mit dem Gentoo-Release-Engineering-GPG-Schlüssel signiert sind. Weitere Informationen dazu finden Sie im Abschnitt Portage Features unter Laden validierter Portage-Tree-Schnappschüsse.

1.c. Software installieren und aktuell halten

Nach Software suchen

Um den Portage-Tree nach Anwendungen zu durchsuchen können Sie die in emerge eingebauten Suchfunktionen nutzen. Standardmäßig liefert emerge --search Paketnamen, die mit dem Suchbegriff teilweise oder vollständig übereinstimmen.

Um zum Beispiel nach allen Paketen zu suchen, in deren Name "pdf" vorkommt:

Befehlsauflistung 3.1: Suche nach Paketen mit pdf im Namen

$ emerge --search pdf

Wenn Sie ebenfalls durch die Beschreibungen suchen möchten, können Sie die --searchdesc (oder -S) Option nutzen:

Befehlsauflistung 3.2: Suche nach Paketen im Zusammenhang mit pdf

$ emerge --searchdesc pdf

Wenn Sie einen Blick auf die Ausgabe werfen werden Sie feststellen, dass Ihnen diese zahlreiche Informationen gibt. Die Felder sind klar beschriftet, so dass wir dies nicht näher erläutern wollen.

Befehlsauflistung 3.3: Beispiel Ausgabe von 'emerge --search'

*  net-print/cups-pdf
      Latest version available: 1.5.2
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 15 kB
      Homepage:    http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
      Description: Provides a virtual printer for CUPS to produce PDF files.
      License:     GPL-2

Software installieren

Nachdem Sie eine Anwendung gefunden haben, die Sie installieren möchten, können Sie dies mit emerge ganz einfach durchführen, zum Beispiel für gnumeric:

Befehlsauflistung 3.4: Installation von gnumeric

# emerge gnumeric

Da viele Anwendungen untereinander Abhängigkeiten haben, kann jeder Versuch ein bestimmtes Paket zu installieren in der Installation von verschiedenen Abhängigkeiten resultieren. Aber keine Angst, Portage kümmert sich ebenfalls um diese Abhängigkeiten. Wenn Sie herausfinden wollen, welche Pakete Portage als Abhängigkeiten mitinstallieren würde benutzen Sie die --pretend Option. Zum Beispiel:

Befehlsauflistung 3.5: Installation von gnumeric simulieren

# emerge --pretend gnumeric

Wenn Sie Portage anweisen ein Paket zu installieren werden alle notwendigen Quellen (sofern notwendig) aus dem Internet heruntergeladen und standardmäßig in /usr/portage/distfiles abgelegt. Anschließend werden die Quellen entpackt, kompiliert und das Paket installiert. Wenn Sie Portage anweisen möchten zwar die Quellen herunterzuladen, das Paket aber nicht zu kompilieren und installieren hängen Sie die --fetchonly Option an das emerge Kommando an:

Befehlsauflistung 3.6: Herunterladen der Quellen für gnumeric

# emerge --fetchonly gnumeric

Auffinden von Dokumentationen zu installierten Pakete

Viele Pakete liefern Ihre eigene Dokumentation. Manchmal bestimmt das doc USE-Flag ob die Dokumentation des Paketes installiert werden soll oder nicht. Sie können die Existenz eines doc USE-Flag mit dem emerge -vp <Paketname> Befehl überprüfen

Befehlsauflistung 3.7: Die Existenz eines doc USE-Flag überprüfen

(alsa-lib ist natürlich nur ein Beispiel)
# emerge -vp alsa-lib
[ebuild  N    ] media-libs/alsa-lib-1.0.14_rc1  -debug +doc 698 kB

Die beste Art das USE-Flag doc zu aktivieren ist für jedes Paket einzeln mit der Hilfe von /etc/portage/package.use. So werden Sie nur Dokumentation für Pakete erhalten bei denen Sie daran interessiert sind. Global diese Variable zu aktivieren ist bekannt dafür Probleme durch zirkuläre Abhängigkeiten zu verursachen. Das Kapitel USE-Flags bespricht diese Aspekte in größerem Detail.

Sowie das Paket installiert ist findet sich die Dokumentation generell in einem Unterverzeichnis mit dem Paketnamen unter dem Verzeichnis /usr/share/doc. Mit equery Tool können Sie auch alle installierten Dateien auflisten, es ist Teil des app-portage/gentoolkit Pakets.

Befehlsauflistung 3.8: Auffinden einer Paketdokumentation

# ls -l /usr/share/doc/alsa-lib-1.0.14_rc1
total 28
-rw-r--r--  1 root root  669 May 17 21:54 ChangeLog.gz
-rw-r--r--  1 root root 9373 May 17 21:54 COPYING.gz
drwxr-xr-x  2 root root 8560 May 17 21:54 html
-rw-r--r--  1 root root  196 May 17 21:54 TODO.gz

(Alternativ, können Sie equery verwenden um interessante Dateien zu finden:)
# equery files alsa-lib | less
media-libs/alsa-lib-1.0.14_rc1
* Contents of media-libs/alsa-lib-1.0.14_rc1:
/usr
/usr/bin
/usr/bin/alsalisp
(Ausgabe verkürzt)

Software deinstallieren

Um Anwendungen aus Ihrem System zu entfernen benutzen Sie emerge --unmerge. Dies weist Portage an, alle Dateien die zu diesem Paket gehören (mit der Ausnahme von Konfigurationsdateien, die Sie nach der Installation geändert haben) zu entfernen. Das Beibehalten der Konfigurationsdateien ermöglicht Ihnen die eventuelle Weiterarbeit mit diesem Paket zu einem späteren Zeitpunkt.

Jedoch, eine ausdrückliche Warnung: Portage wird nicht kontrollieren, ob ein Paket, welches Sie deinstallieren möchten, noch Abhängigkeit eines anderen ist. Sie werden jedoch beim Versuch ein wichtiges Paket zu entfernen gewarnt, wenn es dazu führen würde, dass Ihr System danach nicht länger funktionieren würde.

Befehlsauflistung 3.9: Entfernung von gnumeric aus dem System

# emerge --unmerge gnumeric

Wenn Sie ein Paket deinstalliert haben, so sind die Abhängigkeiten dieses speziellen Paketes weiterhin installiert. Um Portage anzuweisen nach Paketen zu suchen, die keinerlei Abhängigkeit sind und nun entfernt werden können, nutzen Sie von emerge die --depclean Funktionalität. Wir werden dies später ausführlicher behandeln.

Aktualisieren Ihres Systems

Um Ihr System auf dem Laufenden zu halten (von Sicherheitsaktualisierungen gar nicht gesprochen) müssen Sie Ihr System regelmäßig aktualisieren. Da Portage nur die Ebuilds in Ihrem lokalen Portage-Tree kennt, müssen Sie zunächst den Portage-Tree aktualisieren. Wenn Sie dies getan haben, können Sie das System mittels emerge --update world aktualisieren. Im folgenden Beispiel verwenden wir auch die --ask Option, wodurch Portage eine Liste der Pakete, die es aktualisieren will aufzeigt und fragt ob Sie fortfahren wollen:

Befehlsauflistung 3.10: Aktualisierung des Systems

# emerge --update --ask world

Portage wird nun nach neueren Versionen von Anwendungen suchen, die Sie installiert haben. Es werden jedoch nur Versionen von Anwendungen überprüft, die Sie explizit installiert haben (die Anwendungen aufgelistet in /var/lib/portage/world); Abhängigkeiten werden nicht ausführlich geprüft. Wenn Sie die Abhängigkeiten dieser Pakete ebenfalls aktualisieren möchten, fügen sie das --deep Argument hinzu:

Befehlsauflistung 3.11: Aktualisierung Ihres Systems inkl. Abhängigkeiten

# emerge --update --deep world

Dies betrifft jedoch nicht alle Pakete: Einige Pakete auf Ihrem System werden während des Kompilierungsprozesses von Paketen benötigt, aber sobald diese Pakete installiert sind, werden diese Abhängigkeiten nicht mehr benötigt. Portage nennt diese Build-Abhängigkeiten. Um auch diese in einem Aktualisierungs-Zyklus einzuschließen, fügen Sie --with-bdeps=y hinzu:

Befehlsauflistung 3.12: Aktualisierung Ihres gesamten Systems

# emerge --update --deep --with-bdeps=y world

Da auch Sicherheitsupdates in Paketen vorkommen, die Sie nicht explizit installiert haben (die aber als Abhängigkeiten anderer Programme auch mitinstalliert wurden), empfiehlt es sich diesen Befehl ab und zu auszuführen.

Wenn Sie zuvor ein USE-Flag geändert haben möchten Sie vermutlich --newuse hinzufügen. Portage wird nun feststellen, ob die Änderung eine Installation von weiteren Paketen erfordert oder eine Neuinstallation der existierenden hinreichend ist:

Befehlsauflistung 3.13: Durchführen einer vollen Aktualisierung

# emerge --update --deep --with-bdeps=y --newuse world

Metapakete

Einige Pakete im Portage-Tree haben keinen realen Inhalt, sondern dienen als Sammlung von Paketen. Zum Beispiel wird das Paket kde-meta eine komplette KDE-Umgebung auf Ihrem System installieren, indem es sämtliche Komponenten eines KDE-Desktops als Abhängigkeiten einbezieht.

Wenn Sie jemals ein solches Paket entfernen wollen, wird Ihnen emerge --unmerge nicht viel weiterhelfen, da dies keinerlei Einfluss auf die installierten Abhängigkeiten hat.

Portage hat die Funktionalität um verwaiste Abhängigkeiten zu entfernen, da die Verfügbarkeit von Anwendungen und Abhängigkeiten dynamisch aufgelöst wird müssen Sie zunächst Ihr System vollständig aktualisieren, inklusive der Änderungen die Sie durch Änderungen an USE-Flags herbeigeführt haben. Im Anschluss daran können Sie emerge --depclean ausführen, um die verwaisten Abhängigkeiten zu entfernen. Wenn dies geschehen ist müssen Sie die Anwendungen die dynamisch auf die nun deinstallierten Anwendungen gelinkt sind neu kompilieren.

All dies wird durch die folgenden 3 Kommandos erledigt:

Befehlsauflistung 3.14: Entfernen von verwaisten Paketen

# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild

revdep-rebuild ist im gentoolkit Paket enthalten, vergessen Sie nicht, es zuvor zu installieren:

Befehlsauflistung 3.15: Installieren des gentoolkit Paket

# emerge gentoolkit

1.d. Lizenzen

Seit Portage-Version 2.1.7 können Sie eine Softwareinstallation basierend auf der Lizenz akzeptieren oder ablehnen. Alle Pakete im Baum enthalten einen Eintrag LICENSE in ihren Ebuilds. emerge --search paketname verrät Ihnen die Lizenz eines Pakets.

Standardmäßig erlaubt Portage alle Lizenzen außer Endbenutzer-Lizenzvereinbarungen (EULAs), die das Lesen und Akzeptieren einer Akzeptanzerklärung erfordern.

Die Variable, die die erlaubten Lizenzen kontrolliert, heißt ACCEPT_LICENSE und kann in /etc/portage/make.conf gesetzt werden:

Befehlsauflistung 4.1: Standardmäßige ACCEPT_LICENSE in /etc/portage/make.conf

ACCEPT_LICENSE="* -@EULA"

Mit dieser Konfiguration werden keine Pakete installiert, die während der Installation eine Interaktion, der EULA zuzustimmen, erfordern. Pakete ohne eine EULA werden installiert.

Sie können ACCEPT_LICENSE global in /etc/portage/make.conf oder pro Paket in /etc/portage/package.license setzen.

Wenn Sie beispielsweise die Lizenz truecrypt-2.7 für app-crypt/truecrypt erlauben wollen, fügen Sie Folgendes zur /etc/portage/package.license hinzu:

Befehlsauflistung 4.2: Angeben einer Truecrypt-Lizenz in package.license

app-crypt/truecrypt truecrypt-2.7

Dies erlaubt die Installation von Truecrypt-Versionen, die die truecrypt-2.7 Lizenz haben, hingegen aber keine Versionen, die truecrypt-2.8 haben.

Wichtig: Lizenzen werden in /usr/portage/licenses gespeichert und Lizenzgruppen finden sich in /usr/portage/profiles/license_groups. Der erste Eintrag jeder Zeile in Großbuchstaben ist der Name der Lizenzgruppe und jeder folgende Eintrag ist eine einzelne Lizenz.

Lizenzgruppen, die in ACCEPT_LICENSE definiert werden, haben ein vorangestelltes @ Zeichen. Es folgt ein Beispiel eines Systems, das global die GPL-kompatible Lizenzgruppe erlaut, sowie einige weitere Gruppen und einzelne Lizenzen:

Befehlsauflistung 4.3: ACCEPT_LICENSE in /etc/portage/make.conf

ACCEPT_LICENSE="@GPL-COMPATIBLE @OSI-APPROVED @EULA atheros-hal BitstreamVera"

Wenn Sie nur freie Software und Dokumentation auf Ihrem System haben wollen, können Sie die folgende Einstellung verwenden:

Befehlsauflistung 4.4: Nur freie Lizenzen verwenden

ACCEPT_LICENSE="-* @FREE"

Unter "frei" ist in diesem Zusammenhang die Definition der FSF und der OSI zu verstehen. Jegliche Pakete, die diesen Anforderungen nicht gerecht werden, werden nicht auf Ihrem System installiert.

1.e. Wenn Portage sich beschwert ...

Über SLOTs, Virtuals, Zweige, Architekturen und Profile

Wie bereits zuvor erwähnt bietet Portage extrem viele Möglichkeiten und unterstützt zahlreiche Features, die in anderen Softwaremanagement-Tools fehlen. Um dies zu verstehen erläutern wir einige Aspekte von Portage, ohne jedoch ganz ins Detail zu gehen.

Mit Portage können mehrere Versionen eines Pakets auf dem System koexistieren. Während andere Distributionen in diesen Fällen dazu tendieren Teile der Versionsnummer mit in den Paketnamen aufzunehmen, (wie freetype und freetype2) beherrscht Portage eine Technik namens SLOTs. Eine Ebuildversion deklariert dabei ein bestimmtes SLOT. Ebuilds eines Pakets mit unterschiedlichen SLOTs können gleichzeitig auf einem System installiert sein. Zum Beispiel hat das freetype Paket Ebuilds mit SLOT="1" und SLOT="2".

Es gibt weiterhin einige Pakete, welche die gleiche Funktionalität anbieten, aber anders implementiert sind. Zum Beispiel sind metalogd, sysklogd und syslog-ng alle System-Protokollierdienste. Anwendungen die einen System-Protokollierdienst benötigen, können zum Beispiel nicht auf metalogd bestehen, da die anderen System-Protokollierdienste auch eine gute Wahl sind. Portage erlaubt daher virtuals: Jeder System-Logger ist als "exklusive" Abhängigkeit des Logging-Dienstes im virtuellen Paket logger der Kategorie virtual aufgelistet, so dass Applikationen einfach vom Paket virtual/logger abhängen können. Wenn dieses installiert wird, zieht das Paket einfach das erste Logging-Paket, das im Paket erwähnt wird, hinein, sofern vorher nicht schon ein Logging-Paket installiert war (in welchem Falle die virtuelle Abhängigkeit schon erfüllt ist).

Anwendungen im Portage-Tree können sich in verschiedenen Zweigen befinden. Standardmäßig akzeptiert Ihr System nur Pakete, die Gentoo als stabil betrachtet. Die meisten neuen Anwendungen werden nach der Veröffentlichung zum Test-Zweig hinzugefügt, da Tests erforderlich sind um festzustellen, ob die spezifische Anwendung als stabil gekennzeichnet werden kann. Obwohl Sie diese Ebuilds auch im Portage-Tree sehen, wird Portage sie erst aktualisieren wenn diese in den stabilen Zweig verschoben werden.

Einige Anwendungen sind nur für bestimmte Architekturen verfügbar. Andere Anwendungen funktionieren nicht auf allen Architekturen oder es sind intensivere Test für diese Anwendung erforderlich. Manchmal ist es dem Entwickler der die Anwendung in den Portage-Tree eingebracht hat nicht möglich, zu prüfen ob die Anwendung auf den unterschiedlichen Architekturen korrekt funktioniert.

Jede Gentoo Installation gehört zu einem bestimmtes Profil, welches neben anderen Informationen auch alle Pakete auflistet, die für ein funktionierendes System erforderlich sind.

Blockierte Pakete

Befehlsauflistung 5.1: Portage warnt vor blockierten Paketen (mit --pretend)

[blocks B     ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)

Befehlsauflistung 5.2: Portage warnt vor blockierten Paketen (ohne --pretend)

!!! Error: the mail-mta/postfix package conflicts with another package.
!!!        both can't be installed on the same system together.
!!!        Please use 'emerge --pretend' to determine blockers.

Ebuilds enthalten spezifische Felder, die Portage über die Abhängigkeiten informieren. Es gibt zwei mögliche Formen von Abhängigkeiten: Build Abhängigkeiten, deklariert in DEPEND und Abhängigkeiten zur Laufzeit, deklariert in RDEPEND. Wenn eine dieser Abhängigkeiten ein Paket oder eine Virtual als explizit nicht kompatibel kennzeichnet, wird ein Blocker ausgelöst.

Auch wenn neuere Portage-Versionen schlau genug sind, kleinere Blocker ohne Benutzereingriffe zu umgehen, müssen Sie ab und zu selbst Hand anlegen, wie folgt beschrieben.

Um einen solchen Blocker zu umgehen können Sie entweder auf das Installieren des Pakets verzichten, oder das den Blocker auslösende Paket zuerst deinstallieren. Im gerade angebrachten Beispiel sind Ihre Optionen der Verzicht auf die Installation von postfix oder die vorherige Deinstallation von ssmtp.

Sie werden unter Umständen auch blockierende Pakete mit spezifischen Atoms wie <media-video/mplayer-1.0_rc1-r2 sehen. In diesem Fall wird das Aktualisieren auf eine neuere Version des blockierenden Paketes die Blockierung aufheben.

Es ist auch möglich, dass sich zwei zu installierende Pakete gegenseitig blockieren. In diesem seltenen Fall sollten Sie herausfinden, warum Sie beide installieren müssen. In den meisten Fällen ist eines der Pakete ausreichend. Wenn nicht, erstellen Sie bitte einen Bug in Gentoos Bugtracking System.

Maskierte Pakete

Befehlsauflistung 5.3: Portage Warnung zu maskierten Paketen

!!! all ebuilds that could satisfy "bootsplash" have been masked.

Befehlsauflistung 5.4: Portage Warnung zu maskierten Paketen - Gründe

!!! possible candidates are:

- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- games-fps/unreal-tournament-451 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)
- net-im/skype-2.1.0.81 (masked by: skype-eula license(s))

Wenn Sie ein Paket installieren wollen, welches für Ihr System nicht verfügbar ist, erhalten Sie eine solche Fehlermeldung. Sie sollten versuchen eine andere Anwendung, welche für Ihr System verfügbar ist, zu installieren oder warten bis das gewünschte Paket verfügbar ist. Es gibt immer einen Grund warum ein Paket maskiert ist:

  • ~arch Keyword bedeutet, dass diese Anwendung noch nicht hinreichend getestet ist, um diese in den stabilen Zweig zu schieben. Warten Sie ein paar Tage oder Wochen und versuchen Sie es erneut.
  • -arch Keyword oder -* Keyword bedeutet, dass diese Anwendung auf Ihrer Architektur nicht funktioniert. Wenn Sie glauben, dass das Paket funktioniert erstellen Sie einen Bugreport über unsere Bugzilla Webseite.
  • Fehlendes Keyword bedeutet, dass diese Anwendung auf Ihrer Architektur noch nicht getestet wurde. Bitten Sie das Portierungs Team Ihrer Architektur dieses Paket zu testen, oder testen Sie es selbst und melden Sie Ihre Ergebnisse über unsere Bugzilla Webseite.
  • package.mask bedeutet, dass dieses Paket korrupt, instabil oder schlecht ist und als "nicht-benutzen" gekennzeichnet wurde.
  • profile bedeutet, dass dieses Paket als nicht zutreffend für Ihr Profil gekennzeichnet ist. Die Applikation kann Ihr System in einen korrupten Zustand versetzen wenn Sie diese Anwendung installieren. Oder die Anwendung ist mit dem Profil dass Sie verwenden nicht kompatibel.
  • license bedeutet, dass die Lizenz des Paketes nicht mit Ihrer ACCEPT_LICENSE Einstellung kompatibel ist. Sie müssen die entsprechende Lizenz oder Lizenzgruppe explizit erlauben, indem Sie sie in /etc/portage/make.conf oder in /etc/portage/package.license angeben. Sehen Sie sich Lizenzen genauer an, um herauszufinden, wie jegliche funktionieren.

Erforderliche USE-Flag-Änderungen

Befehlsauflistung 5.5: Portage-Warnung über erforderliche USE-Flag-Änderung

The following USE changes are necessary to proceed:
#required by app-text/happypackage-2.0, required by happypackage (argument)
>=app-text/feelings-1.0.0 test

Diese Fehlermeldung kann auch wie folgt angezeigt werden, sofern --autounmask nicht gesetzt ist:

Befehlsauflistung 5.6: Portage-Fehler über erforderliche USE-Flag-Änderung

emerge: there are no ebuilds built with USE flags to satisfy "app-text/feelings[test]".
!!! One of the following packages is required to complete your request:
- app-text/feelings-1.0.0 (Change USE: +test)
(dependency required by "app-text/happypackage-2.0" [ebuild])
(dependency required by "happypackage" [argument])

Solche Warnungen oder Fehler treten auf, wenn Sie ein Paket installieren wollen, das nicht nur von einem anderen Paket abhängig ist, sondern es auch erforderlich ist, dass dieses Paket mit einem bestimmten USE-Flag (oder einer Menge von USE-Flags) gebaut wurde. In dem gegebenen Beispiel muss das Paket app-text/feelings mit USE="test" gebaut worden sein, aber dieses USE-Flag ist auf dem System nicht gesetzt.

Um dieses Problem zu lösen, fügen Sie entweder das erforderliche USE-Flag zu Ihren globalen USE-Flags in der /etc/portage/make.conf hinzu, oder setzen Sie es für das spezifische Paket in der /etc/portage/package.use.

Fehlende Abhängigkeiten

Befehlsauflistung 5.7: Portage Warnung zu fehlenden Abhängigkeiten

emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3.4.2-r4".

!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem.

Die Anwendung welche Sie installieren möchten benötigt ein anderes Paket, welches für Ihr System nicht verfügbar ist. Schauen Sie im Bugzilla nach, ob das Problem bekannt ist und wenn nicht, erstellen Sie zu diesem Problem einen neuen Bugreport. Solange Sie nicht verschiedene Zweige mischen sollte eine solche Fehlermeldung eigentlich nicht auftauchen und ist somit ein Bug.

Doppeldeutige Ebuild-Namen

Befehlsauflistung 5.8: Portage Warnung über doppeldeutige Ebuild-Namen

[ Results for search key : listen ]
[ Applications found : 2 ]

*  dev-tinyos/listen [ Masked ]
      Latest version available: 1.1.15
      Latest version installed: [ Not Installed ]
      Size of files: 10,032 kB
      Homepage:      http://www.tinyos.net/
      Description:   Raw listen for TinyOS
      License:       BSD

*  media-sound/listen [ Masked ]
      Latest version available: 0.6.3
      Latest version installed: [ Not Installed ]
      Size of files: 859 kB
      Homepage:      http://www.listen-project.org
      Description:   A Music player and management for GNOME
      License:       GPL-2

!!! The short ebuild name "listen" is ambiguous. Please specify
!!! one of the above fully-qualified ebuild names instead.

Die Anwendung, die Sie installieren möchten, hat einen Namen, der auf mehr als ein Paket zutrifft. Sie müssen ebenfalls die Kategorie des Paketes angeben. Portage informiert Sie über mögliche Treffer, aus denen Sie auswählen können.

Zyklische Abhängigkeiten

Befehlsauflistung 5.9: Warnung von Portage zu zyklischen Abhängigkeiten

!!! Error: circular dependencies:

ebuild / net-print/cups-1.1.15-r2 depends on ebuild / app-text/ghostscript-7.05.3-r1
ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild / net-print/cups-1.1.15-r2

Zwei (oder mehr) Pakete, die Sie installieren möchten hängen gegenseitig voneinander ab und können daher nicht installiert werden. Dies ist in den meisten Fällen ein Bug im Portage-Tree. Bitte warten Sie eine Weile, aktualisieren den Portage-Tree und versuchen Sie es erneut. Schauen Sie ebenfalls im Bugzilla, ob dies ein bekanntes Problem ist und erstellen einen Bugreport sofern noch keiner existiert.

Herunterladen der Quellen schlägt fehl

Befehlsauflistung 5.10: Portage Warnung zu Fehlern beim herunterladen der Quellen

!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
(...)
!!! Some fetch errors were encountered.  Please see above for details.

Portage konnte die Quellen für eine bestimmte Anwendung nicht herunterladen und wird mit dem Installieren der anderen Anwendungen (sofern zutreffend) fortfahren. Dieser Fehler kann durch einen noch nicht aktualisierten Mirror oder einen falsche Angabe im Ebuild hervorgerufen werden. Zudem kann es sein, dass der Server von dem Sie die Quellen herunterladen möchten aus einem unbekannten Grund nicht erreichbar ist.

Versuchen Sie es eine Stunde später nochmals um zu prüfen, ob das Problem noch besteht.

Schutz des Systemprofils

Befehlsauflistung 5.11: Portage Warnung über durch das Profil geschützte Pakete

!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.

Sie wollen ein Paket deinstallieren, welches zu den Kernbestandteilen Ihres Systems zählt. Es ist in Ihrem Profil als notwendig aufgeführt und sollte daher nicht deinstalliert werden.

Fehler in der Überprüfung des Digests

Manchmal kann das installieren eines Pakets mittels emerge mit folgender Nachricht abbrechen:

Befehlsauflistung 5.12: Fehler in der Überprüfung des Digest

>>> checking ebuild checksums
!!! Digest verification failed:

Dies ist ein Zeichen dafür dass etwas mit dem Portage-Tree nicht in Ordnung ist. Oft liegt es daran, dass ein Entwickler beim einbringen eines Pakets in den Tree einen Fehler gemacht hat.

Wenn die Überprüfung des Digest fehlschlägt versuchen Sie nicht das Paket selber neu zu indizieren. Das Ausführen von ebuild foo manifest wird das Problem nicht beheben. Es wird das Problem mit ziemlicher Sicherheit nur noch verschärfen!

Warten Sie stattdessen ein bis zwei Stunden, bevor der Tree sich etwas normalisiert hat. Es ist wahrscheinlich ein Fehler, der direkt danach bemerkt wurde, aber es kann eine Weile dauern bis die Korrektur im Portage-Tree verbreitet wurde. Während Sie warten können Sie im Bugzilla nachsehen ob jemand das Problem bereits gemeldet hat. Wenn nicht, melden Sie einfach einen Bug für das kaputte Paket.

Sobald Sie sehen, dass der Fehler behoben wurde, können Sie erneut synchronisieren um das korrigierte Digest zu erhalten.

Wichtig: Dies bedeutet nicht, dass Sie Ihren Tree mehrere Male synchronisieren sollten! Wie in der Rsync-Richtlinie aufgeführt (wenn Sie emerge --sync ausführen) werden Benutzer, die zu oft synchronisieren gesperrt! Es ist besser bis zu Ihrem nächsten geplanten Sync zu warten, damit die Rsync-Server nicht überlastet werden.


[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


Drucken

Alles ansehen

Seite aktualisiert 15. August 2012

Diese Übersetzung wird nicht länger gepflegt

Zusammenfassung: Dieses Kapitel erklärt die "einfachen" Schritte, die ein Benutzer defnitiv benötigt, um Software auf seinem System zu betreuen.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Entwickler

Tavis Ormandy
Gentoo Alpha Entwickler

Jason Huebel
Gentoo AMD64 Entwickler

Guy Martin
Gentoo HPPA Entwickler

Pieter Van den Abeele
Gentoo PPC Entwickler

Joe Kallar
Gentoo SPARC Entwickler

John P. Davis
Bearbeiter

Pierre-Henri Jondot
Bearbeiter

Eric Stockbridge
Bearbeiter

Rajiv Manglani
Bearbeiter

Jungmin Seo
Bearbeiter

Stoyan Zhekov
Bearbeiter

Jared Hudson
Bearbeiter

Colin Morey
Bearbeiter

Jorge Paulo
Bearbeiter

Carl Anderson
Bearbeiter

Jon Portnoy
Bearbeiter

Zack Gilburd
Bearbeiter

Jack Morgan
Bearbeiter

Benny Chuang
Bearbeiter

Erwin
Bearbeiter

Joshua Kinard
Bearbeiter

Tobias Scherbaum
Bearbeiter

Lars Weiler
Bearbeiter

Jochen Maes
Bearbeiter

Grant Goodyear
Korrektor

Gerald J. Normandin Jr.
Korrektor

Donnie Berkholz
Korrektor

Ken Nowack
Korrektor

Tobias Scherbaum
Übersetzer

Jens Schittenhelm
Übersetzer

Patrick Sudowe
Übersetzer

Torsten Veller
Übersetzer

Michael Frey
Übersetzer

Markus Nigbur
Übersetzer

Boris Ruppert
Übersetzer

Jan Hendrik Grahl
Übersetzer

Christian Hartmann
Korrektor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.