Gentoo ist eine LinuxDistribution
Aktuelle Version ist Gentoo Linux 2008.0 siehe auch http://www.pro-linux.de/news/2008/12894.html
Gentoo benutzt ein den BSD Ports ähnliches System namens Portage. Portage ist ein Paketmanagement-System, dass grosse Flexibilität während der Installation und Wartung von Software auf einem Gentoo System bietet. Es bietet Optionen zur Compilezeit (durch USE Flags, bedingte Abhängigkeiten, "Fake" Installationen, sichere Installation (durch eine Sandbox) und Deinstallation von Software, Systemprofilen, Schutz von Konfigurationsdateien neben zahlreichen weiteren Features. ( Quelle - Creative Commons - Attribution / Share Alike License )
Quellcode-basierende Distribution (ähnlich LFS)
gutes Paketmanagement, genannt Portage (in Anlehnung an BSD Ports)
- Sehr aktuelle Pakete, unterteilt in "stable" und "testing"
- automatische Auflösung von Abhängigkeiten, allerdings nur "vorwärts". Reverse Dependencies werden noch nicht unterstützt.
- Jedoch beinhaltet das Paket "Gentoolkit" ein Programm namens revdep-rebuild das fuer das rückwärtige Auflösen von Abhängigkeiten da ist.
- Configfile-Management
benutzerdefinierte Compiler-Einstellungen, z. B. (-O3 -march=i686 oder athlon)
- dadurch hohe Ausführungsgeschwindigkeit der Selbstkompilierten Binaries.
- Bei zu aggressiven Compiler-Flags kann allerdings auch das Gegenteil vorkommen: Größere, langsamere oder instabile Binärdateien.
- Der Benutzer kann entscheiden welche Features in die Pakete einkompiliert werden.
- Dadurch werden die Binärdateien kleiner und beinhalten nur das was man gerade braucht.
- Dies äussert sich zum Beispiel beim MPlayer sehr deutlich, wo auf Wunsch dutzende verschiedener Codecs einkompiliert oder ausgelassen werden können
- hohe Stabilität, da Kompilieren auf Basis installierter Bibliotheken
- GCC3.x-Unterstützung
- Unterstützung von nicht-x86-Plattformen, die vom GCC unterstützt werden
- sehr aktuelle Programmversionen
- sehr detaillierte Dokumentation
Es gibt auch einen DateiManager, der gentoo heißt: http://www.obsession.se/gentoo/.
Inhaltsverzeichnis
Fragen + Antworten
Frage: Stimmt es, das eine Quellcode-Distribution den Vorteil hat, dass sie während der Installation optimal auf den Rechner abgestimmt wird, wohingegen vorkompilierte Distributionen auf einem kleinsten gemeinsamen Nenner aufsetzen müssen?
- Im Prinzip ja. Die Optimierung kriegst Du bei solchen Distributionen natürlich optimal. Allerdings haben Leute bei Debian herausgefunden, das der Geschwindigkeitsunterschied optimierten Codes oft gar nicht so zu Buche schlägt. Insofern: Für den Alltagsuser stellt sich die Frage, ob er die vielen Taktzyklen, die dafür draufgehen, jemals wieder einspart - je nach Rechner und Installationsumfang kann sowas durchaus Stunden oder Tage dauern. Dies mag aber im einzelnen bei manchen Programmen anders aussehen. Bei anderen Distribution kann man aber notfalls auch den mitgelieferten Sourcecode selber kompilieren.
Optimal abgestimmt heißt aber auch, dass ich nur die Funktionalität mitkompiliere, die ich will. So kann man beispielsweise sein System rein auf GTK und GNOME optimieren, und jegliches KDE damit außen vor lassen. Oder alle Programme, die ipv6 unterstützen, automatisch mit entsprechender Unterstützung kompilieren. --JoergHoh
Hier kann es sich durchaus lohnen den ccache zu installieren und ein oder zwei GByte als cache zu "opfern". Vor allem bei ~x86 (oder pendants auf anderen Plattformen), wo man diesselbe Version eines Programms in verschiedenen Gentoo-Releaseständen mehrmals kompiliert spart das Zeit. -- -- RomanKreisel 2004-04-05 20:10:27
Hat man mehrere Leistungsfähige Rechner im Netzwerk empfiehlt es sich außerdem distcc einzusetzen. Der Host übergibt dann Teile des zu übersetzenden Codes an seine Clients. Das beschleunigt den kompiliervorgang deutlich. -- DennisSänger 2004-06-18 10:11:00
Gentoo realisiert diese Optimierung durch Verwendung der sogenannten USE-Flags. Die USE-Flags sind eine Reihe von Schlüsselwörtern nach denen Portage bestimmt welche Funktionalitäten in das Programm kompiliert werden sollen. Die USE-Flags werden über die Variable USE in der Datei /etc/make.conf festgelegt. Eine detailierte Beschreibung der USE-Flags findet sich in der Gentoo Linux Dokumentation. -- DennisSänger 2004-06-18 10:20:00
- Ja, denn was nützt eine binäre x86-Distribution für einen PPC oder Sparc64. Das ist natürlich seltener im Consumer-Bereich - dennoch fein, die Möglichkeit zur plattform-übergreifenden Interoperabilität so komfortabel zur Verfügung zu haben! Für den amd64 konnte auf diesem Wege sehr schnell ein großes Spektrum an optimierter Software aus dem Bestand erzeugt werden.
Frage: Gibt es noch andere Quellcode-Distributionen ?
Es gibt noch Sorcerer (siehe LinuxDistribution) und natürlich LFS. Bei BSD-Systemen hat man das Vorbild von Gentoos Portages, nämlich das BSD-Ports-System. Im Gegensatz zu Linux bestehen die BSDs aus einem zusammen gehörigen Basissystem und den Ports für externe Software. Nach der Installation des Basissystems kann man auch dessen Quellen mit installieren und mit dem berühmten make world (FreeBSD) bzw. make build (OpenBSD, NetBSD) neu kompilieren. -- BennySiegert 2002-07-18 14:09:29
Es gibt noch ein Sorcerer Derivat namens Source Mage: http://en.wikipedia.org/wiki/Source_Mage_GNU/Linux
Diskussion
Ich habe inzwischen von verschiedenen Projekten (unter anderem KDE) gehört, dass sie Bugs, die im Zusammenhang mit gentoo auftreten, gar nicht mehr beachten (oder mit "You're using gentoo" als Begründung schliesen), als Grund werden oftmals die Verwendung zu extremer Compileroptionen ("-O3") angegeben, womit dann nicht immer klar ist, ob der Fehler im entsprechende Sourcecode oder in zu heftigen Optimierungen/Fehler im verwendeten Compiler herrührt. --JoergHoh
Der Programmierer wird künftig angeben müssen, mit welchen Compile-Optionen und welchen Software-Versionen er gearbeitet hat - die Nutzer von OpenSource und Gentoo werden schnell ein Gespür dafür bekommen, wo man besser aufhören sollte mit den Experimenten. Die Dokumentation von Gentoo weist an vielen Stellen ausdrücklich darauf hin, wie man es am besten macht. Bei Software, für die bekannt ist, dass sie nur mit bestimmten Optionen kompilierbar ist, sind diese in der Konfiguration fest eingestellt. Nicht zuletzt kann man ja auch noch den Entwickler auffordern, die Optionen zu nennen, die er für stabil hält - falls er sie noch nicht genannt hat. Der Entwickler, der pauschal behauptet, dass es an Gentoo liegt, sollte allerdings auch bedenken, dass ich auch auf jeder anderen Distribution nach Belieben Source-Pakete auspacken und dann nach der Methode ./configure -opts && make && make install mitsamt Compiler-Flags vorgehen kann.--MartinMay
Zusätzlich noch die kompletten Useflags ... Ich seh halt das Problem, dass bei den Binärdistributionen der Package-Maintainer für das korrekte Compilieren der Pakete zuständig ist. Und dieser kennt sich im Normalfall sowohl mit der Distribution als auch dem Paket an sich aus und kann entsprechend qualifiziert mit dem Upstream kommunizieren. Bei gentoo bleibt dieser Part am User hängen. Schwierig wird es, wenn die Anwendung viele externe Bibliotheken einbindet und man nicht direkt den Verursacher lokalisieren kann. Natürlich gibt es ein Bugtracking-System auch für gentoo, aber da schlagen sich sehr viele Bugs mit Buildproblemen rum, die sich nicht vernünftig reproduzieren lassen (wiederum ein Problem: ein bestimmter Bug lässt sich nur mit exakt gleichen Einstellungen reproduzieren, was allerdings schon daran scheitern kann, dass der Entwickler mit "k7" seinen gcc optimieren lässt, der Anwender mit "pentium4"; vom Zeitaufwand, alle Abhängigkeiten von beispielsweise Apache mit einem bestimmten Satz an Useflags und Compilerflags zu bauen, mal ganz zu schweigen) --JoergHoh
Links
Gentoo Homepage: http://www.gentoo.org/
Forum (mehrsprachig): http://forums.gentoo.org
Deutsches Portal: http://www.gentoo.de/
Installationsanleitung (x86): http://www.gentoo.org/doc/build.html
Deutsche Anpassung: http://gentoo-deutsch.berlios.de/
Deutsche Gentoo Community http://www.gentooforum.de/
Das deutsch-sprachige Gentoo-Wiki: http://de.gentoo-wiki.com/Hauptseite
Englisch-sprachiges Wiki: http://www.gentoo-wiki.com/
Online Verzeichnis des PORTAGE Baumes mit umgekehrten Abhängigkeiten: http://www.gentoo-portage.com
Gentoo Server Project Wiki: http://www.subverted.net/wakka/
Pakete installieren und deinstallieren und Dependency-Behandlung