Gentoo-Allgemeines

tagged Linux

Dies ist nicht die offizielle Gentoo-Dokumentation und auch nicht Bestandteil des offiziellen Gentoo-Projekts!

Gentoo ist eine Linux-Distribution, bei der im Gegensatz zu Ubuntu, OpenSuse, Debian und Fedora Core alle Programme direkt aus den Quellen kompiliert werden. Dies bedeutet, daß man sein System sehr flexibel konfigurieren kann und nicht auf die Abhängigkeiten von vorkompilierten Paketen angewiesen ist. Durch die Optimierung auf die eingesetzte Hardware ist es in der Regel auch schneller. Da bei vielen anderen Distris kleine Programme sowieso selbst kompiliert werden müssen, diese dann aber nicht im spezifischen Paketmanager registriert und schlecht deinstallierbar sind, ist dies keine große Umstellung. Ich bin auf Gentoo Linux während der Suche nach einer guten 64-Bit-Distribution gestossen. Aufgrund der großen Flexibilität müssen viele Abhängigkeiten selbst beachtet werden, was mit einigertechnischen Einarbeitung verbunden ist, aber die Dokumentation für diese Distribution ist einfach phänomenal. Der Umstieg lohnt sich: die Transcodierung des Films 'Full Metal Jacket' (aufgenommen bei Arte mit Myth-TV) in das MPEG4-Format dauerte beispielsweise unter Gentoo (AMD64) 56 Minuten, bei OpenSUSE 10.2 mit 141 Minuten mehr als das doppelte!

Die Installation der Programme erfolgt mittels des Kommandozeilen-Tools emerge oder grafischen Oberflächen wie z.B. Porthole. Die Tools werten die Liste zur Verfügung stehender Programme aus, diese werden vom Paketmanager Portage verwaltet. Es empfiehlt sich, die Liste regelmäßig durch Synchronisation mit einem der Gentoo-Sync-Server auf den neuesten Stand zu bringen. Dabei werden die sogenannten Ebuilds - kleine Dateien, welche Download-Informationen, Abhängigkeiten und mögliche Kompilieroptionen für das jeweilige Programm enthalten - lokal gespeichert (in /usr/portage, Größe ca. 300 MB).

Portage

Bei der Installation eines Programmes wird das entprechende Ebuild ausgewertet, der Quellcode heruntergeladen (im Verzeichnis /usr/portage/distfiles), das Paket temporär entpackt, kompiliert (in /var/tmp/portage) und installiert. Sollte die Festplatte mal wieder voll sein, kann man Quellcode-Pakete und temporäre Dateien löschen (wachsen schnell auf mehrere hundert Megabyte an). Sollte das Programm (unter Berücksichtigung der Kompilieroptionen) zusätzliche Abhängigkeiten haben, werden diese Programme ebenfalls installiert. Damit nicht jedesmal alle Optionen (über sogenannte USE-Flags) manuell angegeben werden müssen, werden globale Kompilieroptionen in /etc/make.conf hinterlegt. Diese Datei ist das langfristige Steuerzentrum des Systems, hier werden abhängig vom geplanten Einsatz wichtige Variablen wie Architektur (32- oder 64-Bit), die nächstgelegenen Gentoo-Mirrors, systemweite Sprache und die häufigsten Kompilieroptionen eingestellt. Für ein schlankes, schnelles System sollte man sich frühzeitig für einen Desktop (Gnome/KDE), zu verwendende Audio-/Video-/Bild-Codecs und Programmierschnittstellen entscheiden, das Flag (z.B. mit USE="+kde -gnome") in make.conf hinterlegen und die grundlegenden Programme daraufhin installieren.

Angezeigt werden daraufhin jeweils nur für die jeweilige Architektur und nur für den Produktionseinsatz freigegebene Programme, optional können auch Programme aus dem Testzweig installiert werden.

Emerge/Porthole

Die Programme müssen für Systemveränderungen als Root ausgeführt werden, Suchfunktionen stehen auch als User zur Verfügung. Installationen dauern aufgrund des Komiliervorgangs gerade bei größeren Programmen (OpenOffice, Thunderbird) recht lange, alternativ stehen dann vorkompilierte Binärpakete zur Verfügung. Die verwendeten Kompilier-Optionen und Versionen werden lokal gespeichert. Bei einem Upgrade wird die alte Version deinstalliert und die neue installiert. Konfigurationsdateien in /etc oder im Homeverzeichnis bleiben bei einer Deinstallation meist erhalten, hier muss manuell bereinigt werden.

revdep-rebuild

Werden systemweite Bibliotheken aktualisiert, müssen die abhängigen Pakete durch "revdep-rebuild" ebenfalls aktualisiert werden. Wird der Vorgang aufgrund unerwünschter Kompilationsvorschläge mit Strg+C abgebrochen, bleiben die temporären Initialisierungs-Dateien in /root erhalten. Diese müssen vor einem erneuten Lauf gelöscht werden.

Portage-Overlay

Manchmal möchte man trotz hoher Instabilität nicht zur Verfügung stehende Programme installieren, die nicht im offiziellen Portage-Tree sind. Ein typisches Beispiel dafür ist der stylische Fenstermanager Enlightenment (E17). Dafür installiert man layman und registriert es in der make.conf ("source /usr/portage/local/layman/make.conf"). Mit dem layman-Tool installiert man dann die benötigten Ebuild-Trees bzw. synchronisiert sie auf den aktuellsten Stand. Danach fährt man für die Programminstallation mit emerge oder Porthole fort.