Gentoo - Die Metadistribution

  • Ho Ho Ho, macht bei unserem Weihnachts-Gewinnspiel mit...

    Das Hardware-Inside Team wünscht euch viel Glück und Frohe Weihnachten

    hier klicken
  • Willkommen bei Hardware-Inside, Gast! In unseren Forenrichtlinien findest du alle Informationen zu unserer Community. Bei Registrierung wird auch kaum noch Werbung angezeigt...

OCmylife

Pinguinzüchter
19. 09. 2014
44
24
8
34
I. Vorwort
Hiermit möchte euch Gentoo vorstellen. Eine Distribution für fortgeschrittene Linux-nutzer die ihr System gerne komplett nach ihren Wünschen gestalten wollen. Hierfür bedarf es an Grundkenntnissen eines Linux-systems und man sollte keine Hemmungen vor der Kommandozeile haben, da die Grundinstallation, die Installation und Deinstallation der Programme, die Konfiguration des Linux-systems und das Updaten des Systems komplett übers Terminal geschieht. Das mag anfangs abschrecken, aber auf die Vorteile werde ich in diesem Review noch eingehen. Aber gehen wir erstmal darauf ein, was Gentoo von anderen Linux-distributionen abhebt:

II. Besonderheiten

Was unterscheidet Gentoo von einem Debian/Ubuntu, einem Archlinux oder einem Slackwarelinux?

Gentoo ist im Gegensatz zu den oben genannten und auch den meisten Anderen eine Source-distribution und setzt nicht auf Binärpakete. Das heißt, dass man den Source-code der Programme über den Paketmanager herunterlädt ihn nach seinen Wünschen anpassen kann und ihn danach installiert. Global wird dies über die make.conf Datei fest gelegt, um die Wichtigsten Änderungen auf das ganze System zu übertragen.
Als Beispiel: Man möchte Gnome und gtk Anwendungen nutzen, auf qt und kde aber komplett verzichten.
Paketspezifische Änderungen werden in der package.use Datei nieder geschrieben. Vielleicht braucht man bei XBMC ja einen Webserversupport oder einen Visualizer, den man ins Paket integrieren will? Aber keine Sorge: Hier gehe ich nachher noch ausführlicher ein, wie das funktioniert.
Bei einer Binärdistribution, wie die in der Überschrift genannten, wäre dies viel zu aufwendig und müsste von Hand bei jedem Paket einzeln gemacht werden. Das ist weder effizient, noch sinnvoll. Dort lebt man meist mit den Abhängigkeiten, die ein Programm hat. Kennen tut ihr das Phänomen auch von Windows. Wer erinnert sich nicht an net-framework, das für bestimmte Programme benötigt wird?

Wie ich auch schon sagte, funktioniert die Installation des Grundsystems komplett über die Kommandozeile. Im Endeffekt bootet ihr von einer Live-cd(die System-rescue-cd eignet sich dafür hervorragend), ladet das Grundsystem, entpackt dieses, passt dann einige Konfigurationsdateien an, und installiert euch dann alles nach Wunsch. Den Bootmanager, die Oberfläche, den Browser, den Musicplayer, den Videoplayer usw, DEN IHR AUCH NUTZEN WOLLT. Ob das nun Gnome, KDE, XFCE oder ein leichtgewichtiger Window-manager, wie Awesome, I3, xmonad oder DWM ist, bleibt euch überlassen. Ob ihr nun Rhythmbox, MPD oder Amarok als Musikplayer installiert haben wollt, ist eure Sache. Ob ihr nun Openrc, Sys-v-init, oder Systemd nutzen wollt, liegt ebenfalls in euren Händen. Hier passiert alles nach euren Wünschen.

III. Installation

Ich möchte an dieser Stelle nicht auf jeden einzelnen Punkt eingehen, da dieses sehr gut im Installation guide unter diesem Link erklärt ist, jedoch ein paar Tips geben, um einige Stolpersteine aus dem Weg zu räumen:

Gentoo Linux Dokumentation - Gentoo Linux AMD64 Handbuch ...

1. Nehmt euch viel Zeit, da die Installation nicht in 10 Minuten erledigt ist. Selbst mit Erfahrung, braucht man ein paar Stunden, da die Kompilierung der Programme ein wenig Zeit in Anspruch nimmt. Ich benötige auf einem 2500K mit 8GB Ram ungefähr 6 Stunden, bis ich ein Gnome oder KDE mit den Grundprogrammen, wie Browser, Musik-player und Video-player installiert habe, wo ich bei einem Archlinux nur 20-40 Min pro Installation benötige.
2. Wenn ihr die Installation mit der Systemrescue-cd durchführt dann startet eine minimalistische Oberfläche indem ihr "startx" in die Konsole eingebt. Dann habt ihr nebenher auch immer einen "echten" Browser zur Verfügung, falls ihr mal ins Stocken geratet. Der Konsolen-browser links ist dazu meiner Ansicht nach, nicht zu gebrauchen.
3. Einen Kernel komplett selbst zu konfigurieren ist zwar kein Hexenwerk, allerdings gerade für Gentoo-neulinge zu kompliziert und bringt so einige Stolpersteine mit. Nutzt dafür als "Anfänger" das Programm "genkernel", welches sich in den offiziellen Repositories befindet und euch einen einsatzfähigen Standardkernel baut, der mit eurem System laufen sollte. Später könnt ihr euch immer noch genauer mit dem Linuxkernel beschäftigen ;-)
4. Solltet ihr nachher Probleme haben, dass eure Oberfläche nicht booten will, erstellt im /etc/X11/xorg.conf.d Ordner eine Datei die X sagt, welchen Grafiktreiber ihr nutzen wollt, nachdem ihr ihn installiert habt.

Als Beispiel:
Section "Device"
Identifer "nvidia GTX 560 ti"
Driver "nvidia"
EndSection

->Google hilft euch hierbei aber, oder ihr könnt auch in diesem Thread fragen.
5. Sollte ein Programm mal nicht sauber kompilieren, sondern mit einer Fehlermeldung abbrechen, dann liest die log-datei, wie es vom Paketmanager Portage vorgeschlagen wird. Dann nach unten scrollen, bis ihr den Fehler gefunden habt und die Fehlermeldung mit dem Paketnamen bei Google eingeben. Meist hat jemand anderes das Problem schon gehabt und ihr findet so eine Lösung, falls ihr anders nicht weiter wisst.

Gleich geht es weiter ;-)

IV. Portage - Der Paketmanager

Nun möchte ich euch den Paketmanager etwas näher bringen, der euch die Installation, Deinstallation und das Update des Systems erleichtert.

1. Installation eines Paketes:
emerge -av Paketname
->Zur Erklärung dieser Zeile
*emerge heißt euer Paketmanager auf Kommandozeilenebene
* Das "a" steht für ask(solltet ihr das a weglassen, so installiert Portage sofort- ohne euch die Abhängigkeiten aufzuzeigen)
* Das "v" steht für verbose(auskunftsfreudig)

2. Deinstallation eines Pakets
emerge -C Paketname
-> * Das "C" steht für "unmerge"

3. Deinstallation der Abhängigkeiten
emerge --depclean
-> * Unter Gentoo werden sämtliche Abhängigkeiten, die man auf dem System nicht mehr benötigt mir depclean beseitigt

4. Suchen nach einem Paketnamen
emerge --search xxx
->Dadurch wird die Datenbank nach dem Wort durchsucht, welches man als xxx eingetragen hat. Das ist durchaus praktisch falls man mal nach einem Word-programm oder Browser sucht

5. Die Repository-liste auf den aktuellen Stand bringen
emerge --sync
-> Damit Portage weiß, welche neuen Versionen von Programmen verfügbar sind, müssen die Verweise auf den aktuellen Stand gebracht werden. Das passiert mit diesem Befehl.
Eine sehr gute Alternative ist eix-sync, welches ich aber im nächsten Kapitel noch genauer behandeln werde.

6. Updaten des Systems
emerge -uaDN @world
-> *
Das "u" teilt Portage mit, dass ihr updaten wollt
* "a" kennen wir bereits(ask)
* "D" steht für deep und sagt Portage, dass ihr auch die Abhängigkeiten auf den aktuellen Stand bringen wollt.
* "N" steht für NewUse und reicht an Portage weiter, dass auch eure neuen Useflags beachten werden sollen

V. nützliche Tools für Gentoo

eix - Da die Suche mit Portage nicht die Schnellste ist, eignet sich eix durchaus als Alternative. Statt eines "emerge --sync" führt man dann ein "eix-sync" durch, welches gleichzeitig einen Sync der Repositories und der eix Datenbank durchführt. Sollte man dann nach einem Paketnamen suchen, reicht ein "eix xxx"

gentoolkit - Gentoolkit bringt wichtige Pakete wie eclean mit sich, mit denen man die überflüssigen Source-dateien mit einer Zeile säubern kann. Unverzichtbar!

genkernel - Wie vorhin schon angedeutet ist Genkernel ein mächtiges Tool, falls man sich nicht lange mit dem Kernel beschäftigen will. Ein "genkernel all" erzeugt ohne Nachfrage einen einsatzfähigen Linux-kernel. Mit dem Interpreter "--menuconfig" kann man diesen dann auch noch anpassen. Top!

VI. Die Use-flags

Kommen wir zu den USE-flags. Wie schon erwähnt, handelt es sich bei Gentoo um eine Source-distribution, wo die Source-dateien heruntergeladen werden und man anhand von denen ein Programm erstellen kann. Da man diese aber auch bearbeiten möchte, müssen wir dem Paketmanager ja auch sagen, wie wir das Paket gerne hätten: Global funktioniert dies über die Datei make.conf, welche hier zu sehen ist:

2014-10-05-191936_1366x768_scrot.png

Wie man sieht, ist dort unter USE folgendes eingetragen:

"bindist X -gnome -gtk -kde -qt4 -qt5 alsa mmx sse sse2"

Das bedeutet, dass jedes Paket, welches die folgenden Flags besitzt mit den Genannten kompiliert wird. Ich möchte also X, kein Gnome, kein gtk, kein kde, kein qt4, kein qt5, alsa und die Befehlssätze mmx sse und sse2 nutzen. Diese Flags, die in der make.conf stehen gelten für das ganze System(für jedes Paket).

Veranschaulichen kann ich das Ganze, wenn wir mal ein Paket installieren wollen:

2014-10-05-192950_1366x768_scrot.png

Wie man sieht, wurden dort die Änderungen, die ich in der make.conf angegeben habe, bei jedem Paket beachtet und umgesetzt.

Nur was ist, wenn ich Paket spezifisch noch was ändern will? Beispielsweise soll mein XBMC jetzt auch Blurays abspielen können. Dafür gibt es die package.use Datei. So sieht das Ganze im Ausgangszustand aus, wenn wir XBMC installieren wollen:

2014-10-05-193804_1366x768_scrot.png

Unter media-tv/xbmc-12.2-r1 sieht man jetzt, dass dort momentan noch -bluray steht. Die vorangegangen Pakete sind die Abhängigkeiten, die XBMC in der jetzigen Ausgangslage benötigen würde.

Also gehen wir jetzt in die package.use Datei und teilen ihr mit, dass wir XBMC gerne mit Bluray-support kompilieren würden.

2014-10-05-194650_1366x768_scrot.png

Analysieren wir die letzte Zeile jetzt mal, die ich für unser Vorhaben angefertigt habe:

>=media-tv/xbmc-12.2-r1 bluray

Mit dem ">="- Zeichen sagen wir portage, dass wir jede Version über und gleich 12.2-r1 mit den genannten USE-flags bauen möchten. In unserem Falle halt Bluray-support. Würden wir nur ein "="-Zeichen setzen, wir nur die Paketversion mit den Use-flags kompiliert, die dahinter stehen.

Was passiert jetzt mit XBMC, wenn wir es installieren wollen, nachdem wir die package.use Datei verändert haben?

2014-10-05-195528_1366x768_scrot.png

Was ich bisher aber ignoriert hatte, war das portage uns noch mitteilt, dass es bei unserer jetzigen Konfiguration nötig ist python mit dem Use-flag sqlite zu bauen. Um uns die Arbeit mit nano diesmal zu ersparen nutzen wir diesmal den "echo"- Befehl um die package.use Datei zu bearbeiten:

2014-10-05-200003_1366x768_scrot.png

Dann noch eben die package.use überprüfen ;-)

2014-10-05-200109_1366x768_scrot.png

Die Änderungen sind übernommen worden. Also prüfen wir jetzt nochmal die Ausgabe von
emerge -av xbmc

2014-10-05-200351_1366x768_scrot.png

Die Ausgabe ist nun sauber und mit einem "Yes" würde er das Paket bauen.

VII. Wie unterschiedlich können Gentoo-systeme denn jetzt genau sein?

Nachdem wir Gentoo an sich jetzt genau ins Detail genommen haben, werde ich anhand von meinen beiden Rechnern zeigen, wie verschieden die Systeme sein können. Auf Beiden läuft jeweils ein Browser, ein Musikplayer, ein Terminal und ein Videoplayer.

Gentoo Testbild KDE.png

Das hier wäre mein HTPC, auf welchem KDE mit qt4 läuft. Der Kernel wurde mit "Genkernel" gebaut und als Init-manager wird Systemd verwendet.

Auf meinem 2. System ist mit aufgrund der Hardware eine schlichtere Oberfläche und schlankere Programme wichtig:
2014-10-05-210007_1366x768_scrot.png
 
Zuletzt bearbeitet:

jamison80

HardwareInsider
30. 03. 2014
3.268
372
113
Erst hab ich gedacht, joaaaahr das könnteste mal versuchen.....Aber umso weiter ich gelesen hab dacht ich mir ich setzt mich erstmal noch mit dem Mint auseinander um überhaupt in die materie zu kommen!

Aber toll geschrieben und beschrieben! Bin gespannt was noch alles kommt!

Ich bleib hier dran! :rock:
Zumal mir die Mint umgebung (nach kurzer Eingewöhnung) echt gut gefällt!
 
  • Like
Reaktionen: OCmylife

OCmylife

Pinguinzüchter
19. 09. 2014
44
24
8
34
Nach einiger Zeit mit Linux Mint, würde ich an deiner Stelle eh erstmal Archlinux ausprobieren. Die Installation findet auch auf der Kommandozeile statt, aber man hat den Vorteil, dass man sich weder mit dem Kernel, noch mit den Use-flags auseinander setzen muss. Grob gesagt ist Archlinux ein einfaches Gentoo. Du hast keine Kontrolle über die Abhängigkeiten, da halt Binärpakete verwendet werden, aber trotzdem nur die Programme installiert, die Du auch wirklich haben willst.

Es freut mich, wenn es gut ankommt :nod:

Um die Optik werde ich mich auch noch kümmern. Momentan ist der Stoff ja noch ziemlich trocken.
 

OCmylife

Pinguinzüchter
19. 09. 2014
44
24
8
34
Ich werde mich am Wochenende jetzt noch um den Rest und die Aufarbeitung kümmern ;-)
 

OCmylife

Pinguinzüchter
19. 09. 2014
44
24
8
34
Habe den letzten Punkt jetzt so geschrieben, wie ich mir das restliche Review vorstelle(Der Rest wird dann überarbeitet). Als nächstes würde ich noch mal den Linux-kernel etwas detaillierter aufgreifen. Und das Review dann mit einem "Wie unterschiedlich kann ein Gentoo sein?" und einem "Fazit" abschließen. Habt ihr noch irgendwelche Fragen/Verbesserungsvorschläge/Rechtschreibfehler, die ich umsetzen kann?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: jamison80
Meine Seite
Oben Unten