[ << ]
[ < ]
[ 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.2: 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.3: 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.4: 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.5: 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.6: 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.7: 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.8: 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.9: 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.10: Die Existenz eines doc USE-Flag überprüfen
# 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.11: 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
# 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
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.12: 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.13: 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.14: 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.15: 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.16: 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.17: 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.18: 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.19: 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.20: 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.
|
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.21: 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.22: 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.23: Portage warnt vor blockierten Paketen (mit --pretend)
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)
Befehlsauflistung
5.24: 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.25: Portage Warnung zu maskierten Paketen
!!! all ebuilds that could satisfy "bootsplash" have been masked.
Befehlsauflistung
5.26: 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.27: 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.28: 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.29: 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.30: 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.31: 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.32: 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.33: 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.34: 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.
|
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 ]
[ > ]
[ >> ]
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|