Zum Inhalt springen

Gentoo Linux

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. September 2006 um 20:53 Uhr durch 84.174.101.222 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Gentoo Linux

Logo des Gentoo-Projektes
Entwickler Gentoo Foundation, Inc.
Lizenz(en) GPL
Akt. Version 2006.1 (30. August 2006)
Abstammung \ Linux
  \ Gentoo Linux
Architektur(en) alpha, AMD64, hppa, IA-64, ppc, SPARC, x86, x86-64, MIPS-Architektur
Sonstiges Preis: kostenlos
www.gentoo.org

Gentoo Linux [ʤentuː 'lɪnʊks] ist eine quellbasierte Linux-Meta-Distribution für fortgeschrittene Benutzer, die ihr System komplett individuell einrichten wollen. Jeder Benutzer hat die Möglichkeit, das System stark an seine Bedürfnisse anzupassen, dazu sollte man fundiertes Wissen über seine Hardware und über Linux mitbringen oder zumindest entsprechend Zeit, um die ausführliche Dokumentation zu lesen. Gentoo ist ein Warenzeichen der Gentoo Foundation, Inc., einer Non Profit-Organisation. In Deutschland ist der Förderverein Gentoo e.V. der Inhaber der Markenrechte.

Name

Die Distribution hat ihren Namen von einer besonders schnellen, wenn auch kleinen Pinguin-Art, dem Eselspinguin. Der Gründer und langjährige Chef des Gentoo-Projekts ist Daniel Robbins. 2004 hat er das Projekt verlassen, um bei Microsoft zu arbeiten, hat aber bereits am 16. Januar 2006 das Redmonder Softwareunternehmen wieder verlassen. Seit dem Weggang von Robbins wird Gentoo von einem Board of Trustees der Gentoo Foundation geleitet, deren Mitglieder von und aus den Entwicklern gewählt werden.

Kompilierstufen von Gentoo (Stages)

Die Distribution benutzt nicht wie die meisten anderen Distributionen vorkompilierte Programmpakete, sondern Quelltexte, die durch das distributionseigene Paketmanagement kompiliert werden. Sehr große Programme sind auch binär zu erhalten. Hierzu zählen u. a. OpenOffice.org und Mozilla. Anfangs konnte man nur die Grundelemente des Basissystem (Stage 2) oder das ganze Basissystem (Stage 3) optional fertig kompiliert installieren, aber seit 2004 werden beim Release auch CDs mit binären Paketen wie z.B. KDE vertrieben (GRP), die eine zeitraubende Erstinstallation vereinfachen. Stage 1 beinhaltet zudem das so genannte Bootstrapping, also den Aufbau eines Minimal- bzw. Basissystems, das zum weiteren Bau des Systems benötigt wird.

Gentoo Linux eignet sich hervorragend für Personen, die möglichst viel Kontrolle über ihr System erhalten möchten. Durch die Nutzung einer Stage-1-Installation erhält man als Benutzer ein System, das perfekt an die eigene Hardware und Bedürfnisse angepasst ist. Allerdings wird im Installationshandbuch nur noch auf eine Installation mittels Stage 3 verwiesen. Bei Stage-1- oder Stage-2-Installationen geschah es immer häufiger, dass Benutzer durch unsachgemäße Anpassungen oder zu starker Optimierung ihr System unbrauchbar installiert haben. Eine Installation von Stage 3 schließt nahezu aus, dass sich Fehler im Basissystem befinden. Erfahrene Benutzer können jedoch weiterhin eine Installation von Stage 1 oder Stage 2 vornehmen, worauf im Installationshandbuch verwiesen wird.

Stage-4-Installationen sind geplant, die Tarballs die unter diesem Namen angeboten werden, sollen auch schon viele vorkompilierte Pakete enthalten und die Installation soll in weniger Schritten durchgeführt werden, um Anfängern den Einstieg zu ermöglichen. Die Realisierung als offizielles Gentoo Projekt ist jedoch noch fraglich, da die Projektleiter nicht über die Veröffentlichung dieses Plans informiert wurden.

Installationsmethoden

Die Philosophie hinter Gentoo, dem Benutzer alle Freiheiten zu lassen, wird schon bei der Wahl der Installationsmethode klar. Unabhängig von der Verwendung der Stages (wie bereits beschrieben) kann der Benutzer auch hier von Anfang an entscheiden, auf welches Installationsmedium er zugreifen will, bzw. wie die Installation bewerkstelligt werden soll.

Die älteste Methode ist es, von einer der Gentoo Installations-CDs zu booten, die benötigten Stages und den Portage-Snapshot herunterzuladen und durch die Eingabe der im Handbuch beschriebenden Befehle in einer Unix-Shell das Gentoo-System selbst zu bauen. Da es sich bei den Gentoo-Installations-CDs um LiveCDs, die alle Werkzeuge zur Installation und Konfiguration enthalten, handelt, kann man diese Methode mit jedem aktuellen Live-System wie z.B. Knoppix durchführen. Ebenso ist es möglich, Gentoo auf diese Weise aus einem bestehenden Linux-System zu installieren. Hierbei wird die Installation direkt über das Internet durchgeführt. Dies hat den Vorteil, dass die Pakete sehr aktuell sind.

Sollte man während der Installation nicht über eine Internetverbindung verfügen, hat man die Möglichkeit, mit einer der Universal-Install-CD und einer Package-CD die Stage-Archive, den Portage-Snapshot und die Programme von CD aus zu installieren. Allerdings sind die meist nach kurzer Zeit nicht mehr aktuell und man hat nur die Möglichkeit, die Programme zu installieren, die sich auch wirklich auf den CDs befinden. Sollte man sich für eine dieser Methoden entscheiden, empfiehlt es sich, in eines der älteren Handbücher zu schauen, da diese Art der Installation in den aktuellen Handbüchern nicht mehr beschrieben wird.

Mit Gentoo 2006.0 wird eine weitere Installationsmethode offiziell unterstützt. Hierbei handelt es sich um den erstmals bei Gentoo 2005.1 für x86 verwendeten Gentoo-Linux-Installer (GLI). Dies ist ein in Python geschriebener Installer der in zwei Versionen vorhanden ist. Zum einen gibt es den komplett grafischen Installer der GTK+ verwendet, zusätzlich gibt es noch einen Textbasierten, der kein Xorg benötigt. Allerdings ist die Bedienung sehr verschieden.

Der Installer soll die Installation vereinfachen. Auch hier hat man – wie bei der altbekannten Methode – die Möglichkeit, komplett auszuwählen, welche Stages etc. verwendet werden sollen. Die aktuellen Handbücher wurden bereits komplett an diese neuen Installationsmethoden angepasst. Zur Zeit wird allerdings nur x86 offiziell unterstützt. Zwar gibt es schon eine Version für AMD64-Benutzer, doch befindet diese sich zur Zeit noch in der Testphase.

Will man den Installer verwenden, so sollte man sich die Gentoo 200x.x LiveCD herunterladen. Hierbei handelt es sich um eine etwas über 700MB große LiveCD die einen kompletten GNOME-Desktop mitbringt. Alternativ existiert die Möglichkeit, den Installer auf einem vorhandenden Gentoo-System zu installieren, oder eine Live-Distribution wie Sabayon Linux zu nutzen, die den Installer ebenso mitbringt.

Paketverwaltung

Gentoo hat ein ports-ähnliches Paketverwaltungssystem namens Portage, das mit Hilfe des Tools emerge gesteuert wird. Für ein Software-Paket sind Abhängigkeiten, Downloadort der Quellen und der Ablauf der Kompilierung in sogenannten ebuild-Skripten festgelegt. Anhand dieser Informationen ist es Portage möglich, Abhängigkeiten selbständig aufzulösen, Updates durchzuführen und vieles mehr. Spezielle optionale Funktionen eines Paketes werden über USE-Flags gesteuert, die global oder pro Paket festgelegt werden.

Portage

Portage gleicht die lokalen Daten ab

Zuerst wird mittels emerge --sync über das Internet der lokale Portage tree auf der Festplatte aktualisiert. Dieser Tree enthält die komplette Sammlung der ebuild-Skripten.

Grundsätzlich läuft eine Softwareinstallation mit Portage wie folgt ab:

Der Benutzer muss als root auf der Kommandozeile emerge paketname (z. B. emerge apache) eintippen. Portage sucht daraufhin das entsprechende ebuild im Portage-Tree und überprüft, ob die Software andere Pakete benötigt, um zu funktionieren. Sollte eine solche Abhängigkeit bestehen, wird sie aufgelöst, indem die benötigten Pakete installiert werden. Ist das erledigt, lädt Portage den Quelltext des Programms als komprimierte Datei vom Server und stellt mithilfe einer MD5-Prüfsumme sicher, dass die Datei nicht beschädigt oder verfälscht ist. Anschließend wird sie temporär entpackt und das Makefile erstellt, das zur Kompilierung notwendig ist. Der Quelltext wird nun in einer Sandbox kompiliert. Der Compiler ist dabei in der Lage, das Paket auf die benutzte Hardware zu optimieren. War die Kompilierung erfolgreich, werden Dokumentation (Manpages etc.), Konfigurationsdateien und natürlich die entstandenen Binärdateien in die entsprechenden Verzeichnisse auf dem System kopiert. Die Software ist nun installiert.

Mit Hilfe des Befehls emerge --unmerge paketname lässt sich unerwünschte Software auch wieder problemlos aus dem System entfernen. Nur die zu der Software gehörenden und vom Benutzer geänderten Konfigurationsdateien bleiben erhalten. Bei einer erneuten Installation kann der Administrator explizit auswählen, welche Teile der Originalkonfigurationsdateien bzw. der eigenen benutzt werden sollen.

Leider werden beim Löschen keine von dem Paket abhängige Pakete mit gelöscht, dies geht zum Beispiel mit:

emerge --pretend --unmerge PAKETNAME `equery depends PAKETNAME | grep --invert-match Searching`

Mit dem Befehl emerge --pretend --depclean erhält man eine Liste von Paketen, die von keinem anderen Paket mehr abhängen und nicht explizit installiert wurden. Durch die vielen Faktoren, die in diese Berechnung eingehen, ist die Warnung beim Start durchaus ernstzunehmen!

USE-Flags

Portage zeigt die zu aktualisierenden Pakete inkl. USE-Flags

Spezielle Funktionen, die nur während des Kompiliervorgangs in einem Paket aktiviert werden können, werden über USE-Flags an- bzw. abgeschaltet (festgelegt durch Abfragen im entsprechenden ebuild). So können Installationen schlanker bleiben, nur mit den Funktionen, die auch vom Anwender benötigt werden. Beispielsweise bedeutet ein globales USE-Flag xinerama, dass nach Möglichkeit mit Zweischirm-Unterstützung gearbeitet wird, −xinerama schaltet es grundsätzlich ab. Die USE-Flags können wenn sie oft verwendet werden, über die make.conf bestimmt werden (welche zu den wichtigsten Konfigurations-Dateien des Gentoo-Systems gehört). USE-Flags die nur für ein bestimmtes Paket verwendet werden sollen werden in die package.use eingetragen. Ein Beispiel hierzu wäre: dev-java/sun-jre-bin browserplugin nsplugin Hierbei wird Sun-Java mit dem dazugehörigen Plugin für verschiedende Browser installiert.

Portierungen

Gentoo ist unter diversen Architekturen lauffähig. Dazu zählen Alpha (wobei die Minimal-CD, wie auch die vieler anderer Distributionen, mit aboot z.B. auf der DEC Multia nicht startet, es gibt aber einen Workaround über MILO), AMD64, Itanium, MIPS, PA-RISC, PowerPC, SPARC, UltraSparc und x86.

Es gibt auch Projekte, bei welchen der Linux-Kernel durch einen FreeBSD- bzw. OpenBSD-Kernel ersetzt wurde. Zudem kann man unter Apples Mac OS X mittels Portage auf fast den gesamten Pool der eBuilds zugreifen, ohne das native Betriebssystem ersetzen zu müssen.

Live-CD erstellen

Gentoo bietet nicht nur Live-CDs an, sondern bietet mit Catalyst ein Tool, mit dem jeder Benutzer selber eine auf seine persönlichen Bedürfnisse abgestimmte CD erstellen kann. Neben den üblichen Vorteilen und Einsatzgebieten ist die offizielle Gentoo-Live-CD besonders zum Installieren der Distribution geeignet, da die CD nicht nur alle benötigten Anwendungen, sondern auch die Installations-Dokumentation und je nach CD auch die Stage-Tarballs enthält.

Um sich eine eigene Distribution auf einer Live-CD zu bauen, benötigt man aber nicht zwingend Catalyst. Es gibt noch eine schnellere Methode mit der man sich ein lauffähiges Linux von der CD selber bauen kann, welche ebenfalls mehr Kontrolle als die oben genannte Methode bietet. Allerdings sind dafür ein wenig Einarbeitung und die Bereitschaft, hin und wieder etwas zu experimentieren, notwendig. Genaueres unter http://de.gentoo-wiki.com/Eigene_LiveCD_bauen_ohne_catalyst und http://forums.gentoo.org/viewtopic-t-244837.html.

Versionen

Gentoo Linux
Version Datum
1.0 31. März 2002
1.1a 4. April 2002
1.2 5. Juni 2002
1.4 5. August 2003
2004.0 31. März 2004
2004.1 28. April 2004
2004.2 26. Juli 2004
2004.3 15. November 2004
2005.0 28. März 2005
2005.1 8. August 2005
2005.1-r1 21. November 2005
2006.0 27. Februar 2006
2006.1 30. August 2006

Bei Gentoo Linux handelt es sich nicht um Versionen im eigentlichen Sinne, sondern um Snapshots eines Entwicklungsstandes, auf dessen Basis zum Beispiel die stage-Archive und Live-CDs erstellt werden. Die einzelnen Versionen gehen bei einem regelmäßigen Update des Portage-Trees (emerge --sync) ohne größere Umstellungen ineinander über.

Unterschiede zu anderen Distributionen

Gentoo unterscheidet sich in mehreren Punkten entscheidend von vielen anderen Linux-Distributionen. So ist Gentoo eine quellenbasierte Distribution, bei der in der Regel alle Pakete vor der Installation übersetzt werden müssen. Der dafür nötige Zeit- und Rechenaufwand, aber auch der so mögliche tiefe Eingriff in Konfigurations- und Optimierungsmöglichkeiten ist bei anderen Distributionen nicht gegeben. 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 distributiert werden können, um zum Beispiel für Spezialanwendungen wie Cluster oder Rechnerpools zu genügen. Als Beispiel für die Flexibilität von Gentoo sei erwähnt, dass Gentoo benutzt wurde, um Linux auf Macintosh-Rechnern mit Intel CPU zu portieren. [1]

Gentoo-Derivate