Nachdem wir uns im ersten Teil unserer Gentoo-Mini-Serie mit der Installation beschäftigt haben, möchten wir Sie in diesem Teil mit der Wartung vertraut machen. Dabei legen wir den Schwerpunkt wieder auf Gentoo-Spezifika und verweisen bei distributionsunabhängigen Befehlen auf die Literatur [4, 6].
Serie: Gentoo Linux
Teil 1: Installation in 12 Schritten http://www.linux-community.de/artikel/7629
Teil 2: Systemwartung mit Portage http://www.linux-community.de/artikel/7630
Wie wir im ersten Teil gesehen haben, arbeitet Gentoo normalerweise nicht mit vorkompilierten Paketen, sondern mit so genannten Ebuilds. Sie beinhalten sämtliche Informationen, um das betreffende Programm zu betreuen (Download-Zweig, Version, etc.). Sämtliche für Gentoo verfügbaren Ebuilds bilden (vereinfacht ausgedrückt) den Portage-Zweig. Portage stellt das zentrale Software-Management-Tool für die Wartung Ihres Systems dar; den Umgang mit diesem Werkzeug wollen wir uns im Folgenden näher ansehen.
Das Portage-Systen
Das Software-Management-Tool Portage stellt eine der größten Stärken eines Gentoo-Systems dar. Es bietet größte Flexibilität und eine unglaubliche Fülle an Optionen. Die wichtigsten der Portage-Features lassen sich über den emerge-Befehl nutzen. Vor der Verwendung von Portage sollte man sich im Klaren sein, dass sich sämtliche Aktionen immer auf den auf ihrem System gespeicherten Portage-Zweig beziehen. Daher ist es notwendig, die entsprechenden Ebuilds regelmäßig (bzw. vor der Installation neuer Programme) zu aktualisieren. Dies erfolgt mit Hilfe des Befehls emerge --sync. Die Installation eines Programms nehmen Sie mit emerge Programmname vor. Um herauszufinden, welche Programme Portage aufgrund von Abhängigkeiten mit einrichtet, dient der Befehl
emerge --pretend programmname
Eine mögliche Ausgabe dieses Kommandos sehen Sie in Abbildung 1. In rechteckigen Klammern eingeschlossen, zeigt das Programm Informationen über das zu installierende Paket an. Die Kürzel haben folgende Bedeutung:
- B (Blocks): Das Paket links blockiert die Installation des rechts stehenden Paketes.
- N (New):
emergeinstalliert das Paket neu. - R (Reemerge): Das Paket ist zwar nicht neu, muss aber trotzdem noch einmal eingerichtet werden.
- F (Fetch): Für dieses Paket müssen Sie den Quellcode manuell herunterladen.
- U (Update): Das Paket existiert bereits auf Ihrem System; es steht jedoch eine Aktualisierung an.
- UD (Downgrade): Das Paket existiert bereits auf Ihrem System;
emergemuss aber eine ältere Version installieren. - U- (slot warning): Das Paket arbeitet mit einer anderen Version auf Ihrem System nicht zusammen.
emergenimmt die Installation vor und deinstalliert dabei die ältere Version.
Sobald Sie Portage anweisen, ein Programm zu einzurichten, lädt es alle erforderlichen Quellen aus dem Internet herunter. Anschließend nimmt es sofort die Kompilierung und Installation vor. Verfügen Sie über keine Standleitung bzw. Flatrate, kann es interessant sein, zunächst den Download aller gewünschten Pakete zu erledigen und Kompilierung und Installation auf einen späteren Zeitpunkt zu verschieben. Das Herunterladen stoßen Sie in diesem Fall mit dem Befehl
emerge --fetchonly programmname
an. Zu einem beliebigen späteren Zeitpunkt starten Sie die Installation dann mit dem Kommando emerge programmname.
Manchmal will man nicht einzelne Programme einrichten, sondern stattdessen das gesamte System aktualisieren. Dazu dient der Befehl:
emerge --update world
Er bringt sämtliche installierten Programme auf den neusten Stand. Dies gilt jedoch nicht für deren Abhängigkeiten. Um auch diese Programmpakete zu aktualisieren, führen Sie folgendes Kommando aus:
emerge --update --deep world
Portage verfügt auch über die Möglichkeit, verwaiste Pakete zu entfernen. Dies erreichen Sie über die Befehlsfolge
emerge --update --deep --newuse ↩ world emerge depclean revdep-rebuild
Um den Befehl revdep-rebuild nutzen zu können, müssen Sie das "Gentoolkit" installieren.
Gentoo erlaubt neben der Einrichtung von Programmen direkt aus den Quellen auch die Installation vorkompilierter Programmpakete. Dazu dient der Befehl:
emerge --usepkg --getbinpkg ↩ Programmname
Die Deinstallation eines Programms kann mit emerge unmerge programmname erfolgen. Hier sei aber darauf hingewiesen, dass Portage nicht überprüft, ob das betreffende Programm von anderen Programmen noch benötigt wird.
Weitere Informationen zur Verwendung von emerge liefern die Manpages, die Sie über man emerge aufrufen. Auch in der Gentoo-Dokumentation [2] finden Sie eine ausführliche Beschreibung des Tools. Eine Zusammenfassung der wichtigsten Portage-Befehle fasst Tabelle 1 zusammen.
Tabelle 1: Wichtigsten Portage-Befehle
| Befehl | Funktion |
|---|---|
emerge --sync
|
aktualisiert den Portage-Zweig |
emerge Programmname
|
installiert ein Programms |
emerge --pretend Programmname
|
überprüft die Abhängigkeiten |
emerge --fetchonly Programmname
|
lädt den Quellcode eines Programms herunter |
emerge unmerge Programmname
|
deinstalliert ein Programm |
emerge --update world
|
aktualisiert das gesamte System |
emerge --update --deep world
|
aktualisiert das Systems einschließlich aller Abhängigkeiten |
emerge --usepkg --getbinpkg Programmname
|
installiert ein vorkompiliertes Programm |
Optimierungsmöglichkeiten
Wie bereits Teil 1 dieses Workshops kurz geschildert hat, zeichnet sich Gentoo vor allem durch die Möglichkeit aus, sich für (fast) jedes System optimieren zu lassen. Die Einstellungen dazu nehmen Sie in Gentoo über die so genannten Use-Flags vor. Grundsätzlich unterscheidet man zwischen globalen und lokalen Use-Flags.
Wie der Name schon sagt, dienen die globalen Use-Flags systemweit zur Optimierung sämtlicher Programme. Lokale Use-Flags dagegen gelten nur für einzelne Programme. Eine Liste aller globalen Use-Flags hält die Datei /usr/portage/profiles/use.desc bereit. Des weiteren definiert Gentoo für zahlreiche Use-Flags eine Vorbelegung. Diese finden Sie in der Datei /etc/make.profile/make.defaults. Alle Standardeinstellungen können Sie bei Bedarf durch Hinzufügen oder Entfernen von Use-Flag-Schlüsselwörtern verändern. Die notwendigen Use-Variablen legen Sie in /etc/make.conf fest.
Um eine Variablen zu entfernen, setzen Sie einfach ein Minuszeichens davor, zum Beispiel: -gnome. Möchten Sie Use-Flags nur für bestimmte Programmpakete definieren, editieren Sie zu diesem Zweck die Datei /etc/portage/package.use. Dazu müssen Sie sowohl das entsprechende Programmpaket als auch das zu definierende Use-Flag angeben, zum Beispiel dev-php/php -java.
Um ein Use-Flag nur temporär für einen einzelnen Lauf von emerge zu deklarieren, setzen Sie es einfach vor die emerge-Anweisung:
USE="-java" emerge php
Wollen Sie sich die aktuelle Belegung der Use-Flags Ihres Systems ansehen, führen Sie einfach ein emerge info aus. Der Befehl liefert eine Ausgabe mit sämtlichen Informationen über Ihr System (verwendeter Compiler, Kernel-Version, Use-Flags, etc.). Ein Beispiel für eine solche Ausgabe zeigt Abbildung 2.
Daneben besteht auch die Möglichkeit, sich anzeigen zu lassen, welche Use-Flags für ein bestimmtes Programm gelten. Führen Sie dazu den folgenden Befehl aus:
emerge --pretend --verbose P↩ rogrammname
Noch aussagekräftiger fällt die Ausgabe mit Hilfe des Kommandos etcat uses Programmname. Beachten Sie aber, dass hierfür wieder das "Gentoolkit" installiert sein muss.



