Gentoo Linux (englische Aussprache [dʒentuː 'lɪnʊks]) ist eine quellbasierteLinux-Distribution für fortgeschritteneLinux-Benutzer, die ihr System individuell einrichten möchten. Voraussetzung dafür ist die Bereitschaft, sich mit den Abläufen eines Linux-Systems und der ausführlichen Dokumentation auseinanderzusetzen.Gentoo ist einWarenzeichen derGentoo Foundation, Inc., einerNon-Profit-Organisation.
Anfang Dezember 2010 trat dieGentoo Foundation, Inc. demOpen Invention Network bei, das sich für die freie Verfügbarkeit von Softwarepatenten einsetzt. Im europäischen Raum ist der deutscheFörderverein Gentoo e. V. der Inhaber derMarkenrechte. Der Name „Gentoo“ wurde nach einer besonders schnell schwimmenden Pinguinart, demEselspinguin (englischgentoo penguin), gewählt, wobei der Name auf das offizielle MaskottchenTux des freien Betriebssystemkerns Linux, das einen Pinguin darstellt, Bezug nimmt.
Gründer und langjähriger Chef des Gentoo-Projekts war der US-amerikanische Programmierer Daniel Robbins. 1999 begann er mit der Entwicklung einer eigenen Linux-Distribution, die er zunächstEnoch nannte. Der Namenswechsel fand am 4. Oktober 1999 mit der Registrierung der Domaingentoo.org statt. Dieses Datum wird heute offiziell als „Geburtstag“ Gentoos aufgefasst.[1] Im Jahr 2004 verließ Robbins das Projekt.[2] Seit seinem Weggang wird Gentoo von demKuratorium (Board of Trustees) der Gentoo Foundation geleitet. Entscheidungen über technische Aspekte und Richtlinien trifft ein siebenköpfigerCouncil. Trustees und Council werden von den Mitgliedern der „Foundation“ bzw. den aktiven Entwicklern gewählt.
Gentoo unterscheidet sich in mehreren Punkten entscheidend von vielen anderen Linux-Distributionen. So ist Gentoo eine quellbasierte Distribution, bei der in der Regel alle Pakete vor der Installation übersetzt werden. Der dafür nötige Zeit- und Rechenaufwand, aber auch der so mögliche tiefe Eingriff in Konfigurations- und Optimierungsmöglichkeiten ist bei auf binären Paketen basierten Distributionen nicht gegeben.[3] Gleichwohl lassen sich auch wie bei letzteren vorkompilierte Programme nutzen.Ebenso gibt es nur wenig automatisierte Abläufe, was eine hohe Kontrolle des Systems ermöglicht, die aber auch entsprechende Kenntnisse voraussetzt.
Die Tatsache, dass die Arbeitsweise des Gentoo-Projekts nicht versionsorientiert ist, führt zu einem kontinuierlichen Aktualisieren des Systems, im Gegensatz zu einer stufenartigen Aktualisierung, wie dies bei den meisten klassischen Distributionen der Fall ist. Auf diesem Weg ergeben sich Migrationsprobleme immer nur für einzelne Programmpakete, nicht aber für eine ganze Distributionsversion. Auch kann der Nutzer so über jede verwendete Version eines Programms selbst entscheiden.
Hinzu kommt, dass mit vergleichsweise einfachen Mitteln eigene Distributionen auf der Basis von Gentoo erstellt und distribuiert werden können, um zum Beispiel für Spezialanwendungen wieCluster oder Rechnerpools zu genügen. Gentoo kann alsDistributionsbaukasten eingesetzt werden. Zum Beispiel basiertChromeOS auf Gentoo. Gentoo wurde benutzt, um Linux auf Macintosh-Rechner mit einer Intel-CPU zu portieren.[4]
Bei Gentoo Linux gibt es keine Versionen im eigentlichen Sinn, sondern Veröffentlichungen (engl.Release) eines Entwicklungsstandes (engl.Snapshot), sogenannteRolling Releases, auf dessen Basis unter anderem diestage-Archive undLive-Systeme erstellt werden. Größere Neuerungen werden in Form vonprofiles (engl. für „Profil“) verfügbar gemacht.
Bei einem installierten Gentoo-System gehen die einzelnen Versionen bei regelmäßigem Aktualisieren desPortage-Trees ohne größere Umstellungen ineinander über. Die Version des Basissystems (engl.base system) entspricht der des Paketssys-apps/baselayout und kann auch der Datei/etc/gentoo-release entnommen werden. Es ist, neben der Auswahl des Profils, die Grundlage des Betriebssystems und als die eigentliche Version einer Gentoo-Installation anzusehen. Das Basissystem unterliegt jedoch anderen Freigabezyklen als die Gesamt-Distribution und deren Veröffentlichung alsstages beziehungsweise als Live-System, die seit 20. Dezember 2008 in etwa wöchentlich aktualisiert werden.[5] Seit 2024 bietet Gentoo Linux auch Binärpakete, u. a. um die Installation zu erleichtern.[6] Diese sind allerdings nur für die Architekturen x86-64-v1 undx86-64-v3[7] verfügbar.
Unterenglischprofiles versteht Gentoo einen Satz vorgefertigter Konfigurationsdateien von Portage, die u. a. eine Auswahl an Paketen für das Basissystem (@system) und die USE-Flags festlegen. Es gibt eine Reihe vom Projekt mitgelieferte Profile, die die Möglichkeit u. a. der Auswahl des Desktops (Gnome oder KDE Plasma), ob mitsystemd oder einen der anderen (klassischen)init-Dienste (etwaOpenRC), oder obmerged-usr oder nicht (wobei seit Mitte 2022split-usr mit systemd nicht mehr unterstützt wird[8]), bieten. Für das23.0profile z. B. gibt es auf deramd64-Architektur folgende Desktop-Profile:
Auch gehärtete Profile (englischhardened) sind verfügbar, allerdings nicht als Desktop-Profile. Durch deren Auswahl bei der Installation wird das Basissystem festgelegt. Profile können auch vom Benutzer selbst erstellt und verwaltet werden. Ein Wechsel des Profils ist jedoch meist nur durch Neu-Kompilierung desworld set möglich (@world), bei dem alle Pakete neu kompiliert bzw. installiert werden (müssen).
Portage ist diePaketverwaltung von Gentoo Linux und ermöglicht den automatischen Bau der einzelnen Pakete aus ihrenQuelltexten. Dabei stützt es sich auf den sogenanntenPortage tree, einen Verzeichnisbaum, der sich normalerweise unter/var/db/repos/gentoo/ befindet und Informationen zu jedem einzelnen Paket in Form von sogenanntenebuild-Skripten bereitstellt. Diese Skripte steuern den gesamten Ablauf: Herunterladen der Quelltexte, Verifikation der Unverfälschtheit der Dateien mit Hilfe von Prüfsummen, Anwendung von distributionsspezifischenPatches sowie die Berücksichtigung der sogenanntenUSE-Flags,[9] um letztendlich das Paket in einerSandbox zukompilieren und dann zu installieren. Dabei werden etwaige Abhängigkeiten von anderen Paketen beachtet und diese, falls nötig, ebenfalls aktualisiert oder neu installiert. Der Portage-Baum wird mit Hilfe vonrsync auf den aktuellen Stand der Distribution gebracht.
Portage zeigt die zu aktualisierenden Pakete inkl. USE-Flags
Portage wählt die jeweils aktuelle stabile oder, je nach Konfiguration, die aktuelle instabile Version für die jeweilige Prozessorarchitektur aus. Je nach Paket gibt es noch weitere maskierte Versionen, von deren Installation aber außer zu Entwicklungs- und Testzwecken abgesehen werden sollte. Darunter fallen z. B. die sogenanntenLive-Versionen von Paketen, die direkt den aktuellen Entwicklungsstand aus demVersionsverwaltungssystem der jeweiligen Software beziehen. Mittels Konfigurationsdateien ist es möglich, einzelne Pakete oder einzelne Versionen von Paketen zu maskieren, um die Installation eines Pakets bzw. einer Version zu verbieten, oder sie zu demaskieren, um eine aktuellere Version als vorgesehen zu installieren.
Die USE-Flags bilden eine Abstraktionsschicht für die Konfiguration der Funktionalität der einzelnen Pakete für Optionen, die sich nur während des Kompiliervorgangs aktivieren lassen. So bestimmt beispielsweise das USE-Flagbluetooth den Einbau derBluetoothunterstützung für den Fall, dass das jeweilige Paket diese Unterstützung mitbringt. Eine Funktionalität lässt sich auch mittels USE-Flag abschalten, im Beispiel durch-bluetooth. Der Vorteil einer solchen Möglichkeit liegt darin, dass die kompilierten Programme genau auf die Bedürfnisse des Anwenders angepasst sind, wodurch diese weniger Speicher benötigen und die Installation von nur wirklich notwendigen Bibliotheken voraussetzt. Die Implementierung des An- und Abschaltens von Funktionen kann dabei vom „ebuild“-Skript individuell umgesetzt werden. In der Regel geschieht dies mit Hilfe vonConfigure-Optionen oder Patches. Die USE-Flags lassen sich mit Hilfe von Konfigurationsdateien sowohl zentral für das gesamte System als auch speziell für einzelne Pakete konfigurieren.
Möchte man Pakete installieren, welche sich nicht im offiziellen Portage-Tree befinden, so gibt es die Möglichkeit, sogenannteOverlays zu nutzen. Diese werden von Gentoo offiziell nicht unterstützt, bieten aber oft eine größere Auswahl an Software oder aktuellere Versionen. Viele der Overlays beinhalten Pakete, die dort vom Entwickler getestet werden, bevor sie in den offiziellen Baum aufgenommen werden.
Gentoo besitzt im Gegensatz zu anderen Linux-Distributionen keinen eigenen Installer. Stattdessen führt der Benutzer die Installation selbst mit einer Serie von Shell-Befehlen aus einem anderen laufenden System heraus durch. Zu diesem Zweck bietet das Gentoo-Projekt spezielle Live-Images an, die wöchentlich aktualisiert werden; prinzipiell können jedoch beliebige Linux-Systeme dafür verwendet werden, egal, ob fest installiert oder von Live-Medien gebootet.
Zur Installation wird ein vom Gentoo-Projekt bereitgestellter sogenannterstage3-Tarball an den Zielort entpackt. Dieser enthält ein Grundsystem, einschließlich der für den weiteren Installationsprozess benötigten Werkzeuge, wie z. B. einerToolchain. Die weiteren Installationsarbeiten finden mittelschroot innerhalb dieses Verzeichnisbaums statt. Auf der Gentoo-Website gibt es Installationshandbücher, die Hinweise über die notwendigen Installationsschritte geben. Dem Benutzer werden dabei der Projektphilosophie entsprechend alle Freiheiten gelassen; so kann er beispielsweise selbst entscheiden, welchesyslog- undcron-Implementierung und welchenMail Transfer Agent er nutzen möchte.
Früher standen neben denstage3-Archiven auchstage1- undstage2-Archive für die Installation zur Verfügung. Diese sind Zwischenprodukte des Prozesses, mit demstage3s erzeugt werden. Ihr Anwendungszweck bestand im Erstellen von besonders stark optimierten Systemen. Da inzwischen keine offiziellenstage1- undstage2-Archive mehr zum Herunterladen angeboten werden, verwendet man nun auch für diesen Zweck diestage3-Archive.[10]
Gunnar Wrobel:Gentoo Linux – Installation – Konfiguration – Administration. Open Source Press, München 2008,ISBN 3-937514-34-1 (seit2. Dezember 2009 unter derCreative-Commons-Lizenz kostenlos erhältlich:FOSdoc; PDF; 2,1 MB).
Tobias Scherbaum:Gentoo Linux – Die Metadistribution. 2. Auflage. mitp, Heidelberg 2008,ISBN 3-8266-5941-4.