Emerge/de
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
emerge ist das Haupt-Kommandozeilen-Interface zu Portage, dem Paket-Manager von Gentoo.
emerge wird benutzt, um Software in Gentoo Linux herunterzuladen, zu installieren, zu updaten und zu warten.
emerge ist ein sehr mächtiges und flexibles Kommando, das unter anderem automatisch Pakete „aus dem Quellcode“ bauen und installieren, „gebrauchsfertige“ Binärpakete holen und installieren, Binärpakete erstellen, nach Paketen suchen, Systeminformationen melden, usw. kann.
Der Befehl emerge hat viele mögliche Optionen. Für eine ausführliche Dokumentation und eine vollständige Liste aller Optionen siehe man emerge.
Siehe den Portage Artikel für die Verwendung von Portage über den emerge Befehl hinaus.
Die Kapitel working with Gentoo und working with Portage des Handbuchs haben Abschnitte über die Verwendung des emerge Befehls.
Einige häufige Fragen zum Befehl emerge werden in der FAQ und in der Portage FAQ beantwortet.
Benutzung
Aufruf
Dem Befehl emerge sollten die entsprechenden Optionen, Aktionen und Pakete oder Paketgruppen folgen. Wenn emerge ohne Parameter oder Paket aufgerufen wird, wird ein Hilfetext ausgegeben und das Programm beendet.
Für die meisten Verwendungszwecke muss emerge mit Superuser-Privilegien ausgeführt werden, aber wenn es nur zum Berichten von Informationen verwendet wird, ist es möglich, es als unprivilegierter Benutzer auszuführen.
Wenn emerge mit einem Paket und ohne weitere Optionen aufgerufen wird, wird es sofort versuchen, das entsprechende Paket zu installieren, ohne eine Bestätigung vom Benutzer anzufordern. Dies ist oft nicht das gewünschte Verhalten, daher wird wahrscheinlich eine der folgenden Optionen benötigt.
Die --ask
(-a
) und --pretend
(-p
) Optionen ermöglichen die Untersuchung möglicher System-Auswirkungen durch geplante Änderungen bevor diese durchgeführt werden. Die --ask
Option lässt emerge die beabsichtigten Änderungen anzeigen und fragt nach einer Bestätigung vor dem Fortfahren. Die --pretend
zeigt die lediglich die Veränderungen an und stoppt dann, sie benätigt zur Durchführung keine Superuser-Rechte.
Bei Verwendung der interaktiven Option (--ask) führt ein versehentliches Drücken von Enter während der Verarbeitung dazu, dass die Bestätigungsaufforderung übersprungen wird. Weitere Informationen finden Sie im Abschnitt zur Option --ask in der man emerge Manpage.
emerge gibt viele Informationen und Warnungen über einzelne Pakete und das System als Ganzes aus. Mit der Option --verbose zeigt Portage zusätzliche Informationen an, beispielsweise welche USE-Flags für die Installation oder Aktualisierung eines Pakets verwendet werden, welche USE-Flags für die einzelnen Pakete verfügbar sind, die Größe des Downloads usw.
Das Ausführen von emerge mit der Option --help
liefert Informationen zu den Befehlszeilenoptionen:
user $
emerge --help
emerge: command-line interface to the Portage system Usage: emerge [ options ] [ action ] [ ebuild | tbz2 | file | @set | atom ] [ ... ] emerge [ options ] [ action ] < @system | @world > emerge < --sync | --metadata | --info > emerge --resume [ --pretend | --ask | --skipfirst ] emerge --help Options: -[abBcCdDefgGhjkKlnNoOpPqrsStuUvVwW] [ --color < y | n > ] [ --columns ] [ --complete-graph ] [ --deep ] [ --jobs JOBS ] [ --keep-going ] [ --load-average LOAD ] [ --newrepo ] [ --newuse ] [ --noconfmem ] [ --nospinner ] [ --oneshot ] [ --onlydeps ] [ --quiet-build [ y | n ] ] [ --reinstall changed-use ] [ --with-bdeps < y | n > ] Actions: [ --depclean | --list-sets | --search | --sync | --version ] For more help consult the man page.
Unten sehen Sie ein Beispiel für den Aufruf von emerge, bei dem "Paket" installiert wird. Die Optionen -atv sind Kurzoptionen für --ask (siehe oben), --tree (Anzeige des Abhängigkeitsbaums der zu installierenden Pakete) und --verbose (siehe oben). Bewegen Sie den Mauszeiger über die rot gepunkteten Kästchen, um eine Erklärung der einzelnen Abschnitte der Ausgabe zu sehen:
These are the packages that would be merged, in reverse order:
Calculating dependencies... done! [ebuild U ] category/package-3.0-r2 [2.0] USE="enabled -disabled toggled* new% (-unavailable)" MAKE_OPTIONS="-disabled" 777 kB [ebuild UD ] category/package-2.0 [3.0] 777 kB [ebuild R ] category/package-1.0 777 kB [ebuild N ] category/package-0.5 777 kB
Total: 4 packages (1 new, 1 reinstall, 1 upgrade, 1 downgrade), Size of downloads: 3108 kB
Would you like to merge these packages? [Yes/No]Das Symbol U zeigt ein Paket an, das aktualisiert wird, D ein Paket, das heruntergestuft wird, R ein Paket, das neu kompiliert wird, und N ein neues Paket. In eckigen Klammern steht die Version des zuvor installierten Pakets. Pakete, die in der World-Datei vorhanden sind, werden fett dargestellt - dies sind die vom Benutzer installierten Pakete, die anderen Pakete sind Abhängigkeiten oder gehören zum System-Set.
Eine vollständige Erklärung, wie die Portage-Ausgabe zu lesen ist, finden Sie im Abschnitt AUSGABE und in der Beschreibung der Option --pretend der man emerge Manpage.
Im Kontext von Portage kann der Begriff "Paket" eine ähnliche Bedeutung haben wie "Atom", siehe version specifier.
Installieren eines Paketes
Installieren Sie das Paket net-proxy/tinyproxy mit den Optionen --ask
und --verbose
:
root #
emerge --ask --verbose net-proxy/tinyproxy
Mit einem version specifier wird angegeben, welches Paket, welche Version und welcher Slot installiert werden soll und aus welchem ebuild repository dieses stammt.
Mit der Option
--ask
(-a
) können Sie die Aktionen von emerge überprüfen, bevor sie ausgeführt werden. Die Option --verbose
(-v
) zeigt detaillierte Informationen über die geplanten Aktionen von Portage an. Sie können diese Optionen auch standardmäßig setzen. Standardoptionen lassen sich in der Befehlszeile überschreiben, zum Beispiel mit --ask=n
.Werden Aktionen ohne die Option
--ask
angefordert, werden diese ohne Rückfrage ausgeführt. Alternativ kann die Option --pretend
verwendet werden.Manche Dinge, wie beispielsweise Abhängigkeiten, sollten nicht auf diese Weise installiert werden. Weitere Informationen finden Sie im Abschnitt Abhängigkeiten nicht zur World-Datei hinzufügen in der Emerge-Dokumentation.
Die Funktionalität eines Pakets wird zum Zeitpunkt der Installation durch USE flag gesteuert, die je nach Verwendungszweck der Software gesetzt oder nicht gesetzt werden können.
Suche nach Paketen
Die in emerge integrierte Suchfunktion liefert möglicherweise weniger Ergebnisse als andere Tools. Die angezeigte neueste verfügbare Version ist durch ACCEPT_KEYWORDS eingeschränkt. Diese werden aus dem aktuellen Profil, der Datei make.conf, der Datei package.accept_keywords usw. ermittelt. Außerdem werden bei der Anzeige der neuesten verfügbaren und der neuesten installierten Version keine Slots berücksichtigt, sodass nicht mehrere Versionen pro Slot angezeigt werden. Dies kann zu Verwirrung führen, da Tools wie eix oder eshowkw unter Umständen mehr Ergebnisse anzeigen als emerge --search.
Alternativ können Sie auch eix, equery oder packages.gentoo.org verwenden, um nach Paketen zu suchen. Diese Tools bieten erweiterte Suchfunktionen.
Suche nach Paketen mit proxy im Namen:
user $
emerge --search proxy
Um nach Paketen zu suchen, die proxy im Namen oder in der Beschreibung enthalten, verwenden Sie folgenden Befehl:
user $
emerge --searchdesc proxy
Um nach Paketen mithilfe eines regulären Ausdrucks zu suchen, verwenden Sie folgenden Befehl:
user $
emerge -s '%^python$'
Um alle Pakete einer bestimmten Kategorie aufzulisten, verwenden Sie folgenden Befehl:
user $
emerge -s '@net-ftp'
Entfernen (Deinstallieren) von Paketen
Um das Paket net-proxy/tinyproxy zu entfernen und gleichzeitig nicht mehr benötigte Abhängigkeiten zu bereinigen, verwenden Sie die Option --depclean
(-c
):
root #
emerge --ask --verbose --depclean net-proxy/tinyproxy
Dabei werden nur die Pakete entfernt, die nicht als Abhängigkeit für ein aktuell installiertes Paket benötigt werden.
Statt --depclean
können Sie auch emerge --deselect (oder die Option -W
) verwenden, um Pakete zu deinstallieren. Anschließend müssen Sie verwaiste Pakete bereinigen, wie im folgenden Abschnitt beschrieben.
Achten Sie darauf, den Kleinbuchstaben
-c
(Kurzform für --depclean
, sicher) nicht mit dem Großbuchstaben -C
zu verwechseln. Letzterer kann das System beschädigen und sollte nur im Notfall verwendet werden (siehe Warnung unten).Verwenden Sie die Option
--unmerge
(-C
) niemals, außer Sie wissen genau, was Sie tun. Diese Option entfernt wichtige Systempakete ohne Rückfrage!Entfernen verwaister Pakete
Siehe Entfernen verwaister Pakete für Informationen zur Benutzung von emerge --depclean um potentiell ungenutzte Pakete zu entfernen. Siehe auch die Portage FAQ.
Pakete aktualisieren
Informationen zum Aktualisieren von Paketen finden Sie unter Upgrading Gentoo.
Systeminformationen anzeigen
emerge kann Systeminformationen anzeigen, die bei der Fehlersuche hilfreich sein können. Diese Informationen werden häufig benötigt, wenn Sie Unterstützung anfordern oder einen Fehlerbericht einreichen.
user $
emerge --info
Mit dem Flag --verbose
können Sie zusätzliche Informationen ausgeben lassen.
Tipps
Überprüfung und Download von Distfiles
Mit dem folgenden Befehl können Sie die Integrität aller Distfiles der installierten Pakete überprüfen und ggf. fehlende oder beschädigte Distfiles erneut herunterladen:
root #
emerge --ask --fetchonly --emptytree @world
Abhängigkeiten nicht zur World-Datei hinzufügen
Müssen Sie eine Abhängigkeit neu installieren, verwenden Sie die Option --oneshot
. Installieren Sie Abhängigkeiten nicht mit emerge Paket, da diese sonst in die World-Datei aufgenommen werden und dies zu Problemen führen kann.
Verwenden Sie Portage nicht, um Abhängigkeiten für die Kompilierung eigener Software zu installieren. Schreiben Sie stattdessen lieber ein Ebuild.
Weitere Informationen finden Sie unter User:Sam/Portage help/Maintaining a Gentoo_system.
Emerge fortsetzen
Sollte die Installation mehrerer Pakete unterbrochen werden (z. B. durch einen Absturz oder Drücken von Strg+C), können Sie die Installation mit der Option --resume
fortsetzen. Dabei wird die Installation mit dem Paket fortgesetzt, bei dem der Fehler aufgetreten ist. Die Optionen --keep-going
und --skipfirst
bieten zusätzliche Möglichkeiten zur Steuerung des Vorgangs. Details finden Sie in der man emerge Manpage.
Umgebungsvariablen zur temporären Konfiguration von Portage verwenden
Umgebungsvariablen, die an Portage auf der Befehlszeile übergeben werden, bewirken nur vorübergehende Änderungen an der Systemkonfiguration. Alle diese Änderungen werden bei routinemäßigen Wartungsarbeiten, wie z. B. einem system update, rückgängig gemacht. Sie können diesen Abschnitt zwar verwenden, um die Auswirkungen von Konfigurationsänderungen mit der Option
--pretend
zu testen, Sie sollten diese Methode jedoch nicht verwenden, um Pakete tatsächlich zu installieren oder zu aktualisieren.
Sie können emerge auch temporäre Konfigurationswerte über Umgebungsvariablen übergeben. Diese Werte gelten dann nur für den aktuellen Aufruf. So installieren Sie beispielsweise app-editors/emacs mit dem svg USE flag, ohne die Einstellung dauerhaft zu speichern:
root #
USE='svg' emerge app-editors/emacs
Oder um Pakete, die die Funktion econf
verwenden, mit zusätzlichen Konfigurationsoptionen zu versehen:
root #
EXTRA_ECONF='--without-compress-install' emerge app-editors/emacs
Wenn Sie emerge mit sudo aufrufen, müssen Sie Umgebungsvariablen möglicherweise nach dem sudo-Befehl setzen, da sudo die aktuelle Umgebung normalerweise nicht übernimmt:
user $
sudo USE='svg' emerge -av app-editors/emacs
}}
Ein Paket, das eine bestimmte Datei enthält, neu kompilieren
Es kann hilfreich sein, ein Paket anhand einer von ihm bereitgestellten Datei neu zu kompilieren.
Nehmen wir an, der Benutzer möchte /usr/lib/libunwind.a neu installieren, weiß aber nicht, zu welchem Paket die Datei gehört. In diesem Fall kann emerge das Paket anhand des Dateipfads ermitteln:
user $
emerge -p /usr/lib/libunwind.a
These are the packages that would be merged, in order: Calculating dependencies... done! Dependency resolution took 2.76 s (backtrack: 0/20). [ebuild R ] sys-libs/llvm-libunwind-17.0.6
Diese Methode funktioniert nur für Dateien, die von einem aktuell installierten Paket bereitgestellt werden. Pfl bietet weitere Möglichkeiten, um herauszufinden, zu welchem Paket eine Datei gehört.
Problembehebung
Siehe User:Sam/Portage help bei Problemen mit Portage.
Fehler beim Entpacken von Paketen
Beim Installieren von Paketen kann die folgende Meldung erscheinen:
- Error messages for package dev-libs/libinput-1.16.0:
* The ebuild phase 'unpack' has exited unexpectedly. This type of behavior * is known to be triggered by things such as failed variable assignments * (bug #190128) or bad substitution errors (bug #200313). Normally, before * exiting, bash should have displayed an error message above. If bash did * not produce an error message above, it's possible that the ebuild has * called `exit` when it should have called `die` instead. This behavior * may also be triggered by a corrupt bash binary or a hardware problem * such as memory or cpu malfunction. If the problem is not reproducible or * it appears to occur randomly, then it is likely to be triggered by a * hardware problem. If you suspect a hardware problem then you should try * some basic hardware diagnostics such as memtest. Please do not report * this as a bug unless it is consistently reproducible and you are sure * that your bash binary and hardware are functioning properly.
Diese Fehlermeldung kann verschiedene Ursachen haben, die in der obigen Ausgabe aufgelistet sind. Häufig tritt der Fehler jedoch auf, wenn nicht genügend Speicherplatz in dem Verzeichnis vorhanden ist, das Portage zum Entpacken der Quelldateien verwendet. Dieses Verzeichnis wird durch die Variable PORTAGE_TMPDIR festgelegt. Sie können den Wert dieser Variable mit folgendem Befehl abfragen:
user $
portageq envvar PORTAGE_TMPDIR
/var/tmp
Verwenden Sie den Befehl df, um den verfügbaren Speicherplatz auf der Partition anzuzeigen, auf der PORTAGE_TMPDIR eingehängt ist (in der Regel die Root-Partition /). Wie Sie Speicherplatz freigeben, erfahren Sie auf der Seite Speicherplatz freigeben.
Siehe auch
- dispatch-conf — a utility included with Portage, used to safely and conveniently manage configuration files after package updates.
- Portage — the official package manager and distribution system for Gentoo.