Gentoo Linux AMD64 Handbuch
Inhalt:
-
Gentoo installieren
In diesem Abschnitt lernen Sie, wie Sie Gentoo Linux auf Ihrem System
installieren können.
-
Über die Gentoo Linux Installation
Dieses Kapitel ist eine Einleitung in den Installationsansatz, welcher in
diesem Handbuch beschrieben wird.
-
Auswählen des richtigen Installationsmediums
Sie können Gentoo auf viele Arten installieren. Dieses Kapitel erläutert wie
Sie Gentoo mit der minimalen Installations-CD installieren, jedoch ist es auch
möglich die Installation mit der Installer LiveCD durchzuführen.
-
Konfiguration des Netzwerks
Um in der Lage zu sein, den aktuellsten Quellcode herunterladen zu können,
müssen Sie vorher das Netzwerk einrichten.
-
Vorbereiten der Festplatte(n)
Um in der Lage zu sein Gentoo installieren zu können müssen Sie die notwendigen
Partitionen erstellen. Dieses Kapitel beschreibt wie man eine Festplatte für
den Gebrauch partitioniert.
-
Installation der Gentoo Installationsdateien
Installationen von Gentoo funktionieren mit einem stage3-Archiv. In diesem
Kapitel wird beschrieben wie Sie ein stage3-Archiv entpacken und Portage
konfigurieren.
-
Installation des Gentoo Basissystem
Nach der Installation und Konfiguration der stage3 steht Ihnen ein Gentoo
Basissystem zur Verfügung. Dieses Kapitel beschreibt wie Sie zu diesem Punkt
kommen.
-
Konfiguration des Kernels
Der Linux-Kernel ist der Kern einer jeden Distribution. Dieses Kapitel
erläutert wie man den Kernel konfiguriert.
-
Konfiguration des Systems
Sie werden einige wichtige Konfigurationsdateien editieren müssen. In diesem
Kapitel erhalten Sie eine Übersicht über diese Dateien und eine Anleitung wie
man fortfahren sollte.
-
Installation der benötigten Systemtools
In diesem Kapitel helfen wir Ihnen bei der Auswahl und Installation einiger
wichtiger Tools.
-
Konfiguration des Bootloaders
In diesem Kapitel beschreiben wir den GRUB Bootloader und führen Sie durch die
Anpassung von GRUB an Ihre Bedürfnisse.
-
Abschließen Ihrer Gentoo Installation
Sie sind fast fertig. Wir werden nur noch einen (oder mehrere) Benutzer für
Ihr System erstellen.
-
Wie geht es weiter?
Nun sind Sie im Besitz eines Gentoo Systems. Was nun?
-
Arbeiten mit Gentoo
Lernen Sie mit Gentoo zu arbeiten, wie Sie Software installieren, Variablen
anpassen, das Verhalten von Portage ändern, etc.
-
Eine Portage Einführung
Dieses Kapitel erklärt die "einfachen" Schritte, die ein Benutzer definitiv
kennen muss, um Software auf seinem System zu betreuen.
-
USE Flags
USE-Flags sind ein sehr wichtiger Aspekt von Gentoo. In diesem Kapitel erfahren
Sie wie man mit USE-Flags arbeitet und wie USE-Flags mit Ihrem System
interagieren.
-
Portage Features
Entdecken Sie die Funktionen von Portage, wie Unterstützung für verteilte
Kompilierung, ccache und mehr.
-
Initskripte
Gentoo benutzt ein spezielles Initskriptformat, welches, neben weiteren
Funktionen, abhängigkeitsbezogene Entscheidungen und virtuelle Initskripte
ermöglicht. Dieses Kapitel erklärt diese Aspekte und erklärt, wie Sie mit diesen
Skripten umgehen.
-
Umgebungsvariablen
Mit Gentoo können Sie die Umgebungsvariablen Ihres Systems ganz einfach
bearbeiten. Dieses Kapitel erklärt häufig gebrauchte Umgebungsvariablen und wie
Sie mit diesen umgehen.
-
Arbeiten mit Portage
"Arbeiten mit Portage" bietet eine tiefergehende Behandlung von Portage, Gentoos
Software Management Tool.
-
Dateien und Verzeichnisse
Wenn Sie Portage ein wenig näher kennenlernen wollen sollten Sie wissen, wo
welche Daten und Dateien abgelegt werden.
-
Konfiguration durch Variablen
Portage ist vollständig durch verschiedene Variablen konfigurierbar, die Sie in
der Konfigurationsdatei oder als Umgebungsvariablen setzen können.
-
Mischen von Softwarezweigen
Gentoo bietet Software eingeteilt in verschiedenen Zweigen an, abhängig von der
Architektur und Stabilität. "Mischen von Softwarezweigen" informiert Sie
darüber wie man diese Zweige verwendet und wie man individuell diese Aufteilung
außer Kraft setzt.
-
Zusätzliche Portage Tools
Portage bringt zusätzliche Tools mit, die Ihnen das Gentoo Erlebnis etwas
vereinfachen sollen. Lesen Sie weiter um herauszufinden wie man dispatch-conf
und andere Tools benutzt.
-
Abweichen vom Offiziellen Tree
"Abweichen vom Offiziellen Tree" gibt Ihnen einige Tipps und Tricks, wie Sie
Ihren eigenen Portage Tree nutzen können, wie Sie nur Kategorien aktualisieren,
die Sie möchten, "inject" von Paketen und mehr.
-
Gentoo Netzwerk Konfiguration
Eine verständliche Anleitung zur Netzwerknutzung in Gentoo.
-
Zu Beginn
Ein Leitfaden um Ihre Netzwerkschnittstellen zügig für die häufigsten
Umgebungen einzurichten.
-
Fortgeschrittene Konfiguration
Hier lernt man wie die Konfiguration funktioniert. Sie werden dies brauchen,
bevor Sie sich mit der modularen Netzwerkkonfiguration vertraut machen.
-
Modulare Vernetzung
Gentoo ermöglicht flexible Netzwerkkonfiguration. Hier wird erläutert wie Sie
einen DHCP-Client auswählen, Bonding, VLANS und mehr einrichten.
-
Drahtlose Netzwerkfunktionalität
Wireless simpel erklärt. Mit etwas Glück kriegen Sie es zum Laufen!
-
Funktionalität hinzufügen
Wenn Sie etwas Zeit mitbringen können Sie Ihre eigenen Funktionen zum Netzwerk
hinzufügen.
-
Netzwerkmanagement
Für Laptop-Benutzer oder Menschen die Ihre Computer zwischen verschiedenen
Netzwerken hin- und herbewegen.
A. Gentoo installieren
1. Über die Gentoo Linux Installation
1.a. Einleitung
Willkommen
Zuallererst, Willkommen bei Gentoo. Sie sind dabei, in die Welt der
Wahlmöglichkeiten und Performance einzusteigen. Bei Gentoo dreht sich vieles um
Auswahlmöglichkeiten. Während der Installation von Gentoo wird Ihnen das
mehrfach bewusst werden -- Sie haben die Wahl, wie viele Pakete Sie selber
kompilieren, wie Sie Gentoo installieren, welche Systemlogger Sie benutzen und
so weiter ...
Gentoo ist eine schnelle, moderne Metadistribution mit einem klaren und
flexiblen Design. Gentoo ist rund um freie Software gebaut und versteckt das,
was unter der Haube steckt, nicht vor seinen Benutzern. Portage, das von Gentoo
benutzte Paketmanagementsystem, ist in Python geschrieben, was bedeutet, dass
Sie sich die Quelltexte einfach anschauen und nach Belieben verändern können.
Gentoos Paketsystem benutzt den Quelltext (obwohl auch Unterstützung für
vorkompilierte Pakete vorhanden ist) und die Konfiguration von Gentoo findet in
normalen Textdateien statt. Mit anderen Worten: Offenheit überall.
Es ist sehr wichtig, das Sie verstehen, dass Auswahlmöglichkeiten das
sind, was Gentoo ausmacht. Wir fordern Sie nicht auf, irgendetwas zu tun, was
Sie nicht möchten.
Wie ist die Installation strukturiert?
Die Installation von Gentoo kann als eine Prozedur von 10 Schritten
gesehen werden, was den Kapiteln 2 bis 11 entspricht. Jeder Schritt führt zu
einem bestimmten Ergebnis:
-
Nach Schritt 1 befinden Sie sich in einer funktionierenden Umgebung aus der
Sie Gentoo installieren können
-
Nach Schritt 2 haben Sie Ihre Internet-Verbindung hergestellt
-
Nach Schritt 3 sind Ihre Festplatten für die Installation vorbereitet
-
Nach Schritt 4 ist Ihre Installationsumgebung vorbereitet und Sie sind bereit
zum Chroot in die neue Umgebung
-
Nach Schritt 5 sind die wichtigsten Pakete, die in allen Gentoo Installationen
gleich sind, installiert
-
Nach Schritt 6 haben Sie Ihren Linux-Kernel kompiliert
-
Nach Schritt 7 haben Sie die meisten Ihrer Gentoo Systemkonfigurationsdateien
geschrieben
-
Nach Schritt 8 sind notwendige System-Tools (die Sie aus einer netten Liste
auswählen können) installiert
-
Nach Schritt 9 ist der Bootloader Ihrer Wahl installiert und konfiguriert und
Sie haben sich in Ihre neue Gentoo Installation eingeloggt
-
Nach Schritt 10 ist Ihre neue Gentoo Linux Umgebung bereit entdeckt zu werden
Wenn Ihnen verschiedene Auswahlmöglichkeiten vorgestellt werden, geben wir unser
Bestes, Ihnen die Vor- und Nachteile vorzustellen. Wir werden mit einer
Standardauswahl fortfahren, die im Titel durch "Standard:" gekennzeichnet ist.
Die anderen Wahlmöglichkeiten werden als "Alternativ:" gekennzeichnet. Denken
Sie nicht, dass Standard das ist, was wir empfehlen. Es ist der Weg, von
dem wir denken, dass ihn die meisten Benutzer gehen werden.
Manchmal können Sie optionalen Schritten folgen. Solche Schritte sind als
"Optional:" gekennzeichnet und nicht unbedingt notwendig, um Gentoo zu
installieren. Dennoch können optionale Schritte von vorherigen Entscheidungen
abhängen. Wir informieren Sie, wenn das passiert. Sowohl wenn Sie die
Entscheidung treffen, als auch wenn der optionale Schritt beschrieben wird.
Was sind meine Optionen?
Sie können Gentoo auf vielen verschiedenen Wegen installieren. Sie können eine
Installations-CD herunterladen und von dieser CD aus eine Installation
durchführen, Sie können eine bereits installierte Distribution nutzen, eine
bootbare CD (wie z.B. Knoppix), eine aus dem Netz gestartete Umgebung, etc.
Dieses Dokument beschreibt die Installation mit einer Gentoo Installations-CD,
oder in bestimmten Fällen, Netboot. Wir gehen davon aus, dass Sie die aktuellste
Version eines jeden Pakets installieren wollen. Wenn Sie eine netzwerklose
Installation durchführen möchten, verweisen wir Sie an dieser Stelle auf die
Gentoo 2008.0 Handbücher, die die
Installationsanweisungen für netzwerklose Umgebungen beinhalten.
Beachten Sie bitte weiterhin, dass Sie den Anweisungen in den Gentoo 2008.0 Handbüchern folgen
müssen, wenn Sie planen GRP (die Gentoo Reference Platform, eine Reihe
vorkompilierter Pakete) einzusetzen.
Für Hilfe zu anderen Installationsmöglichkeiten lesen Sie bitte unseren Guide
Alternative Installationsmöglichkeiten.
Wir bieten ebenfalls ein Gentoo
Installation Tipps & Tricks Dokument, das weitere nützliche
Informationen enthält. Wenn Sie das Gefühl haben, dass diese
Installationsanleitung zu ausführlich ist, nutzen Sie unsere
Schnellinstallationsanleitung, verfügbar in unserer Dokumentationsübersicht. Nicht jede Architektur
verfügt zurzeit über eine Schnellinstallationsanleitung.
Sie haben außerdem verschiedene Möglichkeiten: Sie können das gesamte System
von Grund auf kompilieren oder eine vorkompilierte Umgebung nutzen und damit in
kürzester Zeit zu einem laufenden System kommen. Außerdem haben Sie noch einen
"Mittelweg", in dem Sie nicht alles kompilieren und von einem halbfertigen
System starten.
Probleme?
Wenn Sie ein Problem in der Installation (oder in der Dokumentation) entdecken,
schauen Sie bitte in unserer Fehlerdatenbank, ob der Fehler bereits
bekannt ist. Wenn nicht erstellen Sie bitte einen Fehlerbericht, damit wir uns
der Sache annehmen können. Haben Sie keine Angst vor den Entwicklern, denen Ihr
Fehlerbericht zugeteilt wird -- für gewöhnlich essen sie keine Menschen.
Beachten Sie aber, dass dieses Dokument, welches Sie gerade lesen,
architekturspezifisch ist, auch wenn es Referenzen zu anderen Architekturen
enthält. Dies liegt daran, dass große Teile des Gentoo Handbuchs Quellcode
verwenden, welcher für alle Architekturen identisch ist (um doppelten
Arbeitsaufwand und die Verschwendung von Entwicklungsressourcen zu verhindern).
Wir werden versuchen dies auf ein Minimum zu beschränken um Missverständnisse zu
vermeiden.
Wenn Sie sich nicht sicher sind, ob ein Problem ein Benutzerproblem ist (ein
Fehler, den Sie trotz sorgfältiger Lektüre dieser Dokumentation machen) oder ein
Software Problem (ein Fehler, den wir trotz sorgfältigen Tests der
Installation/Dokumentation begangen haben) sollten Sie #gentoo.de im
irc.freenode.net Netz besuchen, ansonsten sind Sie natürlich auch so willkommen.
:)
Wenn Sie eine Frage betreffend Gentoo haben, werfen Sie zunächst einen Blick in
die Häufig gestellten Fragen (FAQ), die Teil
der Gentoo Dokumentation sind. Sie können auch die
FAQs in unserem
Forum lesen. Wenn Sie dort keine
Antwort finden können, fragen Sie in #gentoo.de, unserem IRC Channel auf
irc.freenode.net. Ja, viele von uns sind Freaks, die im IRC sitzen.
2. Auswählen des richtigen Installationsmediums
2.a. Hardwareanforderungen
Einleitung
Bevor wir loslegen, sollten Sie eine Liste aller Hardwareanforderungen
erstellen, um Gentoo erfolgreich auf Ihrem System installieren zu können. Diese
Liste hängt natürlich auch von Ihrer Prozessor-Architektur ab.
Hardwareanforderungen
|
Minimal CD |
LiveCD |
| CPU |
Jede AMD64-CPU oder EM64T-CPU (Core 2
Duo & Quad Prozessoren sind EM64T)
|
| Arbeitsspeicher |
64 MB |
256 MB |
| Festplattenspeicher |
1.5 GB (ohne Swap-Speicher) |
| Swap Speicher |
Mindestens 256 MB |
Sie sollten die Gentoo AMD64
Projektseite lesen, bevor Sie fortfahren.
2.b. Die Gentoo Installation-CDs
Einleitung
Die Gentoo Installations-CDs sind bootfähige CDs, die eine eigene
Gentoo-Umgebung enthalten. Sie erlauben es Ihnen, Linux von der CD zu booten.
Während des Bootvorgangs wird Ihre Hardware erkannt und die entsprechenden
Treiber geladen. Sie werden von Gentoo Entwicklern betreut.
Alle Installations-CDs erlauben es Ihnen das System zu booten, das Netzwerk
einzurichten, Ihre Partitionen zu initialisieren und eine Gentoo-Installation
über das Internet durchzuführen.
Gentoo Minimal-Installations-CD
Die Minimal-Installations-CD heißt install-amd64-minimal-<release>.iso und
benötigt nur 50 MB Festplattenspeicher. Sie können
diese Installations-CD zur Installation von Gentoo benutzen, aber benötigen
immer eine funktionierende Internetverbindung.
Der stage3-Tarball
Ein stage3-Tarball ist ein Archiv, dass eine minimale Gentoo-Umgebung enthält.
Dieses ist dazu geneigt die Gentoo-Installation, mit den Anweisungen in diesem
Handbuch, fortzuführen. Bisher beschrieb das Gentoo Handbuch die Installation
unter Verwendung eines von drei stage-Tarballs. Obwohl Gentoo weiterhin die
stage1- und stage2-Tarballs bereitstellt, verwendet die offizielle
Installationsmethode einen stage3-Tarball. Wenn Sie daran interessiert sind
eine Gentoo-Installation mit einem stage1- oder stage2-Tarball durchzuführen,
lesen Sie bitte die Gentoo FAQ zu Wie
installiere ich Gentoo mit einem stage1- oder stage2-Tarball?
Stage3-Tarballs können unter releases/amd64/autobuilds/current-stage3/ von jedem der offiziellen Gentoo-Mirror
heruntergeladen werden und werden nicht mit der LiveCD mitgeliefert.
2.c. Downloaden, Brennen und Booten einer Gentoo Installations-CD
Downloaden und Brennen der Installations-CDs
Sie haben Sich also entschieden eine Gentoo Installations-CD zu benutzen.
Zuerst werden wir nun die Installations-CD herunterladen und brennen. Wir haben
nun einige Worte über die zahlreichen Installations-CDs verloren, vermutlich
interessiert Sie nun auch wo Sie sie herbekommen können?
Sie können alle der Installations-CDs von einem unserer Spiegel herunterladen. Die Installations-CDs
befinden sich im releases/amd64/autobuilds/current-iso/
Verzeichnis.
In diesem Verzeichnis finden Sie ISO-Dateien. Dies sind komplette CD-Images,
die Sie auf CD-Rohlinge schreiben können.
Um festzustellen ob eine heruntergeladene Datei fehlerfrei übertragen wurde,
können Sie die MD5-Prüfsumme der Datei und die von uns bereitgestellte
MD5-Prüfsumme (wie z.B. install-amd64-minimal-<release>.iso.DIGESTS)
vergleichen. MD5-Prüfsummen vergleichen Sie unter Linux/Unix mit dem
md5sum Tool oder mit md5sum für Windows.
Ein weiterer Weg die Validität der heruntergeladenen Datei zu prüfen ist die
Nutzung von GnuPG um die von uns bereit gestellte kryptografische Signatur (die
Datei welche auf .asc endet) zu verifizieren. Laden Sie die
Signaturdatei herunter und installieren Sie die den Public Key:
Befehlsauflistung 3.1: Den Public-Key beziehen |
$ gpg --keyserver subkeys.pgp.net --recv-keys 17072058
|
Verifizieren Sie nun die Signatur:
Befehlsauflistung 3.2: Verifizieren der kryptografischen Signatur |
$ gpg - -verify <signature file> <downloaded iso>
|
Um die heruntergeladenen ISO(s) zu brennen müssen Sie den RAW-Modus wählen. Wie
das im einzelnen funktioniert hängt sehr stark vom verwendeten Programm ab. Wir
stellen cdrecord und K3B vor; weitere Informationen finden Sie in
der Gentoo FAQ.
-
Mit cdrecord schreiben Sie einfach cdrecord dev=/dev/hdc
<heruntergeladenes ISO-Image> (ersetzen Sie /dev/hdc
durch den Gerätepfad Ihres CD-RW-Laufwerk).
-
Mit K3B wählen Sie Tools > Burn CD Image. Danach können Sie
das ISO-Image mit dem 'Image to Burn' Feld auswählen. Schließlich klicken
Sie Start.
Booten der Installations-CD
Wenn Sie Ihre Installations-CD erst einmal gebrannt haben, ist es Zeit diese zu
booten. Entfernen Sie alle CDs aus den CD-Laufwerken, starten Sie Ihr System
neu und gehen Sie ins BIOS. Im Normalfall gelangen sie durch drücken der ENTF-,
F1- oder ESC-Taste dorthin. Im BIOS ändern Sie die Bootreihenfolge, so dass
zuerst von der CD-ROM gebootet wird. Tun Sie dies nicht, bootet das System nach
dem Neustart wieder von der Festplatte.
Jetzt legen Sie die Installations-CD in das CD-ROM Laufwerk und starten neu.
Sie sollten einen Bootscreen zu sehen bekommen. An diesem Screen können Sie
Enter drücken, um Gentoo mit den standardmäßigen Bootoptionen zu starten.
Sie können auch einen anderen Kernel und angepasste Bootoptionen auswählen
und erst dann Enter drücken.
Kernel angeben? Ja, wir bieten verschiedene Kernel auf unseren
Installations-CDs an. Der Standardkernel ist gentoo. Andere Kernel sind
für spezielle Hardware und die -nofb Variante, die den Framebuffer
deaktiviert.
Nachfolgend finden Sie einen kurzen Überblick über verfügbare Kernel:
| Kernel |
Beschreibung |
| gentoo |
Standardkernel mit Unterstützung für K8-CPUs (inklusive NUMA-Unterstützung)
und EM64T-CPUs
|
| gentoo-nofb |
Genau wie gentoo nur ohne Framebuffer-Unterstützung |
| memtest86 |
Testet Ihren lokalen RAM auf Fehler |
Sie können auch noch einige Optionen mitgeben. Diese repräsentieren zusätzliche
optionale Einstellungen die Sie (de)aktivieren können.
Hardware options:
- acpi=on
-
Dies lädt Unterstützung für ACPI und führt auch dazu, dass der acpid Dämon
von der CD beim Boot gestartet wird. Dies wird nur benötigt, wenn Ihr System
ACPI benötigt um korrekt zu funktionieren. Dies wird nicht für
Hyperthreading-Unterstützung benötigt.
- acpi=off
-
Deaktiviert ACPI komplett. Dies ist auf einigen älteren Systemen hilfreich und
außerdem eine Anforderung für die Verwendung von APM. Dies wird jegliche
Hyperthreading-Unterstützung für Ihren Prozessor deaktivieren.
- console=X
-
Dies richtet den seriellen Konsolenzugriff für die CD ein. Die erste Option
ist das Gerät, normalerweise ttyS0 auf x86, gefolgt von jeglichen
Verbindungsoptionen, welche durch Komma getrennt sind. Die Standardoptionen
sind 9600,8,n,1.
- dmraid=X
-
Dies erlaubt die Übergabe von Optionen an das device-mapper
RAID-Subsystem. Optionen sollten von Anführungsstrichen umgeben sein.
- doapm
-
Dies lädt APM-Treiberunterstützung. Dies verlangt auch, dass Sie außerdem
acpi=off verwenden.
- dopcmcia
-
Dies lädt Unterstützung für PCMCIA- und Cardbus-Hardware und sorgt außerdem
dafür, dass der PCMCIA cardmgr von der CD beim Booten gestartet wird. Dies
ist nur nötig, wenn von einem PCMCIA/Cardbus-Gerät gebootet wird.
- doscsi
-
Dies lädt Unterstützung für die meisten SCSI-Controller. Dies wird auch
benötigt um die meisten USB-Geräte zu booten, da Sie das SCSI-Subsystem
des Kernels verwenden.
- sda=stroke
-
Dies erlaubt es Ihnen die gesamte Festplatte zu partitionieren selbst wenn das
BIOS nicht in der Lage ist große Festplatten zu verwalten. Diese Option wird
nur auf Rechnern mit einem älteren BIOS verwendet. Ersetzten Sie sda durch das
Gerät, welches diese Option benötigt.
- ide=nodma
-
Dies erzwingt die Deaktivierung von DMA im Kernel und wird von einigen
IDE-Chipsätzen und auch einigen CDROM-Laufwerken benötigt. Wenn Ihr System
Probleme hat mit den Lesen von Ihrem IDE-CDROM sollten Sie diese Option
ausprobieren. Dies deaktiviert außerdem das Ausführen der
Standardeinstellungen von hdparm.
- noapic
-
Dies deaktiviert den Advanced Programmable Interrupt Controller der sich auf
neueren Motherboards findet. Er ist bekannt dafür einige Probleme mit älterer
Hardware zu verursachen.
- nodetect
-
Dies deaktiviert jegliche Autoerkennung der CD, inklusive der
Geräteautoerkennung und der DHCP-Suche. Dies kann hilfreich beim debuggen
eines CD- oder Treiberfehlers sein.
- nodhcp
-
Dies deaktiviert die DHCP-Suche auf den erkannten Netzwerkkarten. Dies ist
hilfreich in Netzwerken mit nur statischen Adressen.
- nodmraid
-
Deaktiviert Unterstützung für device-mapper RAID, wie das welches für on-board
IDE/SATA RAID-Controller verwendet wird.
- nofirewire
-
Dies deaktiviert das Laden der Firewire-Module. Dies sollte nur notwendig
sein, wenn Ihre Firewire-Hardware Probleme beim booten der CD verursacht.
- nogpm
-
Dies deaktiviert die Konsolenmaus-Unterstützung gpm.
- nohotplug
-
Dies deaktiviert das Laden der Initskripte hotplug und coldplug beim Boot.
Dies kann hilfreich beim debuggen eines CD- oder Treiberfehlers sein.
- nokeymap
-
Dies deaktiviert die Keymap-Auswahl, welche verwendet wird zur
Auswahl von nicht-US Tastaturlayouts.
- nolapic
-
Dies deaktiviert den lokalen APIC auf Uniprocessor-Kerneln.
- nosata
-
Dies deaktiviert das Laden der Serial-ATA-Module. Dies ist hilfreich, wenn
Ihr System Probleme mit dem SATA-Subsystem hat.
- nosmp
-
Dies deaktiviert SMP, oder Symmetric Multiprocessing, auf SMP-aktiven Kerneln.
Dies ist hilfreich beim debuggen von Problemen bezüglich SMP mit bestimmten
Treibern und Motherboards.
- nosound
-
Dies deaktiviert Soundunterstützung und Lautstärkeeinstellungen. Dies ist
hilfreich bei Systemen, auf denen die Soundunterstützung Probleme verursacht.
- nousb
-
Dies deaktiviert das automatische Laden von USB-Modulen. Dies ist hilfreich
beim debuggen von USB-Problemen.
- slowusb
-
Dies fügt einige zusätzliche Pausen zum Bootvorgang hinzu für langsame
USB-CDROMs, wie zum Beispiel im IBM-BladeCenter.
Volumen/Gerätemanagement:
- doevms
-
Dies aktiviert Unterstützung für IBMs pluggable-EVMS, oder Enterprise Volume
Management System. Die Verwendung mit lvm zusammen ist gefährlich.
- dolvm
-
Dies aktiviert Unterstützung für das Logical Volume Management von Linux. Die
Verwendung mit evms zusammen ist gefährlich.
Andere Optionen:
- debug
-
Aktivieren des Debugging-Codes. Dies kann etwas unübersichtlich werden, da
eine Menge Daten auf dem Bildschirm ausgegeben wird.
- docache
-
Dies lädt den gesamten Runtime-Bereich der CD in RAM. Das ermöglicht Ihnen
umount /mnt/cdrom zu verwenden und eine andere CDROM zu mounten. Diese
Optionen benötigt, dass Sie mindestens doppelt soviel RAM verfügbar haben,
wie die Größe der CD.
- doload=X
-
Dies zwingt die initiale Ramdisk dazu jegliche aufgelisteten Module zu laden,
wie auch deren Abhängigkeiten. Ersetzen Sie X durch den Modulnamen.
Mehere Module können mit einer durch Kommas separierten Liste spezifiziert
werden.
- dosshd
-
Startet sshd beim Boot, was hilfreich ist bei entfernten Installationen.
- passwd=foo
-
Setzt was immer folgt nach dem Gleichheitszeichen als Passwort für root, was
benötigt wird für dosshd da das Passwort für root verschlüsselt ist.
- noload=X
-
Dies zwingt die initiale Ramdisk dazu den Ladevorgang eines bestimmten Moduls
zu überspringen, welches Probleme verursachen könnte. Die Syntax ist dieselbe
wie für doload.
- nonfs
-
Deaktiviert den Start von portmap/nfsmount beim Boot.
- nox
-
Dies zwingt die X-aktivierte LiveCD dazu X nicht automatisch zu starten
sondern stattdessen auf die Kommandozeile zurückzufallen.
- scandelay
-
Dies zwing die CD dazu für 10 Sekunden während bestimmter Abschnitte des
Bootvorgangs zu warten um bestimmten Geräten, die langsamer sind, Zeit zu
geben sich zu initialisieren um verwendet zu werden.
- scandelay=X
-
Dies erlaubt es Ihnen eine beliebige Verzögerung, in Sekunden, zu bestimmten
Abschnitten des Bootvorgangs hinzuzufügen um langsameren Geräten die
Möglichkeit zu geben sich zu initialisieren, damit sie verwendet werden
können. Ersetzen Sie X durch die Anzahl von Sekunden die pausiert werden soll.
Notiz:
Die CD wird erst nach "no*" Optionen sehen vor "do*" Optionen so dass Sie jede
Option aufheben können, in der exakten Reihenfolge die Sie angeben.
|
Nun starten Sie Ihre CD, wählen einen Kernel und die Boot Optionen. Wir zeigen
Ihnen als Beispiel, wie Sie den gentoo Kernel mit dopcmcia als
Kernel Parameter booten:
Befehlsauflistung 3.3: Booten einer Installations-CD |
boot: gentoo dopcmcia
|
Sie werden dann von einem Boot-Screen und einem Fortschrittsbalken begrüßt.
Wenn Sie Gentoo nicht an einem System mit einer US-Tastatur installieren,
drücken Sie sofort ALT-F1 um in den Verbose-Mode zu wechseln und folgen Sie den
Anweisungen. Wenn binnen 10 Sekunden keine Auswahl getroffen wurde, wird das
Standard-Tastaturlayout (US) geladen und der Bootvorgang fortgesetzt. Nachdem
der Bootvorgang abgeschlossen ist, werden Sie automatisch als Superuser "root"
in das "Live" Gentoo Linux eingeloggt. Sie sollten einen root-Prompt ("#") auf
der aktuellen Konsole sehen und durch das drücken von Alt-F2, Alt-F3 und Alt-F4
auf andere Konsolen wechseln können. Um wieder zu Ausgangskonsole zu wechseln
drücken Sie Alt-F1.
Fahren Sie nun mit der Konfiguration zusätzlicher
Hardware fort.
Erweiterte Hardwarekonfiguration
Wenn Sie die Installations-CD starten, versucht diese alle Ihre Hardwaregeräte
zu erkennen und die entsprechenden Kernelmodule zu laden. In den allermeisten
Fällen funktioniert dies wunderbar. Dennoch kann es in einzelnen Fällen
passieren, dass nicht alle benötigten Module automatisch geladen werden. Wenn
die PCI-Autoerkennung einen Teil Ihres Systems nicht erkennt, müssen Sie die
entsprechenden Kernelmodule manuell laden.
Im nächsten Beispiel versuchen wir das 8139too Modul zu laden
(Unterstützung für verschiedene Arten von Netzwerkkarten):
Befehlsauflistung 3.4: Laden von Kernelmodulen |
# modprobe 8139too
|
Optional: Benutzerkonten
Wenn Sie planen, anderen Leuten Zugriff auf Ihre Installation zu geben oder
mit irssi ohne root-Rechte chatten möchten (aus Sicherheitsgründen),
müssen Sie die notwendigen Benutzerkonten anlegen und das root-Passwort
ändern.
Um das root-Passwort zu ändern benutzen Sie das passwd Programm:
Befehlsauflistung 3.5: Ändern des root-Passworts |
# passwd
New password:
Re-enter password:
|
Um ein Benutzerkonto zu erstellen geben wir zunächst die Details zur Person ein,
gefolgt vom zugehörigen Passwort. Wir benutzen useradd und passwd
für diese Aufgaben. Im nächsten Beispiel erstellen wir einen Benutzer namens
"john".
Befehlsauflistung 3.6: Erstellen eines Benutzerkontos |
# useradd -m -G users john
# passwd john
New password:
Re-enter password:
|
Sie können Ihre Benutzer-ID von root zum neu erstellen Benutzer mit su
wechseln:
Befehlsauflistung 3.7: Wechseln der Benutzer-ID |
# su - john
|
Optional: Lesen der Dokumentation während der Installation
Wenn Sie das Gentoo Handbuch während der Installation (entweder von der CD oder
Online) lesen möchten, stellen Sie zunächst sicher, dass Sie ein Benutzerkonto
(wie in Optional: Benutzerkonten beschrieben)
angelegt haben. Drücken Sie nun Alt-F2 um sich an einem neuen Terminal
anzumelden.
Wenn Sie die Dokumentation auf der CD lesen möchten können Sie direkt
links starten:
Befehlsauflistung 3.8: Lesen der Dokumentation auf der CD |
# links /mnt/cdrom/docs/html/index.html
|
Allerdings ist die Onlineversion des Gentoo Handbuchs vorzuziehen, da
diese aktueller als die auf der CD enthaltene ist. Sie können diese auch mit
links betrachten, aber nur nachdem sie das Kapitel Konfiguration des
Netzwerks abgeschlossen haben (ansonsten werden Sie nicht in der Lage sein
ins Internet zu gelangen um das Dokument zu lesen):
Befehlsauflistung 3.9: Lesen der Online-Dokumentation |
# links http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml
|
Sie können zurück auf Ihr Ausgangsterminal mittels Alt-F1 wechseln.
Optional: Starten des SSH-Daemons
Wenn Sie anderen Benutzern während der Installation von Gentoo Zugriff auf Ihren
Rechner geben wollen (vielleicht weil diese Benutzer Sie bei der Installation
von Gentoo unterstützen oder sie diese für Sie durchführen), müssen Sie ein
Benutzerkonto für diese Person erstellen und möglicherweise auch das root
Passwort geben (machen Sie das nur, wenn Sie diesem Benutzer
vollständig Vertrauen).
Um den SSH-Daemon zu starten führen Sie folgenden Befehl aus:
Befehlsauflistung 3.10: Starten des SSH-Daemons |
# /etc/init.d/sshd start
|
Um sshd nutzen zu können müssen Sie zuerst das Netzwerk einrichten. Setzen Sie
die Installation mit der Konfiguration des
Netzwerks fort.
3. Konfiguration des Netzwerks
3.a. Automatische Netzwerkerkennung
Vielleicht funktioniert es einfach?
Wenn sich Ihr System in einem Ethernet-Netzwerk mit einem DHCP-Server befindet,
ist es sehr wahrscheinlich, dass Ihr Netz bereits konfiguriert ist. Sie können
nun die zahlreichen Netzwerktools auf der Installations-CD wie zum Beispiel
ssh, scp, ping, irssi, wget und links
nutzen.
Wenn das Netzwerk bereits konfiguriert wurde, zeigt Ihnen der Befehl
/sbin/ifconfig weitere Netzwerkschnittstellen neben lo an, wie
beispielsweise eth0:
Befehlsauflistung 1.1: /sbin/ifconfig für eine funktionierende Netzwerkkonfiguration |
# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
collisions:1984 txqueuelen:100
RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb)
Interrupt:11 Base address:0xe800
|
Optional: Proxy-Konfiguration
Wenn Sie auf das Internet nur über einen Proxy-Server zugreifen können, müssen
Sie während der Installation das System für die Verwendung des Proxy-Servers
vorbereiten. Das ist aber recht einfach. Sie müssen dazu lediglich eine Variable
mit den Informationen über den Proxy-Server setzen.
In den meisten Fällen können Sie den Hostnamen des Proxy-Servers in die Variable
schreiben. Nehmen wir an, der Server ist proxy.gentoo.org und der Port
ist 8080.
Befehlsauflistung 1.2: Einrichten des Proxy-Servers |
# export http_proxy="http://proxy.gentoo.org:8080¨
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# export RSYNC_PROXY="proxy.gentoo.org:8080"
|
Wenn der Proxy-Server einen Benutzernamen und Passwort verlangt, sollten Sie die
folgende Syntax in der Variable verwenden:
Befehlsauflistung 1.3: Einen Benutzernamen/Passwort zu der Variable hinzufügen |
http://Benutzername:Passwort@proxy.gentoo.org:8080
|
Das Netzwerk testen
Dazu können Sie beispielsweise den DNS-Server Ihres Internetanbieters
"anpingen". Die Adresse dieses Servers finden Sie in
/etc/resolv.conf. Außerdem sollten Sie eine Webseite Ihrer Wahl
"pingen". So stellen Sie sicher, dass Sie sowohl mit dem Internet verbunden
sind, als auch, dass Ihre Namensauflösung korrekt arbeitet.
Befehlsauflistung 1.4: Der Netzwerktest |
# ping -c 3 www.gentoo.org
|
Wenn Sie nun in der Lage sind, Ihr Netzwerk zu verwenden, dann können Sie den
Rest dieses Kapitels überspringen und mit dem Vorbereiten der Festplatte(n) fortfahren.
Wenn nicht, lesen Sie bitte weiter.
3.b. Automatische Netzwerkkonfiguration
Wenn die Netzwerkverbindung nicht gleich zu Stande kommt, beinhalten einige
Installationsmedien den Befehl net-setup (für normale und drahtlose
Verbindungen) oder pppoe-setup (für ADSL-Verbindungen) bzw.
pptp (für PPTP-Benutzer - verfügbar für x86, amd64, alpha, pcc und
ppc64).
Wenn Ihr Installationsmedium das entsprechende Tool nicht enthält oder Ihre
Netzwerkverbindung noch nicht funktioniert, so fahren Sie bitte mit folgendem
Abschnitt fort: Manuelle Netzwerkkonfiguration.
Standard: Verwendung von net-setup
Der einfachste Weg die Netzwerkverbindung zu konfigurieren, falls die
automatische Konfiguration fehlgeschlagen sein sollte, ist das Skript
net-setup eth0
Befehlsauflistung 2.1: Das Skript net-setup starten |
# net-setup eth0
|
net-setup wird Ihnen einige Fragen bezüglich Ihrer Netzwerkumgebung
stellen. Haben Sie alle Fragen beantwortet, sollten Sie eine funktionsfähige
Netzwerkverbindung haben. Testen Sie Ihr Netzwerk wieder, wie oben beschrieben.
Sollten die Tests funktionieren, so haben Sie es geschafft. Sie können nun mit
der Installation von Gentoo fortfahren. Überspringen Sie den Rest dieses
Kapitels und fahren Sie mit der Vorbereitung der
Festplatte(n) fort.
Sollte Ihr Netzwerk nun immer noch nicht funktionieren, fahren Sie bitte mit
Manuelle Netzwerkkonfiguration fort.
Alternativ: Verwendung von PPP
Für den Fall, dass Sie PPPoE benötigen, um eine Verbindung mit dem Internet
herzustellen, bringt die Installations-CD (in jeder Version) das Tool
ppp mit. Verwenden Sie das Skript pppoe-setup, um Ihre
Verbindung zu konfigurieren. Sie werden nach der Netzwerkkarte gefragt, die mit
Ihrem DSL-Modem verbunden ist, dem Benutzernamen und nach Ihrem Kennwort.
Ferner geben Sie noch die IP-Adressen der DNS-Server des Providers ein und ob
Sie eine Firewall benötigen oder nicht.
Befehlsauflistung 2.2: Verwendung von ppp |
# pppoe-setup
# pppoe-start
|
Wenn etwas schief gehen sollte, überprüfen Sie bitte, ob Sie Ihren Benutzernamen
und Ihr Passwort richtig eingegeben haben, indem Sie die Datei
/etc/ppp/pap-secrets bzw. /etc/ppp/chap-secrets
einsehen. Stellen Sie bitte auch sicher, dass Sie die richtige Netzwerkkarte
verwenden. Wenn Ihre Netzwerkkarte im System nicht erkannt wird, müssen Sie das
entsprechende Kernelmodul laden. In diesem Fall müssen Sie mit der Manuellen Konfiguration des Netzwerks fortfahren. Dort
gehen wir näher auf das Laden der entsprechenden Kernelmodule ein.
Wenn alles funktioniert hat, dann fahren Sie mit dem nächsten Kapitel, Vorbereiten der Festplatte(n) fort.
Alternativ: Verwendung von PPTP
Wenn Sie PPTP-Unterstüzung benötigen, können Sie das Programm pptpclient,
das Ihnen von der Installations-CD bereitgestellt wird, verwenden. Allerdings
müssen Sie vorher sichergehen, dass Ihre Konfiguration korrekt ist. Dazu
editieren Sie die Datei /etc/ppp/pap-secrets oder
/etc/ppp/chap-secrets, so dass diese die korrekte
Benutzername/Kennwort-Kombination beinhalten.
Befehlsauflistung 2.3: /etc/ppp/chap-secrets editieren |
# nano -w /etc/ppp/chap-secrets
|
Wenn nötig, sollten Sie nun noch /etc/ppp/options.pptp anpassen:
Befehlsauflistung 2.4: /etc/ppp/options.pptp editieren |
# nano -w /etc/ppp/options.pptp
|
Nun geben Sie den Befehl pptp (mit den Optionen, die Sie in
options.pptp setzen könnten) ein, um sich mit dem Server zu
verbinden.
Befehlsauflistung 2.5: Mit einem Dial-In-Server verbinden |
# pptp <server ip>
|
Wenn alles funktioniert hat, dann fahren Sie mit dem Vorbereiten der Festplatte(n) fort.
3.c. Manuelle Netzwerkkonfiguration
Die richtigen Kernelmodule laden
Wenn die Installations-CD bootet, versucht sie alle Ihre Hardwaregeräte zu
erkennen und lädt automatisch die entsprechenden Kernelmodule (Treiber). In den
allermeisten Fällen funktioniert dies sehr gut. Allerdings kann es vorkommen,
dass ein Kernelmodul nicht automatisch geladen wird.
Wenn net-setup oder pppoe-setup fehlschlagen, dann ist es
möglich, dass Ihre Netzwerkkarte nicht sofort gefunden wurde. Das bedeutet,
dass Sie das entsprechende Kernelmodul manuell laden müssen.
Verwenden Sie ls, um herauszufinden, welche Netzwerk-Kernelmodule von
Gentoo bereitgestellt werden.
Befehlsauflistung 3.1: Nach bereitgestellten Kernelmodulen suchen |
# ls /lib/modules/`uname -r`/kernel/drivers/net
|
Wenn Sie einen Treiber für Ihre Netzwerkkarte gefunden haben, laden Sie diesen
mit modprobe.
Befehlsauflistung 3.2: modprobe zum Laden eines Kernelmoduls |
# modprobe pcnet32
|
Benutzen Sie ifconfig zum Prüfen, ob das Modul geladen wurde. Eine
erkannte Netzwerkkarte würde in etwa diese Ausgabe ergeben:
Befehlsauflistung 3.3: Testen der Verfügbarkeit der Netzwerkkarte, erfolgreich |
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00
BROADCAST NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
|
Wenn Sie stattdessen diesen Fehler erhalten, dann wurde Ihre Karte nicht
erkannt.
Befehlsauflistung 3.4: Testen der Verfügbarkeit der Netzwerkkarte, fehlgeschlagen |
# ifconfig eth0
eth0: error fetching interface information: Device not found
|
Wenn Sie in Ihrem System mehrere Netzwerkkarten haben, so sind diese
eth0, eth1 usw. benannt. Stellen sicher, dass die Netzwerkkarte
die Sie nutzen möchten funktioniert und denken Sie daran den richtigen Namen
während der Installation zu benutzen. Wir gehen von nun an davon aus, dass die
Netzwerkkarte eth0 benutzt wird.
Wurde Ihre Netzwerkkarte erkannt, so können Sie nun erneut net-setup
oder pppoe-setup ausprobieren (diese sollten nun funktionieren). Den
richtigen Freaks unter Ihnen werden wir auch noch erklären, wie man das
Netzwerk manuell einrichtet.
Wählen Sie je nach Netzwerksetup einen der folgenden Abschnitte:
DHCP verwenden
DHCP (Dynamic Host Configuration Protocol) ermöglicht es die gesamte
Netzwerkkonfiguration (IP-Adresse, Netzwerkmaske, Broadcast-Adresse, Gateway,
DNS-Server etc.) dynamisch von einem Server zu beziehen. Das funktioniert
logischerweise nur, wenn Sie einen DHCP-Server in Ihrem LAN haben oder Ihr
Provider einen solchen Dienst anbietet. Benutzen Sie dhcpcd:
Befehlsauflistung 3.5: Verwendung von dhcpcd |
# dhcpcd eth0
# dhcpcd -HD eth0
|
Wenn das funktioniert (versuchen Sie einen Internet-Server zu pingen), dann sind
Sie fertig mit der Konfiguration des Netzwerks und können mit dem Vorbereiten der Festplatte(n) fortfahren.
Vorbereitung für drahtlosen Zugriff
Notiz:
Nur die Installations-CDs der x86-, amd64- und ppc-Architekturen unterstützen
das Kommando iwconfig. Wenn Ihre CD das Kommando nicht enthält, können
Sie den Anleitungen des linux-wlan-ng-Projekts
folgen.
|
Wenn Sie eine WLan-Karte (802.11) benutzen, müssen Sie Einstellungen zur
Nutzung der Karte einrichten, bevor es weiter gehen kann. Um sich die aktuellen
Einstellungen der Karte anzuschauen, benutzen Sie iwconfig.
iwconfig zeigt Ihnen möglicherweise etwas wie dies:
Befehlsauflistung 3.6: Aktuelle WLan-Einstellungen anzeigen |
# iwconfig eth0
eth0 IEEE 802.11-DS ESSID:"GentooNode"
Mode:Managed Frequency:2.442GHz Access Point: 00:09:5B:11:CC:F2
Bit Rate:11Mb/s Tx-Power=20 dBm Sensitivity=0/65535
Retry limit:16 RTS thr:off Fragment thr:off
Power Management:off
Link Quality:25/10 Signal level:-51 dBm Noise level:-102 dBm
Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx
excessive retries:237 Invalid misc:350282 Missed beacon:84
|
Notiz:
Einige drahtlose Netzwerkkarten benutzen einen Gerätenamen wie wlan0
oder ra0 anstelle von eth0. Führen Sie iwconfig ohne
irgendwelche Kommandozeilenparamater aus, um den korrekten Gerätenamen zu
bestimmen.
|
Für die meisten Benutzer sollte es hinreichend sein zwei Einstellungen
anzupassen. Die ESSID (der Name des drahtlosen Netz) und den WEP-Key. Wenn die
ESSID und die Adresse des Access-Points bereits gelistet sind und Sie kein WEP
benutzen, funktioniert Ihr Netzwerk bereits. Wenn Sie Ihre ESSID ändern oder
einen WEP-Key hinzufügen möchten, können Sie folgende Kommandos ausführen:
Notiz:
Falls Ihr drahtloses Netzwerk WPA oder WPA2 benutzt, werden Sie
wpa_supplicant verwenden müssen. Für weitere Informationen zur
Konfiguration drahtloser Netzwerke unter Gentoo Linux, lesen Sie bitte das
Kapitel Drahtlose Netzwerkfunktionalität
des Gentoo Handbuchs.
|
Befehlsauflistung 3.7: Ändern der ESSID und/oder Hinzufügen eines WEP-Keys |
# iwconfig eth0 essid GentooNode
# iwconfig eth0 key 1234123412341234abcd
# iwconfig eth0 key s:some-password
|
Sie können Ihre Einstellungen nun nochmal mit iwconfig überprüfen. Wenn
Sie Ihr WLan nun eingerichtet haben, können Sie mit der Konfiguration der
IP-Level-Optionen wie im nächsten Abschnitt Die
Netzwerkterminologie verstehen fortfahren oder net-setup benutzen,
wie vorhin beschrieben.
Die Netzwerkterminologie verstehen
Notiz:
Wenn Sie Ihre IP-Adresse, Broadcast-Adresse, Netzmaske und DNS-Server kennen,
dann können Sie diesen Teil beruhigt überspringen. Fahren Sie in diesem Fall mit
Benutzen von ifconfig und route fort.
|
Wenn alles obige fehlschlägt, müssen Sie Ihr Netzwerk manuell einrichten.
Dies ist überhaupt nicht schwierig. Jedoch müssen Sie mit einiger
Netzwerkterminologie vertraut sein, denn Sie werden diese benötigen, um Ihr
Netzwerk zu Ihrer Zufriedenheit konfigurieren zu können. Nachdem Sie dies
gelesen haben, werden Sie wissen, was ein Gateway ist, wozu eine
Netzmaske dient, wie eine Broadcast-Adresse aufgebaut ist und
warum Sie Nameserver benötigen.
In einem Netzwerk werden die Computer über Ihre IP-Adresse (Internet
Protocol Address) identifiziert. Diese Adresse ist eine Kombination aus vier
Nummern zwischen 0 und 255. Jedenfalls nehmen wir das so wahr. In Wirklichkeit
ist eine IP-Adresse eine 32 Bit-Folge (Nullen und Einsen). Hier ein Beispiel:
Befehlsauflistung 3.8: Beispiel einer IP-Adresse |
IP Adresse (Nummern): 192.168.0.2
IP Adresse (Bits): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2
|
Solch eine IP-Adresse ist einmalig für einen Host (Computer) in allen
angrenzenden Netzwerken (d.h. jeder Host, den Sie erreichen können, muss eine
einzigartige IP-Adresse besitzen). Um zwischen Hosts innerhalb eines
Netzwerkes und außerhalb eines Netzwerkes unterscheiden zu können, ist die
IP-Adresse in zwei Teile eingeteilt: Einen Network-Abschnitt und einen
Host-Abschnitt.
Diese Unterteilung wird mittels der netmask (dt. so viel wie Netzmaske)
beschrieben. Die netmask ist eine Reihe von Einsen, gefolgt von einer Reihe
von Nullen. Der Teil der IP-Adresse der den Einsen entspricht, ist der
Netzwerkteil. Die Netzmaske kann wie eine IP-Adresse aufgeschrieben werden.
Befehlsauflistung 3.9: Beispiel einer Netzwerk/Host Teilung |
IP-address: 192 168 0 2
11000000 10101000 00000000 00000010
Netmask: 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Network Host
|
In anderen Worten ist 192.168.0.14 ein Host in unserem Teilnetz, während
192.168.1.2 dies nicht ist.
Die Broadcast-Adresse ist eine IP-Adresse, die den gleichen Netzwerkteil
wie unser Netzwerk hat, allerdings nur Einsen im Hostteil hat. Alle Computer in
dem Teilnetz hören auf diese IP-Adresse. Diese Adresse ist zum Broadcasting
eines Paketes an alle Computer gedacht. D.h. ein Paket wird an alle Computer im
Netzwerk gleichzeitig geschickt.
Befehlsauflistung 3.10: Broadcast-Adresse |
IP-address: 192 168 0 2
11000000 10101000 00000000 00000010
Broadcast: 11000000 10101000 00000000 11111111
192 168 0 255
+--------------------------+--------+
Network Host
|
Um im Internet surfen zu können, müssen Sie wissen, welcher Host die
Internetverbindung herstellt. Dieser Host wird Gateway genannt. Da dieser
ein normaler Host ist, besitzt auch das Gateway eine normale IP-Adresse (z.B.
192.168.0.1).
Zuvor haben wir schon erwähnt, dass jeder Host eine eigene IP-Adresse besitzt.
Um diesen Host aber mit einem Namen ansprechen zu können (anstatt einer
IP-Adresse) benötigen Sie einen Dienst, der Namen (wie dev.gentoo.org)
in IP-Adressen (wie 64.5.62.82) umwandelt. Dieser Dienst wird
nameservice genannt. Um diesen Dienst nutzen zu können, müssen Sie
die entsprechenden name server kennen. Diese werden in der Datei
/etc/resolv.conf festgehalten.
In manchen Fällen trägt das Gateway ebenfalls die Rolle des Nameservers. Sonst
müssen Sie den Nameserver des Providers angeben.
In der Zusammenfassung benötigen Sie also folgende Daten bevor Sie fortfahren:
| Netzwerkbegriff |
Beispiel |
| Ihre IP-Adresse |
192.168.0.2 |
| Netzmaske |
255.255.255.0 |
| Broadcast-Adresse |
192.168.0.255 |
| Gateway |
192.168.0.1 |
| Nameserver |
195.130.130.5, 195.130.130.133 |
Verwendung von ifconfig und route
Das Einrichten des Netzwerks besteht aus drei Schritten. Zunächst teilen wir uns
mittels ifconfig selbst eine IP-Adresse zu. Dann richten wir das
sogenannte "routing" ein. D.h. Daten die nicht für das lokale Netzwerk bestimmt
sind, werden an das Gateway geschickt. Dies wird mit dem Befehl route
erreicht. Schließlich halten wir die Nameserver in der Datei
/etc/resolv.conf fest.
Um eine IP-Adresse zuzuteilen, wird die IP-Adresse, die Broadcast-Adresse sowie
die Netzmaske benötigt. Der folgende Befehl muss ausgeführt werden, wobei die
Variablen ${IP_ADDR} durch die IP-Adresse, ${BROADCAST} durch die
Broadcast-Adresse und ${NETMASK} durch die Netzmaske ersetzt werden
sollte.
Befehlsauflistung 3.11: Verwendung von ifconfig |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
|
Nun wird das "routing" eingerichtet. Hier muss ${GATEWAY} durch die IP-Adresse
des Gateway ersetzt werden.
Befehlsauflistung 3.12: Verwendung von route |
# route add default gw ${GATEWAY}
|
Nun öffnen Sie die Datei /etc/resolv.conf mit Ihrem bevorzugten
Editor (in unserem Fall verwenden wir nano):
Befehlsauflistung 3.13: Erstellen von /etc/resolv.conf |
# nano -w /etc/resolv.conf
|
Nun tragen Sie hier den Nameserver (oder mehrere) dem Beispiel folgend ein.
Dabei sollten Sie natürlich wieder ${NAMESERVER} durch die entsprechende
IP-Adresse ersetzen.
Befehlsauflistung 3.14: /etc/resolv.conf Vorlage |
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
|
Das war es schon. Nun sollten Sie Ihre Internetverbindung testen. Dazu "pingen"
Sie einfach einen Internetserver (wie Google). Funktioniert es, sind Sie nun
endlich bereit, Gentoo zu installieren. Fahren Sie mit dem Vorbereiten der Festplatte(n) fort.
4. Vorbereiten der Festplatte(n)
4.a. Einführung in Block-Devices
Block Devices
Wir werden einen guten Einblick in die Festplatten bezogenen Aspekte von Gentoo
Linux und Linux im allgemeinen, inklusive Linux Dateisystemen, Partitionen und
Block Devices erhalten. Dann, sobald Sie mit den Vor- und Nachteilen von
Festplatten und Dateisystemen vertraut sind, werden Sie durch den Prozess
des Partitionierens und der Dateisystemerstellung für Ihre Gentoo Linux
Installation geführt.
Zu Beginn werden wir Ihnen Block Devices vorstellen. Das berühmteste
Block Device ist wahrscheinlich das, welches das erste Laufwerk in einem
Linux System repräsentiert, namentlich /dev/sda. SCSI- und
Serial-ATA-Laufwerke erhalten beide Namen mit /dev/sd*; selbst
IDE-Laufwerke werden mit dem neuen libata-Framework im Kernel mit einem
/dev/sd* Namen versehen. Wenn Sie noch das alte Geräte-Framework
verwenden wir Ihr erstes IDE-Laufwerk /dev/hda sein.
Das obige Block Device repräsentiert eine abstrakte Schnittstelle zur
Festplatte. Benutzerprogramme können dieses Block Device benutzen, um Ihre
Festplatte anzusprechen, ohne sich darum zu kümmern, ob Ihre Festplatten IDE,
SCSI oder irgendetwas anderes sind. Das Programm kann den Speicherplatz auf der
Festplatte einfach als eine Anhäufung von zusammenhängenden, beliebig
zugreifbaren 512-Byte Blöcken ansprechen.
Partitionen
Obwohl es theoretisch möglich ist eine ganze Festplatte zu nutzen, um Ihr Linux
System zu beherbergen, wird dies in der Praxis so gut wie nie gemacht.
Stattdessen werden komplette Festplatten-Block-Devices in kleinere, besser
verwaltbare Block-Devices unterteilt. Auf AMD64-Systemen werden
diese Partitionen genannt.
Es wird zwischen drei Partitionstypen unterschieden:
primär, erweitert und logisch.
Eine primäre Partition ist eine Partition, deren Informationen im MBR
(Master Boot Record) gespeichert sind. Da ein MBR sehr klein ist (512 Bytes),
können nur vier primäre Partitionen definiert werden (zum Beispiel
/dev/sda1 bis /dev/sda4).
Eine erweiterte Partition ist eine spezielle primäre Partition (was
bedeutet, dass eine erweiterte Partition eine der vier möglichen primären
Partitionen sein muss), welche mehrere Partitionen beinhaltet. Eine solche
Partition existierte ursprünglich nicht, aber da vier Partitionen zu wenig sind,
wurden sie erfunden, um das Format zu erweitern ohne die Rückwärtskompatibilität
zu verlieren.
Eine logische Partition ist eine Partition innerhalb einer erweiterten
Partition. Ihre Definitionen sind nicht im MBR gespeichert, sondern in der
erweiterten Partition.
Fortgeschrittene Speicherung
Die AMD64-Installations-CDs bieten Unterstützung für EVMS oder
LVM2. EVMS oder LVM2 erlauben es Ihnen Ihr Partitionssetup flexibler zu
gestalten. Innerhalb dieser Installationsanleitung konzentrieren wir uns auf
"normale" Partitionen, es ist aber gut zu wissen, dass EVMS und LVM2 genauso
unterstützt werden.
4.b. Erstellung eines Partitionsschemas
Standard Partitionsschema
Wenn Sie nicht daran interessiert sind ein Partitionsschema für Ihr System zu
erstellen, können Sie das Partitionsschema verwenden, welches wir
in diesem Handbuch benutzen:
| Partition |
Dateisystem |
Größe |
Beschreibung |
| /dev/sda1 |
ext2 |
32M |
Boot Partition |
| /dev/sda2 |
(swap) |
512M |
Swap-Partition |
| /dev/sda3 |
ext3 |
Rest der Festplatte |
Root Partition |
Wenn Sie daran interessiert sind zu erfahren, wie groß eine Partition sein
sollte, oder auch wie viele Partitionen (oder Volumes) Sie benötigen, lesen
Sie weiter. Anderenfalls fahren Sie nun mit dem Partitionieren Ihrer Festplatte fort.
Wie viele und wie groß?
Die Anzahl an Partitionen hängt von Ihrer Umgebung ab. Wenn Sie z.B. eine Menge
User haben, wollen Sie höchst wahrscheinlich Ihr /home separat
halten, da es die Sicherheit erhöht und Backups einfacher macht. Wenn Sie
Gentoo installieren um als Mailserver zu fungieren, sollten Sie
/var separat halten, da alle Mails in /var
gespeichert werden. Eine gute Wahl des Dateisystems maximiert dann zusätzlich
die Performance. Gameserver sollten ein separates /opt haben, da
die meisten Server für Spiele dort installiert werden. Der Grund ist ähnlich
wie bei /home: Sicherheit und Backups. Es liegt definitiv in Ihrem
Interesse /usr groß zu behalten: es wird nicht nur die Mehrheit
der Programme enthalten; der Portage-Baum allein belegt etwa 500Mbyte, ohne die
verschiedensten Quellen die darin gespeichert sind mitzurechnen.
Wie Sie sehen können, hängt es sehr stark davon ab, was Sie erreichen wollen.
Separate Partitionen oder Volumes haben folgende Vorteile:
-
Sie können das Filesystem mit der höchsten Performance für jede Partition oder
jedes Volume auswählen
-
Ihr System behält noch freien Speicherplatz, selbst wenn ein defektes Tool
ununterbrochen Dateien auf eine Partition oder ein Volume schreibt
-
Falls nötig können Dateisystem Checks zeitlich verkürzt werden, in dem
mehrere Checks parallel durchgeführt werden können (obwohl dieser Vorteil eher
mit mehreren Festplatten als mit mehreren Partitionen zum Tragen kommt)
-
Die Sicherheit kann erhöht werden, indem Sie einige Partitionen oder Volumes
read-only, nosuid (setuid bits werden ignoriert), noexec (executable bits
werden ignoriert) etc mounten.
Jedoch, mehrere Partitionen haben einen großen Nachteil: wenn sie nicht
ordentlich konfiguriert werden, könnte das Resultat ein System sein, welches
viel Speicherplatz auf der einen Partition und keinen auf einer anderen frei
hat. Es gibt weiterhin ein Limit von 15 Partitionen bei SCSI und SATA.
Als Beispiel zeigen wir Ihnen die Partitionierung einer 20GB Festplatte, welche
in einem Notebook zu Demonstrationszwecken genutzt wird (inklusive Webserver,
Mailserver, Gnome, ...):
Befehlsauflistung 2.1: Dateisystemnutzung, Beispiel |
$ df -h
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda5 ext3 509M 132M 351M 28% /
/dev/sda2 ext3 5.0G 3.0G 1.8G 63% /home
/dev/sda7 ext3 7.9G 6.2G 1.3G 83% /usr
/dev/sda8 ext3 1011M 483M 477M 51% /opt
/dev/sda9 ext3 2.0G 607M 1.3G 32% /var
/dev/sda1 ext2 51M 17M 31M 36% /boot
/dev/sda6 swap 516M 12M 504M 2% <not mounted>
|
/usr ist ziemlich voll (83% used), aber sobald die ganze Software
installiert ist, tendiert /usr nicht mehr dazu allzuviel zu
wachsen. Die Zuweisung von einigen Gigabyte Festplattenspeicher für
/var erscheint exzessiv, Sie sollten aber daran denken, dass
Portage diese Partition standardmäßig zur Kompilierung von Paketen verwendet.
Wenn Sie /var eine etwas angemessenere Größe, wie z.B. 1GB,
zuweisen möchten, müssen Sie die PORTAGE_TMPDIR Variable in
/etc/make.conf auf eine Partition mit genügend freiem
Speicherplatz verweisen lassen, damit genug freier Speicher auch für extrem
große Pakete wie OpenOffice vorhanden ist.
4.c. Partitionierung Ihrer Festplatte
Die folgenden Teile erklären, wie das bereits beschriebene Beispiel
Partitionslayout erstellt wird:
| Partition |
Beschreibung |
| /dev/sda1 |
Boot-Partition |
| /dev/sda2 |
Swap-Partition |
| /dev/sda3 |
Root-Partition |
Ändern Sie Ihr Partitionslayout nach Ihren eigenen Vorstellungen.
Die derzeitige Partitionstabelle ansehen
Fdisk ist ein verbreitetes und mächtiges Tool um Ihre Festplatte in
Partitionen zu teilen. Starten Sie fdisk für Ihre Festplatte (in unserem
Beispiel benutzen wir /dev/sda):
Befehlsauflistung 3.1: Starten von fdisk |
# fdisk /dev/sda
|
Sobald Sie in fdisk sind, werden Sie mit folgendem Prompt begrüßt:
Befehlsauflistung 3.2: fdisk Prompt |
Command (m for help):
|
Drücken Sie p um Ihr derzeitige Partitionstabelle anzeigen zu lassen:
Befehlsauflistung 3.3: Eine Beispiel Partitionstabelle |
Command (m for help): p
Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 49 264600 82 Linux swap
/dev/sda3 50 70 158760 83 Linux
/dev/sda4 71 2184 15981840 5 Extended
/dev/sda5 71 209 1050808+ 83 Linux
/dev/sda6 210 348 1050808+ 83 Linux
/dev/sda7 349 626 2101648+ 83 Linux
/dev/sda8 627 904 2101648+ 83 Linux
/dev/sda9 905 2184 9676768+ 83 Linux
Command (m for help):
|
Diese Festplatte beherbergt sieben Linux-Dateisysteme (jedes mit einer
dazugehörigen Partition, gelistet als "Linux") und auch eine Swap-Partition
(gelistet als "Linux swap").
Löschen aller Partitionen
Zuerst entfernen wir alle existierenden Partitionen von der Festplatte. Drücken
Sie d um eine Partition zu löschen. Zum Beispiel um ein bestehendes
/dev/sda1 zu löschen:
Befehlsauflistung 3.4: Löschen einer Partition |
Command (m for help): d
Partition number (1-4): 1
|
Die Partition wurde zum Löschen markiert und wird nicht mehr angezeigt, wenn
Sie p drücken, sie wird aber nicht gelöscht, bis Ihre Änderungen
gespeichert sind. Wenn Sie einen Fehler gemacht haben und ohne zu Speichern
abbrechen wollen, drücken Sie umgehend q und Enter; Ihre Partition wird
dann nicht gelöscht.
Angenommen, dass Sie wirklich all Ihre Partitionen auf Ihrer Festplatte löschen
wollen, drücken Sie noch einmal p um die Partitionstabelle anzuzeigen und
dann d und die Nummer der Partition die Sie löschen wollen. Irgendwann
werden Sie eine leere Partitionstabelle haben:
Befehlsauflistung 3.5: Eine leere Partitionstabelle |
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
Command (m for help):
|
Jetzt, da die Partitionstabelle im Speicher leer ist, sind wir vorbereitet, um
die Partitionen zu erstellen. Wir werden ein Standard-Partitionsschema benutzen,
wie wir es zuvor angesprochen haben.
Natürlich sollten Sie die Instruktionen nicht buchstäblich ausführen, wenn Sie
ein anderes Partitionsschema verwenden wollen!
Erstellung der Boot-Partition
Zuerst erstellen wir eine kleine Boot-Partition. Drücken Sie n, um eine
neue Partition zu erstellen, dann p, um eine primäre Partition zu wählen,
gefolgt von 1 für die erste primäre Partition. Wenn Sie nach dem ersten
Zylinder gefragt werden, drücken Sie Enter. Für den letzten Zylinder geben Sie
+32M ein, um eine 32 MB Partition mit gesetztem bootable-Flag zu
erzeugen.
Befehlsauflistung 3.6: Erstellen der Boot-Partition |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M
|
Wenn Sie jetzt p drücken, sollten Sie die folgende Partitionstabelle
sehen:
Befehlsauflistung 3.7: Erstellte Boot-Partition |
Command (m for help): p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 14 105808+ 83 Linux
|
Sie müssen diese Partition bootbar machen. Drücken Sie a, um das
bootable-Flag auf dieser Partition zu aktivieren und wählen Sie 1.
Wenn Sie wiederum p drücken, werden Sie feststellen, dass in der "Boot"
Spalte ein * platziert ist.
Erstellen der Swap-Partition
Nun erstellen Sie die Swap-Partition. Dazu drücken Sie n, um eine
Partition zu erstellen, dann p, um fdisk mitzuteilen, dass Sie eine
primäre Partition anlegen möchten. Dann drücken Sie 2, um die zweite
primäre Partition, dev/sda2 in unserem Fall, anzulegen. Wenn Sie
nach dem ersten Zylinder gefragt werden, drücken Sie Enter. Wenn Sie nach dem
letzten Zylinder gefragt werden, tippen Sie +512M, um eine Partition mit
einer Größe von 512 MB zu erstellen. Nachdem Sie dies getan haben, müssen Sie
mit t den Partitionstyp festlegen, 2, um die gerade angelegte
Partition auszuwählen und dann 82, um den Partitionstyp als "Linux Swap"
festzulegen. Nachdem Sie diese Schritte abgeschlossen haben, drücken Sie
p und Sie erhalten eine Partitionstabelle, die dieser recht ähnlich
sieht:
Befehlsauflistung 3.8: Partitionstabelle nach dem Erstellen der Swap-Partition |
Command (m for help): p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 81 506520 82 Linux swap
|
Erstellen der Root-Partition
Zum Schluss müssen sie noch die Root-Partition erstellen. Dazu drücken Sie
n, um eine Partition zu erstellen, dann p, um fdisk mitzuteilen,
dass Sie eine primäre Partition anlegen möchten. Dann drücken Sie 3, um
die dritte primäre Partition, /dev/sda3 in unserem Fall, anzulegen.
Wenn Sie nach dem ersten Zylinder gefragt werden, drücken Sie Enter. Wenn Sie
nach dem letzten Zylinder gefragt werden, tippen Sie Enter, um eine Partition zu
erstellen, die den restlichen freien Platz belegt. Nachdem Sie diese Schritte
abgeschlossen haben, drücken Sie p und Sie erhalten eine
Paritionstabelle, die dieser recht ähnlich sieht:
Befehlsauflistung 3.9: Partitionstabelle nach dem Erstellen der Root-Partition |
Command (m for help): p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 81 506520 82 Linux swap
/dev/sda3 82 3876 28690200 83 Linux
|
Speichern der Partitionstabelle
Um die Partitionstabelle zu speichern und fdisk zu verlassen, drücken Sie
w.
Befehlsauflistung 3.10: Speichern und verlassen von fdisk |
Command (m for help): w
|
Nachdem Ihre Partitionen nun erstellt sind, können Sie mit dem
Erstellen der Dateisysteme fortfahren.
4.d. Erstellen der Dateisysteme
Einleitung
Nun da Ihre Partitionen erstellt sind ist es Zeit auf diesen ein Dateisystem
einzurichten. Wenn Sie sich keine Gedanken über das einzusetzende Dateisystem
machen (möchten), gehen Sie zum Eine Partition
mit einem Dateisystem formatieren Abschnitt vor, andernfalls lesen Sie
weiter um etwas über verfügbare Dateisysteme zu lernen ...
Dateisysteme
Verschiedene Dateisysteme sind verfügbar. Einige von ihnen sind als stabil auf
amd64 bekannt, andere nicht. Die folgenden Dateisystem sind als stabil bekannt:
ext2, ext3 und XFS. JFS und ReiserFS können funktionieren, sind aber noch nicht
ausreichend erprobt. Wenn Sie ein Abenteuer suchen können Sie die anderen
Dateisysteme ausprobieren.
ext2 ist das erprobte und wahre Linux Dateisystem, unterstützt aber keine
Metadaten-Journalisierung, was bedeutet, dass routinemäßige Überprüfungen des
Dateisystem beim Booten ziemlich zeitaufwändig sein können. Es gibt mittlerweile
eine Auswahl an journalisierenden Dateisystemen neuerer Generation, die die
Konsistenzchecks sehr schnell erledigen und dadurch im Vergleich mit den
nicht-journalisierenden Gegenstücken vorzuziehen sind. Jounalisierende
Dateisysteme verhindern lange Verzögerungen beim Booten, wenn sich das
Dateisystem in einem inkonsistenten Zustand befindet. Wenn Sie vorhaben, Gentoo
auf einer sehr kleinen Platte (weniger als 4GB) zu installieren, dann müssen Sie
ext2 anweisen, genügend Inodes zu reservieren, wenn Sie das Dateisystem
erstellen. Dies geschieht mit mke2fs -T small /dev/<device>.
ext3 ist die journalisierte Version des ext2-Dateisystem. Es liefert
Metadaten-Journalisierung für schnelle Wiederherstellung, sowie andere
verbesserte Journalisierungs-Modi wie "Full Data"- und "Ordered
Data"-Journalisierung. Es verwendet einen HTree-Index der in fast allen
Situation zu einer hohen Performance führt. Kurz, ext3 ist ein sehr gutes und
verlässliches Dateisystem. Wenn Sie vorhaben, Gentoo auf einer sehr kleinen
Platte (weniger als 4GB) zu installieren, dann müssen Sie ext2 anweisen,
genügend Inodes zu reservieren, wenn Sie das Dateisystem erstellen. Dies
geschieht mit mke2fs -j -T small /dev/<device>.
JFS ist IBMs journalisiertes Hochgeschwindigkeits-Dateisystem. JFS ist
schlankes, schnelles und verläßliches B+Tree basierendes Dateisystem mit guter
Performance in zahlreichen Situationen.
ReiserFS ist ein auf B+-Trees basierendes Dateisystem mit einer insgesamt
guten Performance, besonders wenn mit vielen sehr kleinen Dateien, zur Last von
mehr CPU-Zyklen, gearbeitet wird. ReiserFS hat den Anschein weniger gepflegt zu
werden als andere Dateisysteme.
XFS ist ein Dateisystem mit Metadaten-Journalisierung, es liefert einen
robusten Satz von Features und ist auf Skalierbarkeit optimiert. XFS scheint
weniger robust zu sein bei verschiedenen Hardware-Problemen.
Eine Partition mit einem Dateisystem formatieren
Um ein Dateisystem auf einer Partition oder einem Volume zu erstellen, gibt es
für jedes Dateisystem Tools:
| Dateisystem |
Kommando |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Um die Boot-Partition (/dev/sda1 in unserem Beispiel) als ext2 und
die Root-Partition (/dev/sda3 in unserem Beispiel) als ext3 (wie in
unserem Beispiel) zu formatieren, führen Sie folgende Kommandos aus:
Befehlsauflistung 4.1: Eine Partition mit einem Dateisystem formatieren |
# mke2fs /dev/sda1
# mke2fs -j /dev/sda3
|
Erstellen Sie nun die Dateisysteme auf Ihren neu erstellten Partitionen (oder
logischen Volumes).
Aktivieren der Swap-Partition
mkswap ist der Befehl, mit dem Sie die Swap-Partition initialisieren:
Befehlsauflistung 4.2: Erstellen der Swap-Signatur |
# mkswap /dev/sda2
|
Um die Swap-Partition zu aktivieren, benutzen Sie swapon:
Befehlsauflistung 4.3: Aktivieren der Swap-Partition |
# swapon /dev/sda2
|
Erstellen und aktivieren Sie jetzt Ihre Swap-Partition mit den gerade erwähnten
Befehlen.
4.e. Mounten
Nachdem Ihre Partitionen nun initialisiert sind und ein Dateisystem beinhalten,
ist es an der Zeit diese Partitionen zu mounten. Benutzen Sie das mount
Kommando. Vergessen Sie nicht die notwendigen Mount-Verzeichnisse für jede
erstellte Partition anzulegen. Als Beispiel mounten wir die root- und boot-
Partition:
Befehlsauflistung 5.1: Mounten von Partitionen |
# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot
|
Notiz:
Wenn Sie /tmp auf eine separate Partition legen möchten, stellen
Sie sicher, dass Sie die Berechtigungen nach dem mounten ändern:
chmod 1777 /mnt/gentoo/tmp. Dies gilt auch für /var/tmp.
|
Sie müssen auch noch das proc-Dateisystem (eine virtuelle Schnittstelle zum
Kernel) auf /proc mounten. Zunächst müssen wir jedoch alle
Dateien auf der Partition ablegen.
Fahren Sie mit der Installation der Gentoo
Installationdateien fort.
5. Installation der Gentoo Installationsdateien
5.a. Ein Stagearchiv installieren
Setzen von Zeit/Datum
Bevor Sie fortfahren, sollten Sie Ihre Zeit/Datum Einstellung überprüfen und
gegebenenfalls anpassen. Eine falsch eingestellte Uhr kann zu merkwürdigen
Resultaten in der Zukunft führen.
Um Zeit und Datum zu überprüfen, führen Sie date aus:
Befehlsauflistung 1.1: Zeit/Datum überprüfen |
# date
Fri Mar 29 16:21:18 UTC 2005
|
Wenn Zeit oder Datum falsch angezeigt wird, passen Sie die Einstellung mit der
date MMDDhhmmYYYY Syntax (Month, Day, hour,
minute und Year) an. Zu diesem Zeitpunkt sollten Sie UTC-Zeit
verwenden. Sie werden später die Gelegenheit dazu haben Ihre lokale Zeitzone
anzugeben. Um die Zeiteinstellung auf den 29. März 2005, 16:21 Uhr zu setzen,
führen Sie zum Beispiel folgenden Befehl aus:
Befehlsauflistung 1.2: Setzen von UTC-Zeit/Datum |
# date 032916212005
|
Eine Wahl treffen
Der nächste Schritt ist die Installation des Stage3-Archivs auf Ihrem
System. Sie können den entsprechenden Tarball aus dem Internet laden oder, wenn
Sie von einer der Gentoo Universal-Installations-CDs oder LiveDVDs gebootet
haben, von der CD/DVD selbst kopieren. Wenn Sie die Universal CD haben und das
Stage-Archiv welches Sie nutzen möchten auf dieser CD enthalten ist, ist es eine
reine Bandbreitenverschwendung das Stagearchiv noch einmal herunterzuladen, da
diese Stages gleich sind. In den meisten Fällen hilft Ihnen der Befehl
uname -m die Entscheidung abzunehmen, welches Stagearchiv für Sie das
geeignete ist.
Minimal-CDs und LiveCDs enthalten keine stage3-Archive, die LiveDVDs schon.
5.b. Standard: Herunterladen aus dem Internet
Herunterladen des Stagearchivs
Wechseln Sie nun zum Gentoo-Mountpoint, jenes Verzeichnis unter dem
Sie vorhin Ihre zukünftige Gentoo-Partition eingebunden haben
(wahrscheinlich /mnt/gentoo):
Befehlsauflistung 2.1: Wechseln zum Gentoo-Mountpoint |
# cd /mnt/gentoo
|
Abhängig vom Installationsmedium finden Sie verschiedene Programme um das
Stagearchiv herunter zu laden. Falls links verfügbar ist, können Sie
sofort die Gentoo
Mirrorliste ansteuern und und einen Mirror in Ihrer Nähe auswählen.
Wenn links nicht verfügbar ist sollte Ihnen lynx bereit stehen.
Wenn Sie über einen Proxy in das Internet gehen, exportieren Sie die
http_proxy und ftp_proxy Variablen:
Befehlsauflistung 2.2: Konfiguration der Proxy Informationen für lynx |
# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"
|
Wir gehen ab jetzt davon aus, dass Ihnen links zur Verfügung steht.
Wechseln Sie nun in das Verzeichnis
releases/amd64/autobuilds/. Dort sollten Sie nun alle
verfügbaren stage-Dateien für Ihre Rechnerarchitektur vorfinden (evtl. auch in
weiteren Unterverzeichnissen, die nach der individuellen Subarchitektur benannt
sind). Wählen Sie eine Datei aus und starten den Download mit der Taste
D. Nach dem Download können Sie den Browser mit der taste Q
schließen.
Befehlsauflistung 2.3: Mirrorliste mit links anschauen |
# links http://www.gentoo.org/main/en/mirrors.xml
# links -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml
|
Stellen Sie sicher, dass Sie ein stage3-Archiv herunterladen. Installationen
mit einem stage1- oder stage2-Archiv werden nicht länger unterstützt.
Wenn Sie die Integrität des heruntergeladenen Stagearchives prüfen wollen,
benutzen Sie md5sum und vergleichen Sie die Ausgabe mit den auf dem
Mirror gespeicherten MD5-Prüfsummen.
Befehlsauflistung 2.4: Integrität eines Stagearchivs prüfen |
# md5sum -c stage3-amd64-<release>.tar.bz2.DIGESTS
stage3-amd64-<release>.tar.bz2: OK
|
Entpacken des Stagearchivs
Nun entpacken Sie das heruntergeladene Stagearchiv auf Ihrem System.
Wir benutzen tar dafür, weil es die einfachste Methode ist:
Befehlsauflistung 2.5: Entpacken des Stagearchivs |
# tar xvjpf stage3-*.tar.bz2
|
Stellen Sie sicher, dass Sie die gleichen Schalter (xvjpf) verwenden.
Das x steht für Auspacken (engl. Extract), das v
für Auskunftsfreudig (engl. Verbose) um zu sehen, was während des
Entpackvorgangs passiert (optional), das j für
Dekomprimieren mit bzip2, das p für Erhalt der Dateirechte
(engl. Preserve permissions) und das f zeigt an, dass wir eine
Datei auspacken wollen und nicht die Standardeingabe benutzen.
Wenn das Stagearchiv installiert ist, fahren Sie nun mit der
Installation von Portage fort.
5.c. Installation von Portage
Einen Portage-Snapshot entpacken
Sie müssen einen Snapshot des Portage-Tree installieren, eine Sammlung von
Dateien, die Portage informieren, welche Porgramme installiert werden können,
welche Profile es gibt, etc.
Herunterladen und Installieren eines Portage-Snapshots
Wechseln Sie zu dem Mountpoint, an den Sie Ihre Dateisystem gemountet haben
(meistens /mnt/gentoo):
Befehlsauflistung 3.1: Wechseln zum Mountpoint |
# cd /mnt/gentoo
|
Starten Sie links (oder lynx) und wechseln Sie auf die Gentoo Mirror Liste.
Wählen Sie einen nahegelegenen Mirror aus und öffnen Sie das
snapshots/ Verzeichnis. Laden Sie von dort den aktuellsten
Snapshot (portage-latest.tar.bz2) herunter, indem Sie D
drücken.
Befehlsauflistung 3.2: Anschauen der Gentoo Mirror Liste |
# links http://www.gentoo.org/main/en/mirrors.xml
|
Schliessen Sie den Browser nun mittles Q. Sie haben nun einen Snapshot
in /mnt/gentoo liegen.
Wenn Sie die Integrität des heruntergeladenen Snapshosts überprüfen wollen
können Sie md5sum verwenden und die Ausgabe mit der auf unserem Mirror
bereitgestellten MD5-Prüfsumme vergleichen.
Befehlsauflistung 3.3: Integrität eines Portage-Snapshots überprüfen |
# md5sum -c portage-latest.tar.bz2.md5sum
portage-latest.tar.bz2: OK
|
Im nächsten Schritt werden wir den Snapshot in Ihrem Dateisystem entpacken.
Kontrollieren Sie, dass Sie den exakten Befehl verwenden; die letzte Option
ist ein großes C, nicht c.
Befehlsauflistung 3.4: Einen Portage-Snapshot entpacken |
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
|
5.d. Konfiguration der Compiler-Optionen
Einführung
Um Gentoo zu optimieren, können Sie einige Variablen setzen, die Einfluss
auf das Verhalten von Portage nehmen. Alle diese Variablen können als
Umgebungsvariablen (mit export) gesetzt werden, dies ist aber keine
dauerhafte Lösung. Um Ihre Einstellungen zu behalten, bietet Portage Ihnen
/etc/make.conf, eine Konfigurationsdatei für Portage. Diese Datei
werden wir nun bearbeiten.
Notiz:
Eine kommentierte Auflistung aller verfügbaren Variablen finden Sie in
/mnt/gentoo/usr/share/portage/config/make.conf.example. Für eine
erfolgreiche Gentoo-Installation müssen Sie aber nur die im folgenden
beschriebenen Variablen setzen.
|
Starten Sie Ihren Lieblingseditor (in diesem Leitfaden nutzen wir nano)
um die im Folgenden vorgestellten Optimierungsvariablen zu ändern.
Befehlsauflistung 4.1: /etc/make.conf bearbeiten |
# nano -w /mnt/gentoo/etc/make.conf
|
Wie Sie sicher sofort bemerkt haben, schaut die Datei
make.conf.example wie eine typische Konfigurationsdatei aus:
auskommentierte Zeilen beginnen mit einem "#", andere Zeilen definieren
Variablen mittels einer VARIABLE="content" Syntax. Die
make.conf Datei nutzt die gleiche Syntax. Einige dieser Variablen
werden nun vorgestellt.
CFLAGS und CXXFLAGS
Die CFLAGS und CXXFLAGS Variablen definieren die Optimierungen
beispielsweise für den gcc C und C++ Compiler. Obgleich wir diese hier
nur allgemein definieren, erhalten Sie die maximale Leistung nur, wenn Sie die
Flags für jedes Programm einzeln optimieren. Als Begründung sei genannt: Jedes
Programm verhält sich anders.
In make.conf sollten Sie die Optimierungs-Flags definieren, von
denen Sie erwarten, dass diese Ihr System insgesamt zu
Geschwindigkeitssteigerungen verhelfen. Machen Sie keine Experimente bei dieser
Variable; zu forsche Optimierung kann dazu führen, dass Programme sich böswillig
verhalten (Abstürze, oder noch viel schlimmer: Fehlfunktionen).
Wir werden nicht alle möglichen Optimierungsoptionen erklären. Wenn Sie
diese gerne komplett kennenlernen möchten, schauen Sie sich das
GNU Online Manual
oder die gcc Info-Seite (info gcc -- funktioniert erst auf einem
installierten System) an. Die make.conf.example Datei selbst
enthält weitere Beispiele und Informationen; vergessen Sie nicht, diese zu
lesen.
Die erste Einstellung ist das -march= oder -mtune= Flag, dieses
spezifiziert den Namen der Zielarchitektur. Mögliche Optionen werden in
make.conf.example in den Kommentaren beschrieben.
Die zweite ist das -O Flag (das ist ein großes O, keine Null), welches
für eine gcc Optimierungsklasse steht.
Mögliche Klassen sind s (schlankes Kompilat, engl. size-optimized),
0 (eine Null für keine Optimierung), 1, 2 oder sogar
3 für auf höhere Geschwindigkeit optimierte Flags (jede Klasse erbt die
Flags der kleineren, zuzüglich ein paar Extras). Die empfohlene
Standardeinstellung ist -O2. Es ist bekannt, dass -O3 Probleme
bereitet, wenn es systemweit genutzt wird, daher empfehlen wir, dass Sie
-O2 beibehalten.
Ein weiteres, gerne benutztes Optimierungsflag, ist -pipe (benutzt Pipes
statt temporärer Dateien für die Kommunikation zwischen den verschiedenen
Stufen des Übersetzungsvorganges). Dies hat keinen Einfluss auf den generierten
Code.
Die Nutzung von -fomit-frame-pointer (welches den Frame-Pointer nicht in
einem Register bereithält, für Funktionen, die es nicht benötigen) kann
gravierende Auswirkungen auf das Debuggen von Anwendung haben.
In CFLAGS und CXXFLAGS sollten Sie gleich mehrere
Optimierungsflags kombinieren. Die im stage3-Archiv enthaltenen Vorgaben
sind für die erste Installation schon richtig eingestellt. Der folgende
Abschnitt dient nur als Beispiel:
Befehlsauflistung 4.2: Setzen der CFLAGS- und CXXFLAGS-Variablen |
CFLAGS="-march=k8 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
|
Notiz:
Für weitere Informationen darüber, wie die verschiedenen Kompilations-Optionen
auf Ihr System einwirken können, ziehen Sie bitte den Kompilations-Optimierungs-Leitfaden
zu Rate.
|
MAKEOPTS
Mit MAKEOPTS können Sie festlegen, wie viele Kompilerprozesse parallel
gestartet werden, wenn Sie ein Paket installieren. Eine gute Wahl ist die
Anzahl der CPUs in Ihrem System erhöht um Eins.
Befehlsauflistung 4.3: MAKEOPTS eines gewöhnlichen 1-CPU Systems |
MAKEOPTS="-j2"
|
Auf die Plätze, fertig, los!
Aktualisieren Sie /mnt/gentoo/etc/make.conf nach Ihren
Bedürfnissen und speichern Sie die Datei (nano Benutzer drücken
Strg-X). Nun sind Sie bereit um mit der
Installation des Gentoo Basis-Systems
fort zu fahren.
6. Installation des Gentoo Basissystem
6.a. Chroot
Optional: Auswahl eines Mirrors
Um Quellcode schnell herunterladen zu können, empfehlen wir einen schnellen
Spiegel auszuwählen. Portage schaut in make.conf nach einer
GENTOO_MIRRORS-Variable und benutzt die dort gelisteten Spiegel. Sie können auf
unserer Spiegelübersicht nach
einem nahegelegenen Spiegel suchen (da diese meist auch die schnellsten sind),
wir bieten jedoch auch ein nettes Tool namens mirrorselect an, welches
Ihnen diesen Schritt abnimmt.
Befehlsauflistung 1.1: Nutztung von mirrorselect für die GENTOO_MIRRORS-Variable |
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
|
Warnung:
Wählen Sie keine IPv6 Spiegel aus. Unsere Stage-Archive unterstützen zurzeit
noch kein IPv6.
|
Eine zweite wichtige Konfiguration ist die SYNC-Variable in
make.conf. Diese Variable enthält den rsync-Server, den Sie zum
aktualisieren Ihres Portage-Trees (die Kollektion von Ebuilds, Skripte die alle
Informationen enthalten, die Portage zur Installation von Software benötigt)
verwenden wollen. Auch wenn Sie dies manuell festlegen können,
mirrorselect kann Ihnen auch diesen Schritt abnehmen:
Befehlsauflistung 1.2: Mit mirrorselect einen rsync Server auswählen |
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
|
Nachdem Sie mirrorselect ausgeführt haben, ist es ratsam die
Einstellungen in /mnt/gentoo/etc/make.conf sorgfältig zu
überprüfen.
Kopieren der DNS-Informationen
Einen Schritt müssen Sie noch machen, bevor Sie Ihre neue Umgebung betreten
können. Das ist das Kopieren der DNS-Informationen aus der
/etc/resolv.conf in die Chroot-Umgebung. Sie müssen diesen Schritt
ausführen, um sicherzustellen, dass Ihr Netzwerk nach dem Betreten der
Chroot-Umgebung noch funktioniert. /etc/resolv.conf enthält die
Nameserver für Ihr Netzwerk.
Befehlsauflistung 1.3: Kopieren der DNS-Informationen |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/
|
Mounten der /proc und /dev Dateisysteme
Mounten Sie das /proc Dateisystem nach
/mnt/gentoo/proc, um für die Installation vom Kernel angebotene
Informationen innerhalb der chroot Umgebung nutzbar zu machen. Mounten Sie
außerdem mit Bind das /dev Dateisystem.
Befehlsauflistung 1.4: Mounten von /proc und /dev |
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
|
Betreten der neuen Umgebung
Nachdem nun alle Partitionen initialisiert und das Basissystem installiert
ist, können Sie nun Ihre neue Installationsumgebung betreten, indem Sie
in die Umgebung chrooten. Das bedeutet, dass Sie von der aktuellen
Installationsumgebung (die Installations-CD oder ein anderes
Installationsmedium) in Ihr zu installierendes System (nämlich das der
initialisierten Partitionen) wechseln.
Das chrooting erfolgt in 3 Schritten. Als erstes werden wir das root von
/ (auf dem Installationsmedium) nach /mnt/gentoo (auf Ihren
Partitionen) mittels chroot wechseln. Sie müssen nun eine neue Umgebung
anlegen, indem Sie env-update benutzen, was hauptsächlich neue
Umgebungsvariablen anlegt. Zu guter Letzt laden Sie diese Variablen durch
den Befehl source in den Speicher.
Befehlsauflistung 1.5: Chroot in die neue Umgebung |
# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"
|
Glückwunsch! Sie sind nun in Ihrer neuen Gentoo Linux Umgebung. Natürlich sind
wir noch nicht fertig, darum gibt es auch noch einige Abschnitte in der
Anleitung denen Sie folgen müssen.
6.b. Portage konfigurieren
Portage-Tree updaten
Sie sollten nun Ihren Portage-Tree auf den aktuellsten Stand bringen. emerge
--sync macht dies für Sie.
Befehlsauflistung 2.1: Portage-Tree updaten |
# emerge --sync
# emerge --sync --quiet
|
Wenn Sie sich hinter einer Firewall befinden, die rsync-Verkehr blockiert,
können Sie emerge-webrsync benutzen, welches einen Snapshot herunterladen
und installieren wird.
Falls Sie gewarnt werden, dass eine neue Version von Portage verfügbar ist und
Sie aktualisieren sollten, sollten Sie dies nun mit dem Befehl emerge
--oneshot portage tun.
Auswahl des richtigen Profils
Zunächst ist eine kleine Defintion notwendig.
Ein Profil ist existenziell für ein Gentoo-System. Es definiert nicht nur
Standardwerte für USE, CFLAGS und andere wichtige Variablen, es beschränkt das
System auch auf eine definierte Masse an Paketversionen. Dies alles wird von
Gentoo-Entwicklern betreut.
Bisher hatten Benutzer mit Profilen wenig zu tun. Jedoch kann es bestimmte
Umstände geben in denen ein Profilwechsel möglicherweise notwendig ist.
Sie können das aktuell verwendete Profil mit dem folgenden Befehl anzeigen:
Befehlsauflistung 2.2: Überprüfen des Systemprofils |
# eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/10.0 *
[2] default/linux/amd64/10.0/desktop
[3] default/linux/amd64/10.0/server
|
Das Standardprofil wird Ihnen ein 2.6-basierendes Linux-System liefern. Dies
ist der empfohlene Standard, aber Sie haben auch die Möglichkeit ein anderes
Profil zu wählen.
Es sind außerdem desktop und server Subprofile für einige
Architekturen verfügbar. eselect profile list zeigt Ihnen alle
verfügbaren Profile an.
Nachdem Sie sich die verschiedenen Profile für Ihre Architektur angesehen haben,
können Sie, sofern Sie dies wünschen, ein anderes verwenden:
Befehlsauflistung 2.3: Profile wechseln |
# eselect profile set 2
|
Wenn Sie eine reine 64Bit-Umgebung wünschen, ohne 32Bit-Anwendungen oder
-Bibliotheken, sollten Sie ein kein-Multilib Profil verwenden:
Befehlsauflistung 2.4: Wechsel auf ein kein-Multilib Profil |
# eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/10.0 *
[2] default/linux/amd64/10.0/desktop
[3] default/linux/amd64/10.0/no-multilib
[4] default/linux/amd64/10.0/server
# eselect profile set 3
# eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/10.0
[2] default/linux/amd64/10.0/desktop
[3] default/linux/amd64/10.0/no-multilib *
[4] default/linux/amd64/10.0/server
|
Notiz:
Das Unterprofil developer ist für Aufgaben der Gentoo Linux Entwicklung
gedacht. Es ist nicht dafür gedacht generelle Entwicklungsumgebungen
einrzurichten.
|
Konfiguration der USE-Variable
USE heißt eine der mächtigsten Variable, die Gentoo seinen Benutzern
anbietet. Viele Programme können mit oder ohne optionale Unterstützung für
bestimmte Dinge übersetzt werden. Beispielsweise können einige Programme mit
gtk Unterstützung oder mit qt Unterstützung übersetzt werden oder mit keiner
der beiden. Einige Programme können mit oder ohne SSL-Unterstützung übersetzt
werden. Einige Programme können sogar mit Framebuffer-Support (svgalib)
anstelle von X11-Support (X-server) übersetzt werden.
Die meisten Distributionen kompilieren ihre Pakete mit eingeschalteter
Unterstützung für alles, was möglich ist. Dies vergrößert die Programme,
verlängert die Startzeit und, nicht zu vergessen, erhöht die Abhängigkeiten.
Mit Gentoo können Sie selbst bestimmen, mit welchen Optionen ein Paket
übersetzt werden soll. Hier kommen die USE-Variable ins Spiel.
Mit der USE-Variable definieren Sie Schlagworte, die dann auf
Optionen beim Übersetzen abgebildet werden. Zum Beispiel wird ssl
zu SSL-Unterstützung führen, wenn das Programm dies unterstützt.
-X entfernt die X-Server-Unterstützung (beachten Sie das
Minuszeichen). gnome gtk -kde -qt3 -qt4 führt zu übersetzten
Programmen mit Gnome- (und gtk-) Unterstützung aber ohne KDE- (und QT-)
Unterstützung, also zu einem ganz auf GNOME ausgerichteten System.
Die Standardeinstellungen für USE sind in der
make.defaults Datei in Ihrem Profil definiert.
Sie finden make.defaults Dateien in dem Verzeichnis, auf welches
/etc/make.profile zeigt und dem übergeordneten Verzeichnissen. Die
Gesamtheit aller aktivierten USE-Flags ergibt sich aus allen Angaben von
USE in allen make.defaults Dateien. Was Sie in
/etc/make.conf platzieren, wird zu den Standardeinstellungen
addiert. Wenn Sie der USE-Einstellung etwas hinzufügen, werden die
Standardvorgaben damit erweitert. Wenn Sie aus der USE-Einstellung
etwas entfernen (mit einem Minuszeichen davor), so wird dies
aus der Standardeinstellung entfernt (falls es überhaupt in dieser
vorhanden war). Niemals sollten Sie irgendwas in
/etc/make.profile modifizieren; dies wird beim nächsten Update von
Portage überschrieben!
Eine vollständige Beschreibung zu USE können Sie im zweiten Teil des
Gentoo-Handbuchs, USE-Flags,
lesen. Eine vollständige Beschreibung der USE-Flags finden Sie in Ihrem System
in /usr/portage/profiles/use.desc.
Befehlsauflistung 2.5: Verfügbare USE-Flags anschauen |
# less /usr/portage/profiles/use.desc
|
Als Beispiel nun die USE-Einstellung für ein
KDE-basiertes System mit Überstützung für DVD, ALSA und
CD-Brenner.
Befehlsauflistung 2.6: /etc/make.conf öffnen |
# nano -w /etc/make.conf
|
Befehlsauflistung 2.7: USE-Einstellung |
USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr"
|
Optional: Glibc-Locales
Sie werden vermutlich nur ein oder vielleicht zwei Locales in Ihrem System
benötigen. Sie können Locales, die Sie benötigen werden, in
/etc/locale.gen spezifizieren.
Befehlsauflistung 2.8: Öffnen von /etc/locale.gen |
# nano -w /etc/locale.gen
|
Die folgenden Locales sind ein Beispiel um Englisch (Vereinigte Staaten) und
Deutsch (Deutschland) mit den passendenden Zeichensätzen (wie UTF-8) zu
erhalten.
Befehlsauflistung 2.9: Spezifizieren Ihrer Locales |
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
|
Der nächste Schritt ist locale-gen auszuführen. Es erstellt alle
Locales, die Sie in der /etc/locale.gen Datei spezifiziert haben.
Fahren Sie nun mit der Konfiguration des
Kernels fort.
7. Konfiguration des Kernels
7.a. Setzen der Zeitzone des Systems
Zuerst müssen Sie Ihrem System mitteilen, in welcher Zeitzone es sich befindet.
Suchen Sie Ihre Zeitzone in /usr/share/zoneinfo und kopieren Sie
sie nach /etc/localtime.Bitte vermeiden Sie die
/usr/share/zoneinfo/Etc/GMT* Zeitzonen, denn deren Namen verweisen
nicht auf die erwarteten Zonen. Zum Beispiel ist GMT-8 in
Wirklichkeit GMT+8.
Befehlsauflistung 1.1: Setzen der Zeitzone |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/GMT /etc/localtime
|
7.b. Installieren der Quellen
Auswählen eines Kernels
Der Kern um den herum alle Distributionen gebaut sind ist der Linux-Kernel. Er
bildet die Ebene zwischen den Benutzerprogrammen und der Systemhardware. Gentoo
bietet seinen Benutzern verschiedene mögliche Kernelquellen. Eine komplette
Liste mit Beschreibungen finden Sie im
Gentoo Kernel Guide.
Für AMD64-basierende Systeme haben wir gentoo-sources
(Kernelquellen modifiziert für zusätzliche Funktionen).
Wählen Sie Ihre Kernelquellen aus und installieren Sie diese mit emerge.
Befehlsauflistung 2.1: Installieren von Kernelquellen |
# emerge gentoo-sources
|
Wenn Sie einen Blick in /usr/src werfen, sollten Sie einen
symbolischen Link mit Namen linuxsehen , der auf Ihre
Kernelquellen verweist. In diesem Fall verweisen die installierten
Kernelquellen auf gentoo-sources-2.6.30-r5. Beachten
Sie, dass Ihre Version davon abweichen kann.
Befehlsauflistung 2.2: Anzeigen des symbolischen Kernelquellen-Links |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.30-r5
|
Nun ist es Zeit Ihre Kernelquellen zu konfigurieren und zu kompilieren. Alle
Architekturen können genkernel verwenden, welches einen generischen
Kernel erstellt, wie er von der Installations-CD verwendet wird. Wir erklären
die "manuelle" Konfiguration jedoch zuerst, denn es ist der beste Weg Ihre
Umgebung zu optimieren.
Wenn Sie Ihren Kernel manuell konfigurieren wollen fahren Sie nun mit Standard: Manuelle Konfiguration fort. Wenn
Sie genkernel benutzen wollen, sollten Sie stattdessen
Alternativ: Benutzung von Genkernel lesen.
7.c. Standard: Manuelle Konfiguration
Einführung
Einen Kernel manuell zu konfigurieren wird oft als der schwierigste Teil
gesehen, den jeder Linux Benutzer insgesamt meistern muss. Nichts ist weiter von
der Wahrheit entfernt -- nach der Konfiguration von einigen Kerneln werden Sie
sich gar nicht daran erinnern, dass es schwer war.
Eine Sache jedoch ist wahr: Sie müssen Ihr System kennen, wenn Sie
beginnen einen Kernel manuell zu konfigurieren. Die meisten Informationen über
vorhandene Hardware können gesammelt werden, indem Sie sich pciutils
installieren (emerge pciutils), welches lspci enthält. Sie haben
nun die Möglichkeit lspci innerhalb der chroot-Umgebung zu verwenden.
Sie können ohne Sorge jegliche pcilib-Warnungen (wie pcilib: cannot open
/sys/bus/pci/devices), die lspci ausgibt, ignorieren. Alternativ können
Sie lspci aus einer nicht-chroot-Umgebung ausführen. Das Resultat
ist dasselbe. Sie können auch lsmod ausführen, um zu sehen welche
Kernelmodule die Installations-CD verwendet (es kann ihnen einen guten Hinweis
darauf geben was zu aktivieren ist).
Gehen Sie nun in Ihr Kernelquellverzeichnis und führen Sie make
menuconfig aus. Dies startet ein ncurses-basierentes Konfigurationsmenü.
Befehlsauflistung 3.1: Menuconfig starten |
# cd /usr/src/linux
# make menuconfig
|
Ihnen werden verschiedene Konfigurationssektionen präsentiert. Wir listen
zunächst einige Optionen auf, die sie aktivieren müssen (ansonsten wird Gentoo
nicht funktionieren, oder ohne zusätzliche Veränderungen nicht richtig
funktionieren).
Aktivieren der benötigten Optionen
Stellen Sie sicher, dass alle Treiber, die notwendig sind um Ihr System zu
booten (wie zum Beispiel Treiber für einen SCSI-Controller) in den Kernel
und nicht als Modul kompiliert werden, da Ihr System andernfalls nicht
vollständig booten kann.
Als nächstes wird der exakte Prozessortyp ausgewählt. Vom x86_64
Kernel-Maintainer wird dringend empfohlen die MCE-Funktionen zu aktivieren,
damit Sie bei jeglichen Hardwareproblemen benachrichtigt werden können. Auf
x86_64 werden diese Fehler nicht bei dmesg, wie auf anderen
Architekturen, ausgegeben, sondern auf /dev/mcelog. Dies benötigt
das app-admin/mcelog Paket. Stellen Sie sicher dass Sie IA32 EMULATION
ausgewählt haben, wenn Sie in der Lage sein wollen 32Bit-Programme auszuführen.
Gentoo wird standardmäßig ein Multilib-System installieren (gemischte
32Bit/64Bit Verarbeitung), daher werden Sie diese Option wahrscheinlich wollen.
Befehlsauflistung 3.2: Auswahl des Prozessortyps und dessen Funktionen |
Processor type and features --->
[ ] Machine Check Exception
[ ] Intel MCE Features
[ ] AMD MCE Features
Processor family (AMD-Opteron/Athlon64) --->
( ) Opteron/Athlon64/Hammer/K8
( ) Intel P4 / older Netburst based Xeon
( ) Core 2/newer Xeon
( ) Generic-x86-64
Executable file formats / Emulations --->
[*] IA32 Emulation
|
Gehen Sie nun in File Systems und selektieren Sie Unterstützung für die
Dateisysteme die Sie benutzen. Kompilieren Sie diese nicht als Module,
ansonsten wird ihr Gentoo System nicht fähig sein, Ihre Partitionen beim Booten
zu mounten. Selektieren Sie auch Virtual memory,
/proc file system.
Befehlsauflistung 3.3: Auswählen der benötigten Dateisysteme |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Wenn Sie PPPoE oder ein Modem benutzen um sich ins Internet einzuwählen brauchen
Sie folgende Optionen im Kernel:
Befehlsauflistung 3.4: Auswählen von Treibern, notwendig für PPPoE |
Device Drivers --->
Networking Support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
Die zwei Komprimierungsoptionen werden nicht schaden, aber werden auch nicht
definitiv gebraucht, ebenso die PPP over Ethernet Option, die
möglicherweise nur von ppp verwendet wird, wenn es dazu konfiguriert ist
Kernelmodus-PPPoE zu verwenden.
Wenn Sie diese benötigen, vergessen Sie nicht Ünterstützung für Ihre
Netzwerkkarte in Ihren Kernel einzubinden.
Wenn Sie einen Multi-CPU-Opteron oder ein Multi-Core-System (z.B. AMD64 X2)
haben sollten Sie "Symmetric multi-processing support" aktivieren:
Befehlsauflistung 3.5: Aktivieren der SMP-Unterstützung |
Processor type and features --->
[*] Symmetric multi-processing support
|
Notiz:
Auf Multi-Core Systemen zählt jeder Kern als ein Prozessor.
|
Wenn Sie USB-Eingabegeräte wie eine Tastatur oder Maus nutzen möchten, vergessen
Sie Unterstützung für diese ebenfalls nicht:
Befehlsauflistung 3.6: Aktivieren der USB-Unterstützung für Eingabegeräte |
Device Drivers --->
[*] HID Devices --->
<*> USB Human Interface Device (full HID) support
|
Kompilieren und Installieren
Nun da Ihr Kernel konfiguriert ist, ist es Zeit ihn zu kompilieren und zu
installieren. Verlassen Sie die Konfiguration und beginnen Sie mit dem
Kompilierungsvorgang:
Befehlsauflistung 3.7: Kompilieren des Kernels |
# make && make modules_install
|
Wenn der Kernel fertig kompiliert ist, kopieren Sie das Kernel-Image nach
/boot. Verwenden Sie jeglichen Namen, den Sie für Ihren Kernel
passend finden und merken Sie ihn sich, da Sie ihn später benötigen werden,
wenn Sie Ihren Bootloader konfigurieren. Denken Sie daran
kernel-2.6.30-gentoo-r5 durch den Namen und die Version Ihres
Kernels zu ersetzen.
Befehlsauflistung 3.8: Installieren des Kernels |
# cp arch/x86_64/boot/bzImage /boot/kernel-2.6.30-gentoo-r5
|
Fahren Sie nun mit Kernelmodule fort.
7.d. Alternativ: Benutzung von Genkernel
Wenn Sie diesen Abschnitt lesen, haben Sie sich entschieden unser
genkernel Skript zu benutzen, um sich Ihren Kernel automatisch
konfigurieren zu lassen.
Nun da Ihr Kernelquellbaum installiert ist, ist es an der Zeit Ihren Kernel
automatisch durch das genkernel Skript erstellen zu lassen.
genkernel arbeitet so, dass es einen Kernel konfiguriert, der fast
identisch ist zu denen auf unser Installations-CD. Dies bedeutet, dass wenn
Sie genkernel benutzen um Ihren Kernel zu erstellen, Ihr System generell
alle Hardware beim Booten erkennt, genau wie es unsere Installations-CD tut.
Weil genkernel keine manuelle Kernelkonfiguration erfordert ist es eine
ideale Lösung für die Benutzer, denen bei der Kompilierung eines eigenen
Kernels unwohl ist.
Nun lassen Sie uns sehen wie man Genkernel benutzt. Zuerst installieren Sie
genkernel:
Befehlsauflistung 4.1: Genkernel emergen |
# emerge genkernel
|
Kompilieren Sie nun Ihre Kernelquellen mit genkernel all Seien Sie sich
aber bewusst, dass genkernel einen Kernel kompiliert, der fast alle
Hardware unterstützt, was bedeutet dass das Kompilieren durchaus eine ganze
Weile dauern kann!
Beachten Sie das, wenn Ihre Boot-Partition weder ext2 noch ext3 als Dateisystem
benutzt Sie Ihren Kernel selber mit genkernel --menuconfig all
konfigurieren und Unterstützung für Ihr Dateisystem im Kernel aktivieren
müssen (nicht als Modul). Benutzer von EVMS2 oder LVM2 möchten vermutlich
das --evms2 oder das --lvm2 Argument hinzufügen.
Befehlsauflistung 4.2: Ausführen von Genkernel |
# genkernel all
|
Sobald genkernel beendet ist werden ein Kernel, ein voller Satz Module
und eine initial root disk (initrd) erstellt sein. Wir werden den Kernel
und initrd benutzen wenn wir später in diesem Handbuch einen Bootloader
konfigurieren. Schreiben Sie den Namen des Kernels und den Ihrer initrd auf, da
Sie diese brauchen werden, wenn Sie die den Bootloader konfigurieren. Die initrd
wird direkt nach dem Booten gestartet um die Hardware Autoerkennung zu starten
(genau wie auf der Installations-CD) bevor Ihr "echtes" System startet.
Befehlsauflistung 4.3: Kontrollieren der Namen von Kernel-Image und initrd |
# ls /boot/kernel* /boot/initramfs*
|
7.e. Kernelmodule
Konfiguration der Module
Sie sollten alle Module, die automatisch geladen werden sollen, in
/etc/modules.autoload.d/kernel-2.6 aufführen. Sie können, wenn Sie
wollen, zu den Modulen weitere Optionen angeben.
Um alle verfügbaren Module anzuzeigen, führen Sie folgenden find Befehl
aus. Vergessen Sie nicht "<kernel version>" mit der Version des Kernels zu
ersetzen, den Sie gerade kompiliert haben:
Befehlsauflistung 5.1: Anzeigen aller verfügbaren Module |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
|
Um zum Beispiel das Modul 3c59x.ko automatisch zu laden, editieren Sie
die Datei kernel-2.6 und tragen den Modulnamen ein.
Befehlsauflistung 5.2: /etc/modules.autoload.d/kernel-2.6 bearbeiten |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Befehlsauflistung 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Setzten Sie die Installation mit der Konfiguration des Systems fort.
8. Konfiguration des Systems
8.a. Einträge in der Datei /etc/fstab
Was ist die fstab?
Unter Linux müssen alle für das System notwendigen Partitionen in der Datei
/etc/fstab aufgelistet sein. Die Datei beinhaltet Informationen
darüber, an welcher Stelle jede Partition im Verzeichnisbaum eingehängt
(gemountet) werden soll, um welches Dateisystem es sich handelt und weitere
Optionen (automatisches Mounten beim Systemstart oder nicht, mounten durch User
erlauben für z.B. CD-Rom, Floppy, USB-Sticks usw.).
Erstellen von /etc/fstab
/etc/fstab benutzt die folgende Syntax. Jede Zeile besteht aus
sechs Feldern, die durch Leerzeichen oder Tabs getrennt sind. Jedes Feld hat
eine bestimmte Bedeutung:
-
Das erste Feld beschreibt die einzuhängende Partition (also den Pfad
zur Gerätedatei).
-
Das zweite Feld gibt den Mountpoint im Verzeichnisbaum für die
Partition an.
-
Das dritte Feld gibt den Typ des Dateisystems der Partition an.
-
Das vierte Feld gibt die Mount Optionen an, die beim Ausführen von
mount benutzt werden. Da es für jedes Dateisystem verschiedene
Mountoptionen gibt, ist es empfehlenswert die Liste der Optionen in der
man-page (man mount) nachzulesen. Mehrere Optionen werden durch
Kommata getrennt.
-
Das fünfte Feld wird von dump benutzt, um festzustellen, ob die
Partition gesichert (engl. gedumped) werden soll oder nicht.
Normalerweise lässt man diesen Wert auf 0 (Null).
-
Das sechste Feld wird von fsck ausgelesen, um festzustellen, ob es nach
unsauberem Herunterfahren des Systems nötig ist, das Dateisystem auf
Inkonsistenz zu prüfen. Das Root-Dateisystem sollte in diesem Feld
eine 1 haben; alle anderen Dateisysteme eine 2 (Dateisysteme,
bei denen keine Prüfung notwendig ist, eine 0).
Wichtig:
Die Standard /etc/fstab-Datei von Gentoo ist keine gültige
fstab-Datei. Sie müssen Ihre eigene /etc/fstab
erstellen.
|
Befehlsauflistung 1.1: Öffnen von /etc/fstab |
# nano -w /etc/fstab
|
Schauen wir uns einmal die Optionen für die /boot-Partition an.
Das ist nur ein Beispiel, wenn Sie keine /boot-Partition erstellen
konnten oder wollten, kopieren Sie dies nicht.
In unserem Standard-AMD64-Partitionierungsbeispiel ist
/boot normalerweise die Partition /dev/sda1
, mit ext2 als Dateisystem. Es muss während des Bootvorgangs
überprüft werden, daher würden wir aufschreiben:
Befehlsauflistung 1.2: Eine Beispielszeile für /boot in /etc/fstab |
/dev/sda1 /boot ext2 defaults 1 2
|
Einige Benutzer möchten nicht, dass ihre /boot-Partition
automatisch gemountet wird, um die Sicherheit des Systems zu erhöhen. In diesem
Fall sollen Sie defaults durch noauto ersetzen. Dies bedeutet,
dass Sie die Partition jedesmal händisch mounten müssen, wenn Sie sie benutzen
möchten.
Fügen Sie die Regeln hinzu, die zu Ihrem Partitionsschema passen und fügen Sie
zusätzlich Regeln für Ihr(e) CD-ROM-Laufwerk(e) und natürlich für weitere
Partitionen und Laufwerke, wenn Sie diese haben, hinzu.
Benutzen Sie nun das folgende Beispiel, um Ihre /etc/fstab
zu erstellen:
Befehlsauflistung 1.3: Ein komplettes Beispiel von /etc/fstab |
/dev/sda1 /boot ext2 defaults,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext3 noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
|
Die Option auto veranlasst mount, das Dateisystem automatisch zu
erkennen (empfehlenswert für austauschbare Medien, da diese verschiedene
Dateisysteme enthalten können, z.B. CD-ROMs). Die Option user erlaubt es
Usern das CD-ROM-Laufwerk zu mounten.
Um die Zugriffsgeschwindigkeit zu erhöhen, werden die meisten Benutzer
noatime als Mountoption hinzufügen wollen. Dadurch werden beim Lesen
Zugriffszeiten nicht auf das Dateisystem geschrieben (in den meisten Fällen
brauchen Sie diese nicht).
Überprüfen Sie nochmal jeden Eintrag, da bei Tippfehlern Ihr System
möglicherweise nicht bootet. Speichern Sie Ihre /etc/fstab und
beenden Sie den Editor.
8.b. Netzwerkkonfiguration
Hostname, Domainname, etc
Jetzt müssen Sie Ihrem Computer einen Namen geben, den so genannten Hostnamen.
Das ist eigentlich keine Kunst, aber einige Administratoren haben
Schwierigkeiten, einen angemessenen Namen für Ihr System zu finden. Sie sollten
jetzt keine großen Gedanken damit verschwenden, da Sie den Namen später noch
ändern können. Im folgendem Beispiel nennen wir unser System tux und die
Domain homenetwork.
Befehlsauflistung 2.1: Setzen des Hostnamens |
# nano -w /etc/conf.d/hostname
HOSTNAME="tux"
|
Danach, wenn Sie einen Domainnamen benötigen, setzen Sie ihn in
/etc/conf.d/net. Sie brauchen nur einen Domainnamen, wenn Ihr ISP
oder Netzwerkadministrator dies so verlangt, oder wenn Sie einen DNS-Server,
aber keinen DHCP-Server haben. Sie brauchen sich nicht um DNS oder Domainnamen
zu kümmern, wenn Ihr Netzwerk für DHCP eingerichtet ist.
Befehlsauflistung 2.2: Setzen des Domainnamens |
# nano -w /etc/conf.d/net
dns_domain_lo="heimnetzwerk"
|
Notiz:
Wenn Sie sich dafür entscheiden, keinen Domainnamen zu setzen, können Sie die
"This is hostname.(none)" Nachrichten am Anmeldebildschirm loswerden, indem Sie
/etc/issue editieren. Entfernen Sie einfach den String .\O
aus dieser Datei.
|
Wenn Sie eine NIS-Domain haben (wenn Sie nicht wissen, was das ist, haben Sie
keine), müssen Sie diese auch definieren:
Befehlsauflistung 2.3: Setzen des NIS-Domainnamens |
# nano -w /etc/conf.d/net
nis_domain_lo="my-nisdomain"
|
Notiz:
Für weitere Informationen wie Sie DNS und NIS konfigurieren können, lesen Sie
bitte die mitgelieferten Beispiele in /etc/conf.d/net.example.
Möglicherweise dürfte auch openresolv für Sie interessant sein, um Ihre
DNS/NIS-Einstellungen zu verwalten - Sie können es mit emerge installieren.
|
Konfiguration des Netzwerks
Bevor Sie jetzt denken: "Hey, das habe ich doch schon gemacht!", sollten Sie
sich daran erinnern, dass wir am Anfang der Gentoo Installation das Netzwerk
nur manuell konfiguriert haben und diese Einstellungen beim nächsten Reboot
nicht mehr gültig sind. Deswegen konfigurieren wir jetzt das Netzwerk, so dass
es beim Systemstart automatisch eingerichtet wird.
Notiz:
Detaillierte Informationen über Netzwerke, inklusive Themen für
Fortgeschrittene wie Bonding, Bridging, 802.11Q VLANs oder Wireless-Netzwerke
werden im Abschnitt Gentoo Netzwerkkonfiguration
erläutert.
|
Die Netzwerk-Konfiguration wird bei einem Gentoo System unter
/etc/conf.d/net abgespeichert. Die Syntax der Datei ist nicht
unbedingt intuitiv, wenn Sie so etwas noch nie manuell konfiguriert haben, aber
keine Panik, es wird in folgendem Abschnitt genau erklärt. Ein vollständig
kommentiertes Beispiel, welches viele verschiedene Konfigurationne behandelt,
findet sich in /etc/conf.d/net.example.
Standardmäßig wird DHCP verwendet. Damit DHCP funktioniert, werden Sie einen
DHCP-Client installieren müssen. Dies ist weiter in Installieren von notwendigen
Systemprogrammen beschrieben. Vergessen Sie nicht einen DHCP-Client zu
installieren.
Wenn Sie Ihre Netzwerkverbindung konfigurieren müssen, entweder weil Sie
spezifische DHCP-Optionen benötigen oder DHCP überhaupt nicht verwenden wollen,
öffnen Sie /etc/conf.d/net mit dem Editor Ihrer Wahl (in diesem
Beispiel benutzen wir nano):
Befehlsauflistung 2.4: Öffnen der Datei /etc/conf.d/net |
# nano -w /etc/conf.d/net
|
Sie werden folgendes sehen:
Befehlsauflistung 2.5: Standard /etc/conf.d/net |
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
|
Um Ihre eigene IP-Adresse, Netzmaske und Gateway zu setzen, müssen Sie
sowohl config_eth0, als auch routes_eth0 setzen:
Befehlsauflistung 2.6: Manuelle IP-Konfiguration für eth0 |
config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" )
routes_eth0=( "default via 192.168.0.1" )
|
Spezifizieren Sie config_eth0, um DHCP zu verwenden:
Befehlsauflistung 2.7: Automatisch eine IP-Adresse für eth0 erhalten |
config_eth0=( "dhcp" )
|
Lesen Sie bitte /etc/conf.d/net.example für eine Liste aller
verfügbaren Optionen. Lesen Sie auch die Manpage Ihres DHCP-Clients, wenn Sie
besondere DHCP-Optionen setzen müssen.
Wenn Sie mehrere Netzwerkschnittstellen haben, wiederholen Sie die obigen
Schritte für config_eth1, config_eth2 und so fort.
Speichern Sie nun die Konfiguration, um fortzufahren.
Netzwerk beim Systemstart aktivieren
Wenn Sie Ihre Netzwerkinterfaces beim Systemstart aktivieren wollen, müssen Sie
diese zum Runlevel default hinzufügen.
Befehlsauflistung 2.8: net.eth0 dem Runlevel default hinzufügen |
# rc-update add net.eth0 default
|
Wenn Sie mehrere Netzwerkinterfaces haben, müssen Sie für jedes ein
entsprechendes Initskript anlegen. Sie können einen Link mit ln auf das
Skript für eth0 setzen:
Befehlsauflistung 2.9: Anlegen von weiteren Initskripten |
# cd /etc/init.d
# ln -s net.lo net.eth1
# rc-update add net.eth1 default
|
Einträge in /etc/hosts
Sie müssen jetzt noch Ihrem System Informationen über Ihr Netzwerk geben. Dazu
müssen Sie die Datei /etc/hosts anpassen, damit Hostnamen zu
IP-Adressen aufgelöst werden, die nicht von Ihrem Nameserver aufgelöst werden.
Sie müssen Ihr System definieren. Möglicherweise möchten Sie auch andere
Systeme auf Ihrem Netzwerk definieren, wenn Sie nicht ein eigenes internes
DNS-System einrichten möchten.
Befehlsauflistung 2.10: Öffnen von /etc/hosts |
# nano -w /etc/hosts
|
Befehlsauflistung 2.11: Eintragen von Netzwerkinformationen |
127.0.0.1 localhost
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
|
Speichern Sie die Datei ab, um fortzufahren.
Falls Sie kein PCMCIA haben, können Sie nun mit den Systeminformationen fortfahren. PCMCIA-Benutzer sollten
sich folgenden Abschnitt über PCMCIA durchlesen.
Optional: PCMCIA zum Laufen bekommen
PCMCIA-Benutzer sollten zuerst das Paket pcmciautils installieren.
Befehlsauflistung 2.12: Installation von pcmciautils |
# emerge pcmciautils
|
8.c. Systeminformationen
Root-Passwort
Zuerst setzen wir das root-Passwort:
Befehlsauflistung 3.1: Setzen des root-Passworts |
# passwd
|
Systeminformationen
Gentoo benutzt die Datei /etc/rc.conf für die systemweite
Konfiguration. Öffnen Sie die Datei und lesen Sie sich vor dem Editieren
die Kommentare durch.
Befehlsauflistung 3.2: Öffnen der Datei /etc/rc.conf |
# nano -w /etc/rc.conf
|
Wenn Sie fertig sind mit der Bearbeitung von /etc/rc.conf,
speichern Sie ab und verlassen Sie den Editor.
Wie Sie sehen können, ist die Datei gut kommentiert, um Ihnen bei der
Einrichtung der Konfigurationsvariablen behilflich zu sein. Sie können Ihr
System so konfigurieren, dass es Unicode verwendet und Ihren Standardeditor
sowie Ihren Displaymanager (wie gdm oder kdm) definieren.
Gentoo verwendet /etc/conf.d/keymaps, um die Tastaturkonfiguration
zu verwalten. Editieren Sie diese Datei, um Ihre Tastatur zu konfigurieren.
Befehlsauflistung 3.3: Öffnen der Datei /etc/conf.d/keymaps |
# nano -w /etc/conf.d/keymaps
|
Seien Sie vorsichtig mit der KEYMAP-Variablen. Wenn Sie das falsche
KEYMAP wählen, erhalten Sie sonderbare Ergebnisse, wenn Sie auf der
Tastatur tippen.
Wenn Sie fertig sind mit der Konfiguration von
/etc/conf.d/keymaps, speichern Sie diese und schließen Sie den
Editor.
Gentoo verwendet /etc/conf.d/clock, um die Optionen der Uhr zu
setzen. Editieren Sie diese enstprechend Ihren Bedürfnissen.
Befehlsauflistung 3.4: Öffnen der Datei /etc/conf.d/clock |
# nano -w /etc/conf.d/clock
|
Wenn Ihre Hardware-Uhr nicht UTC verwendet, dann müssen Sie
CLOCK="local" zur Datei hinzufügen. Ansonsten werden Sie einige
Abweichungen der Uhr bemerken.
Sie sollten Ihre Zeitzone, die Sie vorhin nach /etc/localtime
kopiert haben, definieren, so dass weitere Upgrades des Pakets
sys-libs/timezone-data die Datei /etc/localtime automatisch
aktualisieren können. Wenn Sie zum Beispiel die Zeitzone GMT verwendet hätten,
würden Sie TIMEZONE="GMT" hinzufügen.
Nachdem Sie die Datei /etc/conf.d/clock editiert haben, speichern
Sie diese und schließen Sie den Editor.
Fahren Sie bitte mit der Installation
notwendiger System-Tools fort.
9. Installation der benötigten Systemtools
9.a. System-Logger
Einige Tools fehlen im stage3 Archiv, da mehrere Pakete dieselbe
Funktionalität mitbringen. Es liegt nun an Ihnen auszuwählen, welche Sie
installieren wollen.
Bei dem ersten Tool, bei dem wir die freie Auswahl haben, geht es um
das Protokollieren von Systemaktivitäten. Unix und Linux haben eine gewisse
Berühmtheit in den Fähigkeiten ihrer Systemprotokolle erlangt -- wenn Sie es
wünschen, können Sie alles, was auf Ihrem System passiert protokollieren lassen.
Dies erfolgt durch den System-Logger.
Gentoo bietet die Wahl zwischen verschiedenen System-Loggern. Diese
sind sysklogd, welches einen bekannten Satz an System-Logger-Daemons
anbietet, syslog-ng, ein fortschrittlicher System-Logger und
metalog, ein außerordentlich variabel konfigurierbarer System-Logger.
Es können weitere verfügbar sein - die Anzahl verfügbarer Pakete erhöht sich
täglich.
Wenn Sie sysklogd oder syslog-ng nutzen, möchten Sie vermutlich
auch logrotate installieren, da diese beiden Logger keinen
Rotationsmechanismus für Log-Dateien unterstützen.
Um den System-Logger Ihrer Wahl zu installieren, genügt ein emerge und
das Hinzufügen zum automatischen Start mittels rc-update. Im folgenden
Beispiel installieren wir syslog-ng. Natürlich kann dies durch den Namen
des gewünschten System-Loggers ersetzt werden:
Befehlsauflistung 1.1: Installation des System-Loggers |
# emerge syslog-ng
# rc-update add syslog-ng default
|
9.b. Optional: Der Cron-Daemon
Als nächstes ist der Cron-Daemon an der Reihe. Obwohl die Installation optional
ist, und für Ihr System nicht zwingend erforderlich ist, empfiehlt sich die
Installation eines solchen. Aber was ist überhaupt ein Cron-Daemon? Ein
Cron-Daemon kann vorgegebene Befehle zu einer bestimmten Uhrzeit ausführen. Dies
ist besonders praktisch, wenn bestimmte Routinebefehle regelmäßig ausgeführt
werden müssen (z.B. täglich, wöchentlich, monatlich).
Gentoo hat drei verschiedene Cron-Daemons zur Auswahl: dcron,
fcron und vixie-cron. Die Installation eines solchen erfolgt
ähnlich wie bei der Installation des System-Loggers. Jedoch erfordern
dcron und frcon einen zusätzlichen Befehl zur Konfiguration,
nämlich crontab /etc/crontab. Sollten Sie an der Auswahl verzweifeln,
dann empfehlen wir Ihnen die Verwendung von vixie-cron.
Für netzwerklose Installationen bieten wir nur vixie-cron an. Wenn Sie
einen anderen Cron-Daemon möchten können Sie warten und diesen später
installieren.
Befehlsauflistung 2.1: Installation eines Cron-Daemons |
# emerge vixie-cron
# rc-update add vixie-cron default
# crontab /etc/crontab
|
9.c. Optional: Dateiindizierung
Wenn Sie die Dateien in Ihrem System indizieren wollen, um Sie schnell
mit dem locate Tool aufzufinden, müssen Sie sys-apps/slocate
installieren.
Befehlsauflistung 3.1: slocate Installieren |
# emerge slocate
|
9.d. Dateisystem-Tools
Je nachdem, welche Dateisysteme Sie verwenden, müssen Sie noch die jeweiligen
Utilities (für Überprüfung der Dateisystem-Integrität, Anlegen neuer
Dateisysteme etc..) installieren. Bitte beachten Sie dass Tools für die
Verwaltung von ext2/ext3-Dateisystemen (e2fsprogs) bereits als Teil des
Systems installiert sind.
Die folgende Tabelle listet alle Tools auf, die für ein bestimmtes Dateisystem
benötigt werden:
| Dateisystem |
Tool |
Installationsbefehl |
| XFS |
xfsprogs |
emerge xfsprogs |
| ReiserFS |
reiserfsprogs |
emerge reiserfsprogs |
| JFS |
jfsutils |
emerge jfsutils |
Wenn Sie ein EVMS-Benutzer sind müssen Sie auch evms installieren:
Befehlsauflistung 4.1: Installation der EVMS-Tools |
# USE="-gtk" emerge evms
|
Das USE="-gtk" verhindert die Installation von Abhängigkeiten. Wenn Sie
die graphischen Tools von evms aktivieren wollen, können Sie evms
einfach später erneut kompilieren.
9.e. Netzwerktools
Wenn Sie keine weiteren netzwerkbezogenen Tools (wie ppp oder einen DHCP-Client)
benötigen, können Sie mit dem Kapitel Konfiguration des Bootloader fortfahren.
Optional: Installieren eines DHCP-Clients
Wenn Sie möchten, dass Gentoo automatisch eine IP-Adresse für Ihre
Netzwerkkarte bezieht, müssen Sie dhcpcd (oder einen anderen
DHCP-Client -- siehe Modulares Netzwerk
für eine Liste verfügbarer DHCP-Clients) auf Ihren System installieren. Wenn
Sie dies nicht tun sind Sie möglichweise nicht in der Lage nach der
Installation auf das Internet zugreifen zu können.
Befehlsauflistung 5.1: Installation von dhcpcd |
# emerge dhcpcd
|
Optional: Installieren eines PPPoE-Clients
Wenn Sie ppp benötigen um eine Verbindung mit dem Internet herstellen zu
können, werden Sie es installieren müssen.
Befehlsauflistung 5.2: Installation von ppp |
# emerge ppp
|
Nun fahren wir mit dem nächsten Kapitel Konfigurieren des Bootloader fort.
10. Konfiguration des Bootloaders
10.a. Eine Wahl treffen
Einleitung
Nun, da Ihr Kernel konfiguriert und kompiliert ist und die notwendigen
Systemkonfigurationsdateien richtig konfiguriert sind, ist es Zeit ein Programm
zu installieren, dass Ihren Kernel lädt wenn Sie Ihr System starten. Solch ein
Programm nennt man einen Bootloader.
Für AMD64 bietet Gentoo Linux GRUB und LILO.
Bevor Sie jedoch einen der beiden Bootloader installieren, informieren wir Sie
darüber, wie der Framebuffer (natürlich nur wenn Sie diesen einrichten wollen)
eingerichtet wird. Mit Framebuffer können Sie die Linux-Kommandozeile mit
(begrenzten) grafischen Erweiterungen (wie die netten Bootsplash-Bilder, die
Gentoo liefert) nutzen.
Optional: Framebuffer
Wenn Sie Ihren Kernel mit Framebufferunterstützung konfiguriert haben
(oder die genkernel Standardkonfiguration nutzen),
müssen Sie ein vga und/oder eine video Anweisung zu Ihrer
Bootloaderkonfigurationsdatei hinzufügen, wenn sie Framebuffer benötigen.
Zuerst müssen Sie wissen, welchen Typ von Framebuffer-Gerät Sie verwenden. Wenn
Sie einen von Gentoo gepatchten Kernel verwenden (wie die gentoo-sources)
hatten Sie die Möglichkeit uvesafb als VESA driver type. Wenn dies
der Fall ist benutzen Sie uvesafb und benötigen die vga Anweisung
nicht. Andernfalls benutzen Sie den vesafb Treiber und
müssen die vga Anweisung setzen.
Die vga Anweisung kontrolliert die Größe und die Farbtiefe des
Framebuffers für vesafb. Wie in
/usr/src/linux/Documentation/fb/vesafb.txt (wird mit einem
Kernelquellpaket installiert) erwähnt, müssen Sie dem Kernel die VESA-Nummer
passend zur gewünschten Auflösung und Farbtiefe mitgeben.
Die folgende Tabelle listet die verfügbaren Auflösungen und Farbtiefen auf und
zeigt die dazu die Werte, welche an die vga Anweisung übergeben werden
müssen.
|
640x480 |
800x600 |
1024x768 |
1280x1024 |
| 256 |
0x301 |
0x303 |
0x305 |
0x307 |
| 32k |
0x310 |
0x313 |
0x316 |
0x319 |
| 64k |
0x311 |
0x314 |
0x317 |
0x31A |
| 16M |
0x312 |
0x315 |
0x318 |
0x31B |
Die video Anweisung kontrolliert Framebuffer-Display-Optionen. Es
benötigt den Framebuffer-Treiber gefolgt von den Kontrollanweisung die Sie
aktivieren möchten. Alle Variablen sind in
/usr/src/linux/Documentation/fb/vesafb.txt gelistet, wir möchten
Sie daher nur über die häufigsten informieren:
| Option |
Beschreibung |
| ywrap |
Davon ausgehend, dass die Grafik ihren Speicher umbrechen kann (das heißt
am Anfang fortfahren, wenn das Ende erreicht wurde)
|
| mtrr:n
|
Einrichten der MTRR-Register. n kann folgendes sein:
0 - deaktiviert
1 - uncachable
2 - write-back
3 - write-combining
4 - write-through
|
| mode |
(nur uvesafb)
Setzen der Auflösung, Farbtiefe und Wiederholungsrate. Zum Beispiel ist
1024x768-32@85 für eine Auflösung von 1024x768, 32-Bit Farbtiefe und
eine Wiederholungsrate von 85 Hz.
|
Das Ergebnis dieser beiden Anweisungen könnte etwas wie vga=0x318
video=vesafb:mtrr:3,ywrap oder
video=uvesafb:mtrr:3,ywrap,1024x768-32@85 sein. Schreiben Sie sich diese
Einstellung auf, Sie werden sie bald benötigen!
Fahren Sie nun mit der Installation von GRUB oder
Lilo fort.
10.b. Standard: Die Benutzung von GRUB
Das Verstehen von GRUBs Terminologie
Der wichtigste Teil beim Verstehen von GRUB ist, sich mit der Art vertraut zu
machen, in der GRUB Festplatten und Partitionen benennt. Ihre Linux-Partition
/dev/sda1 wird höchstwahrscheinlich (hd0,0) unter GRUB
genannt. Beachten Sie die Klammern um das hd0,0, denn diese sind
Pflicht.
Festplatten zählen von Null anstatt von "a" und Partitionen starten bei Null
anstatt bei Eins. Beachten Sie bitte auch, dass mit den hd-Geräten nur
Festplatten gezählt werden, keine ATAPI-IDE Geräte wie CD-ROM-Laufwerke oder
-Brenner. Dasselbe Schema wird auch bei SCSI-Laufwerken verwendet.
(Normalerweise erhalten sie höhere Nummern als IDE-Laufwerke, außer wenn das
BIOS konfiguriert ist von SCSI zu booten.) Wenn Sie dem BIOS angeben von einer
anderen Festplatte zu booten (zum Beispiel Primary Slave), ist diese
Festplatte für grub hd0.
Vorausgesetzt Sie haben eine Festplatte an /dev/sda und zwei
weitere an /dev/sdb und /dev/sdc wird
/dev/sdb7 übersetzt in (hd1,6). Es mag schwierig
klingen und das ist es in der Tat auch, aber wie wir werden sehen, bietet GRUB
einen Tab-Komplettierungsmechanismus an, der hilfreich ist für diejenigen von
Ihnen die viele Festplatten und Partitionen haben und sich ein wenig verloren
fühlen mit dem Nummerierungssystem von GRUB.
Nachdem man dafür jetzt ein Gefühl erlangt hat, ist es nun Zeit GRUB zu
installieren.
Installieren von GRUB
Um GRUB zu installieren, führen Sie ein emerge aus.
Wichtig:
Wenn Sie ein nicht-Multilib Profil verwenden sollten Sie
emerge grub nicht ausführen, sondern stattdessen grub-static mit
emerge installieren. Wenn Sie vorhaben ein nicht-Multilib Profil zu verwenden
und IA-32 Emulation in Ihrem Kernel deaktiviert haben, sollten Sie
lilo verwenden.
|
Befehlsauflistung 2.1: Installieren von GRUB |
# emerge grub
|
Obwohl GRUB nun installiert ist, müssen Sie trotzdem noch eine
Konfigurationsdatei dafür schreiben und GRUB im MBR platzieren, so dass
GRUB automatisch Ihren neu erstellten Kernel bootet. Erstellen Sie
/boot/grub/grub.conf mit nano (oder wenn gewünscht einem
anderen Editor):
Befehlsauflistung 2.2: Erstellen von /boot/grub/grub.conf |
# nano -w /boot/grub/grub.conf
|
Nun wollen wir eine grub.conf schreiben. Folgend finden Sie zwei
mögliche grub.conf für das Partitionierungsbeispiel, das wir in
diesem Leitfaden verwendet haben. Wir werden nur die erste
grub.conf ausführlich erläutern. Stellen Sie sicher, dass Sie den
Dateinamen Ihres Kernel Image und, wenn
zutreffend, den Dateinamen Ihrer initrd benutzen.
-
Die erste grub.conf ist für Leute, die nicht genkernel
benutzt haben
-
Die zweite grub.conf ist für Leute, die genkernel
benutzt haben
Notiz:
Grub weist Gerätenamen auf Grundlage des BIOS zu. Wenn Sie Ihre BIOS-
Einstellungen ändern, ändern sich auch die Buchstaben und Ziffern Ihrer
Geräte. Wenn Sie zum Beispiel die Bootreihenfolge Ihrer Geräte ändern,
müssen Sie möglicherweise auch Ihre Grub-Konfiguration ändern.
|
Notiz:
Wenn Ihr Root-Dateisystem JFS ist, müssen Sie "ro" zu dem Kernelaufruf
hinzufügen, da JFS sein Protokolldatei liest, bevor es ein read-write mounten
zulässt.
|
Befehlsauflistung 2.3: grub.conf für Nicht-genkernel Benutzer |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.30-r5
root (hd0,0)
kernel /boot/kernel-2.6.30-gentoo-r5 root=/dev/sda3
title Gentoo Linux 2.6.30-r5 (Rescue)
root (hd0,0)
kernel /boot/kernel-2.6.30-gentoo-r5 root=/dev/sda3 init=/bin/bb
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Befehlsauflistung 2.4: grub.conf für genkernel Benutzer |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.30-r5
root (hd0,0)
kernel /boot/kernel-genkernel-amd64-2.6.30-gentoo-r5 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-amd64-2.6.30-gentoo-r5
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Wenn Sie ein anderes Partitionierungschema verwenden und/oder Kernel-Image,
passen Sie Ihre Konfiguration entsprechend an. Stellen Sie jedoch sicher, dass
alles was einem GRUB-Device folgt (wie z.B. (hd0,0)) relativ zum
Mountpoint ist, nicht dem Root. Mit anderen Worten,
(hd0,0)/grub/splash.xpm.gz ist in Wirklichkeit
/boot/grub/splash.xpm.gz denn (hd0,0) ist
/boot.
Außerdem wird, wenn Sie ein anderes Partitionsschema verwendet haben und
/boot nicht auf eine separate Partition gelegt haben, das
/boot Präfix wirklich benötigt. Wenn Sie unserem
vorgeschlagenen Partitionierungsplan gefolgt sind, wird das /boot
Präfix nicht benötigt, aber ein boot Symlink sorgt dafür, dass es
funktioniert. Kurz gesagt, das obige Beispiel sollte funktionieren, egal ob Sie
eine separate /boot Partition haben oder nicht.
Wenn Sie noch zusätzliche Optionen an den Kernel übergeben müssen, fügen Sie
diese einfach zum Ende des Kernelbefehls hinzu. Eine Option übermitteln wir
schon (root=/dev/sda3 oder real_root=/dev/sda3), aber Sie können
auch weitere übermittlen, wie die vorhin erwähnte video und/oder
vga Anweisung für Framebuffer.
Wenn Ihre Bootloader-Konfigurationsdatei den Parameter real_root enthält,
verwenden Sie den Parameter rootflags, um Einhängeoptionen des Root-Dateisystems
zu setzen. In dem Falle, dass real_root den Root-Einhängepunkt definiert, sollte
der Parameter real_rootflags verwendet werden.
Wenn Sie einen 2.6.7 Kernel oder aktueller benutzen und Ihre Festplatte
gejumpert haben, da Ihr BIOS nicht mit großen Festplatten umgehen kann, müssen
Sie sda=stroke anhängen.
genkernel-Benutzer sollten wissen, dass Ihr Kernel die selben
Bootoptionen benutzt wie der auf der Installations-CD. Zum Beispiel,
wenn Sie SCSI-Geräte haben, sollten Sie doscsi als Kerneloption
hinzufügen.
Speichern Sie nun die grub.conf Datei und verlassen Sie den
Editor. Sie müssen GRUB noch in den MBR (Master Boot Record) schreiben, so dass
GRUB automatisch beim Systemstart ausgeführt wird.
Die GRUB Entwickler empfehlen die Nutzung von grub-install. Wenn
grub-install fehlschlägt haben Sie immer noch die Option GRUB händisch zu
installieren.
Fahren Sie nun mit Standard: Installieren von
GRUB mit grub-install oder Alternativ:
GRUB händisch installieren fort.
Standard: Installieren von GRUB mit grub-install
Um GRUB zu installieren führen sie den grub-install Befehl aus.
grub-install wird jedoch nicht direkt funktionieren, da wir uns
innerhalb einer chroot-Umgebung befinden. Wir müssen /etc/mtab
erstellen, welche alle gemounteten Dateisysteme auflistet. Glücklicherweise
gibt es eine einfach Methode dafür: Kopieren Sie einfach
/proc/mounts nach /etc/mtab; ausgenommen der
rootfs Zeile, wenn Sie keine separate Boot-Partition erstellt haben.
Der folgende Befehl funktioniert in beiden Fällen:
Befehlsauflistung 2.5: /etc/mtab erstellen |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Jetzt können wir GRUB durch grub-install installieren:
Befehlsauflistung 2.6: grub-install ausführen |
# grub-install --no-floppy /dev/sda
|
Wenn Sie weitere Fragen GRUB betreffend haben, konsultieren Sie die GRUB FAQ oder das
GRUB Handbuch.
Fahren Sie nun mit Neustart des Systems fort.
Alternativ: GRUB manuell installieren
Um mit der Konfiguration von GRUB zu beginnen, tippen Sie grub. Ihnen
wird die grub> GRUB-Kommdandozeile präsentiert. Nun müssen Sie
die richtigen Befehle eintippen um den GRUB Boot Record auf Ihrer Festplatte zu
installieren.
Befehlsauflistung 2.7: Starten der GRUB-Shell |
# grub --no-floppy
|
Notiz:
Wenn das System kein Diskettenlaufwerk hat, fügen Sie die --no-floppy
Option an das obige Kommando an, damit grub nicht nach nicht-existierenden
Diskettenlaufwerken sucht.
|
In der Beispielskonfiguration wollen wir GRUB so installieren, dass es alle
Informationen von der Boot-Partition /dev/sda1 liest
und den GRUB Boot-Record auf dem MBR (Master Boot Record) der Festplatte
installiert, damit das Erste was wir sehen, wenn wir den Computer einschalten
die GRUB Eingabeaufforderung ist. Natürlich müssen Sie die Befehle entsprechend
ändern, wenn Sie von der Beispielkonfiguration während der Installation
abgewichen sind.
Der Tab-Komplettierungsmechanismus von GRUB kann innerhalb von GRUB benutzt
werden. Zum Beispiel, wenn Sie "root (" eintippen, gefolgt von einem
TAB, wird Ihnen eine Liste von Geräten gegeben (solche wie hd0).
Wenn Sie "root (hd0," eintippen, gefolgt von einem TAB, wird Ihnen eine
Liste von verfügbaren Partitionen angezeigt, unter denen Sie auswählen können
(solche wie hd0,0).
Durch Benutzung der Tab-Komplettierung sollte das Einrichten von GRUB nicht
allzu schwer sein. Also weiter in der Konfiguration von GRUB!
Befehlsauflistung 2.8: Installieren von GRUB im MBR |
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
|
Notiz:
Wenn Sie GRUB lieber in einer bestimmten Partition anstatt des MBR installieren
wollen, müssen Sie das setup so verändern, dass es auf die richtige
Partition verweist. Zum Beispiel, wenn Sie GRUB in /dev/sda3
installieren wollen, dann wird der Befehl zu setup (hd0,2). Diese Option
wird in der Regel nur von wenigen Benutzern genutzt.
|
Wenn Sie weitere Fragen GRUB betreffend haben, konsultieren Sie die GRUB FAQ oder das
GRUB Manual.
Fahren Sie nun mit Neustart des Systems fort.
10.c. Alternativ: Benutzung von LILO
Installieren von LILO
LILO, der LInuxLOader, ist das bewährte und wahre Arbeitstier der Linux
Bootloader. Jedoch hat es eine Fähigkeiten nicht die GRUB hat (was auch der
Grund dafür ist, dass GRUB momentan an Popularität gewinnt). Der Grund warum
LILO noch benutzt wird ist, dass GRUB auf einigen System nicht funktioniert und
LILO es tut. Natürlich gibt es auch den Grund, dass einige Leute mit LILO
bereits vertraut sind und es daher behalten wollen. In jedem Fall: Gentoo
unterstützt beide und anscheinend haben Sie sich für LILO entschieden.
Installieren von LILO ist ein Klacks, benutzen Sie einfach emerge.
Befehlsauflistung 3.1: Installieren von LILO |
# emerge lilo
|
Konfigurieren von LILO
Um LILO zu konfigurieren, müssen Sie /etc/lilo.conf erstellen.
Starten Sie Ihren Lieblingseditor (in diesem Handbuch benutzen wir nano)
und erstellen die Datei.
Befehlsauflistung 3.2: Erstellen von /etc/lilo.conf |
# nano -w /etc/lilo.conf
|
Vor einigen Abschnitten baten wir Sie, sich den Namen des Kernel-Images zu
merken, welches Sie erstellt haben. In der folgenden lilo.conf
Beispielsdatei nehmen wir an, dass der Imagename
kernel-2.6.11-gentoo-r3 ist. Wir benutzen zudem das
Beispielpartitionsschema in diesem Beispiel, es gibt zwei verschiedene Teile:
-
Einen für diejenigen, die genkernel nicht benutzt haben um den Kernel
zu bauen
-
Einen für diejenigen, die genkernel zum bauen des Kernel benutzt
haben.
Stellen Sie sicher, dass Sie den Dateinamen Ihres Kernel-Images und, wenn
zutreffend, den Dateinamen Ihrer initrd benutzen.
Notiz:
Wenn Ihr Root-Dateisystem JFS ist, müssen Sie "ro" zu dem Kernelaufruf
hinzufügen, da JFS sein Logfile liest, bevor es ein read-write Mounten zulässt.
|
Befehlsauflistung 3.3: Beispiel /etc/lilo.conf |
boot=/dev/sda
prompt
timeout=50
default=gentoo
image=/boot/kernel-2.6.30-gentoo-r5
label=gentoo
read-only
root=/dev/sda3
image=/boot/kernel-2.6.30-gentoo-r5
label=gentoo.rescue
read-only
root=/dev/sda3
append="init=/bin/bb"
image=/boot/kernel-genkernel-amd64-2.6.30-gentoo-r5
label=gentoo
read-only
root=/dev/ram0
append="init=/linuxrc ramdisk=8192 real_root=/dev/sda3"
initrd=/boot/initramfs-genkernel-amd64-2.6.30-gentoo-r5
other=/dev/sda6
label=windows
|
Notiz:
Wenn Sie ein anderes Partitionierungsschema verwenden, passen Sie die
Konfiguration entsprechend an.
|
Wenn Sie weitere Optionen an den Kernel übermitteln müssen, fügen Sie eine
append Anweisung zu dem Abschnitt hinzu. Als Beispiel fügen wir die
video Anweisung hinzu um Framebuffer-Unterstützung zu aktivieren:
Befehlsauflistung 3.4: Benutzung von append um Kerneloptionen hinzuzufügen |
image=/boot/kernel-2.6.30-gentoo-r5
label=gentoo
read-only
root=/dev/sda3
append="video=vesafb:mtrr,ywrap,1024x768-32@85"
|
Wenn Sie einen 2.6.7, oder aktuelleren, Kernel benutzen und Ihre Festplatte
gejumpert haben, da Ihr BIOS nicht mit großen Festplatten umgehen kann, müssen
Sie sda=stroke anhängen. Ersetzen Sie sda durch das Gerät welches diese
Option benötigt.
Genkernel-Benutzer sollten wissen, dass Ihr Kernel dieselben
Bootoptionen benutzt wie der auf der Installations-CD. Zum Beispiel, wenn Sie
SCSI Geräte haben, sollten Sie doscsi als Kerneloption hinzufügen
Speichern Sie nun die Datei und verlassen Sie den Editor. Zum Schluss müssen
Sie /sbin/lilo ausführen, damit LILO die /etc/lilo.conf auf
Ihr System anwenden kann (also sich selbst auf der Platte installiert). Behalten
Sie im Hinterkopf, dass Sie /sbin/lilo nach jeder Installation eines
neuen Kernel oder Änderung des Menü ausführen müssen.
Befehlsauflistung 3.5: Fertigstellen der LILO-Installation |
# /sbin/lilo
|
Wenn Sie weitere Fragen bezüglich Lilo haben, lesen Sie bitte dessen Wikipedia-Seite.
Fahren Sie nun mit Neustart des Systems fort.
10.d. Neustart des Systems
Verlassen Sie die chroot-Umgebung und unmounten Sie alle gemounteten
Partitionen. Danach tippen Sie den magischen Befehl ein, auf das Sie solange
gewartet haben: reboot.
Befehlsauflistung 4.1: Ausbinden aller Partitionen und Neustart |
>
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Vergessen Sie nicht die bootbare CD aus dem Laufwerk zu nehmen, sonst wird diese
anstatt Ihres neuen Gentoo Systems gestartet.
Nachdem Sie in die neue Gentoo Installation gebootet haben schließen Sie die
Installation mit Abschließen der Gentoo
Installation ab.
11. Abschließen Ihrer Gentoo Installation
11.a. Benutzerverwaltung
Hinzufügen eines Benutzers für den täglichen Gebrauch
Arbeiten als root in einem Unix/Linux System ist gefährlich und sollte,
wenn immer möglich, vermieden werden. Wir empfehlen daher nachdrücklich
das Einrichten eines Benutzers für die täglichen Aufgaben.
Die Gruppen denen ein Benutzer angehört definieren, welche Aktivitäten der User
ausführen kann. Die folgende Tabelle listet die wichtigsten Gruppen, die Sie
vermutlich benutzen wollen:
| Gruppe |
Beschreibung |
| audio |
Benutzer kann Audiogeräte benutzen |
| cdrom |
Benutzer kann optische Laufwerke direkt benutzen |
| floppy |
Benutzer kann Diskettenlaufwerke direkt benutzen |
| games |
Benutzer darf Spiele ausführen |
| portage |
Benutzer kann emerge --pretend verwenden |
| usb |
Benutzer darf USB Geräte benutzen |
| plugdev |
Benutzer kann anschließbare Geräte wie Kameras und USB-Sticks mounten
|
| video |
Benutzer darf Geräte zur Videoaufnahme benutzen und Hardwarebeschleunigung
nutzen
|
| wheel |
Benutzer darf su benutzen |
In unserem Beispiel erstellen wir einen Benutzer john, welcher Mitglied
der wheel Gruppe, der users Gruppe, sowie der audio Gruppe
ist. Loggen Sie sich zunächst als root ein (nur root kann Benutzer erstellen)
und führen useradd aus:
Befehlsauflistung 1.1: Hinzufügen eines Benutzers für den täglichen Gebrauch |
Login: root
Password:
# useradd -m -G users,wheel,audio -s /bin/bash john
# passwd john
Password:
Re-enter password:
|
Sollte dieser Benutzer eine bestimmte Aufgabe als root durchführen, kann er
den Befehl su - verwenden, um temporär Rechte als root zu erhalten.
Alternativ kann das sudo Paket verwendet werden, welches mit richtiger
Konfiguration sehr sicher ist.
11.b. Aufräumen der Festplatte
Entfernen der Tarballs
Nun da Sie die Gentoo-Installation abgeschlossen und neu gestartet haben,
können Sie, sofern alles funktioniert, den heruntergeladenen stage3-Tarball und
den Portage-Snapshot von Ihrer Festplatte entfernen. Denken Sie daran, dass
diese Dateien in Ihr / Verzeichnis heruntergeladen wurden.
Befehlsauflistung 2.1: Entfernen des stage3-Tarballs |
# rm /stage3-*.tar.bz2*
|
Befehlsauflistung 2.2: Entfernen des Portage-Snapshots |
# rm /portage-latest.tar.bz2*
|
12. Wie geht es weiter?
12.a. Dokumentation
Gratulation! Sie haben jetzt ein funktionierendes Gentoo System. Aber wie
geht es nun weiter? Welche Möglichkeiten bieten sich? Gentoo bietet
seinen Nutzern viele Optionen und daher auch viele dokumentierte
(und weniger gut dokumentierte) Eigenschaften.
Sie sollten definitiv einen Blick in den nächsten Teil des Gentoo Handbuchs,
Arbeiten mit Gentoo, werfen. Dieser erklärt, wie Sie
Ihre Software aktuell halten und weitere Software installieren können, was USE
Flags sind, wie das Init-System von Gentoo funktioniert, etc.
Zur Optimierung Ihres Systems für einen Endbenutzer oder wenn Sie wissen wollen,
wie ein Desktop-System eingerichtet wird, sollten die sehr ausführlichen
Gentoo Desktop
Dokumentationsressourcen weiterhelfen. Weiterhin möchten Sie vielleicht
unsere Anleitung zur
Lokalisierung betrachten um sich Ihr System angenehmer einzurichten.
Wir haben auch ein Gentoo
Sicherheitshandbuch, welches Sie bei Gelegenheit unbedingt lesen sollten.
Für eine komplette Liste aller für Gentoo Linux erhältlichen Dokumentationen
verweisen wir auf die Dokumentationsübersicht.
12.b. Gentoo Online
Sie sind natürlich in den
Gentoo Foren oder in einem der vielen
Gentoo IRC Kanälen
jederzeit willkommen.
Auch haben wir verschiedene Mailinglisten die allen
Benutzern offen stehen. Weitere Informationen hierzu befinden sich auf der
Seite.
Wir halten jetzt unseren Mund und lassen Sie die Installation von Gentoo Linux
genießen. :)
B. Arbeiten mit Gentoo
1. Eine Portage Einführung
1.a. Willkommen zu Portage
Portage ist vermutlich Gentoos bemerkenswerteste Innovation in Sachen Software
Management. Mit seiner großen Flexibilität und enormen Menge an Optionen wird
es vielfach als bestes Software Management Tool für Linux gesehen.
Portage ist vollständig in Python
und Bash geschrieben und
somit für seine Benutzer vollständig sichtbar, da dieses beides Skriptsprachen
sind.
Die meisten Benutzer werden Portage durch das emerge Programm benutzen.
Dieses Kapitel soll nicht die Informationen aus der emerge Manpage duplizieren,
für eine vollständige Auflistung aller emerge Optionen konsultieren Sie die
Manpage:
Befehlsauflistung 1.1: Lesen der emerge Manpage |
$ man emerge
|
1.b. Der Portage-Tree
Ebuilds
Wenn wir über Pakete reden meinen wir oft Programme, die für Gentoo Benutzer
durch den Portage-Tree verfügbar sind. Der Portage-Tree ist eine Sammlung von
ebuilds, Dateien die alle Informationen enthalten, die Portage benötigt
um Anwendungen zu betreuen (installieren, suchen, abfragen, ...). Diese Ebuilds
liegen standardmäßig in /usr/portage.
Wann immer Sie Portage bitten eine Aktion betreffend irgendwelcher Anwendungen
durchzuführen wird es die Ebuilds auf Ihrem System als Basis benutzen. Es ist
daher sehr wichtig, dass Sie die Ebuilds auf Ihrem System regelmäßig
aktualisieren, so dass Portage über neue Anwendungen,
Sicherheitsaktualisierungen usw. informiert ist.
Aktualisieren des Portage-Tree
Der Portage-Tree wird für gewöhnlich mit rsync aktualisiert, ein schnelles und
inkrementelles Dateiübertragungsprogramm. Das Aktualisieren ist ziemlich
einfach, da das emerge Kommando ein Frontend für rsync beinhaltet:
Befehlsauflistung 2.1: Aktualisieren des Portage-Tree |
# emerge --sync
|
Wenn Sie aufgrund von Restriktionen einer Firewall das rsync-Protokoll nicht
benutzen können, können Sie immer noch unsere täglich aktualisierten
Portage-Snapshots benutzen. Das emerge-webrsync Tool lädt diesen
automatisch und installiert den aktuellsten Snapshot in Ihrem System:
Befehlsauflistung 2.2: Running emerge-webrsync |
# emerge-webrsync
|
1.c. Software installieren und aktuell halten
Nach Software suchen
Um den Portage-Tree nach Anwendungen zu durchsuchen können Sie die in
emerge eingebauten Suchfunktionen nutzen. Standardmäßig liefert
emerge --search Paketnamen, die mit dem Suchbegriff teilweise oder
vollständig übereinstimmen.
Um zum Beispiel nach allen Paketen zu suchen, in deren Name "pdf" vorkommt:
Befehlsauflistung 3.1: Suche nach Paketen mit pdf im Namen |
$ emerge --search pdf
|
Wenn Sie ebenfalls durch die Beschreibungen suchen möchten, können Sie die
--searchdesc (oder -S) Option nutzen:
Befehlsauflistung 3.2: Suche nach Paketen im Zusammenhang mit pdf |
$ emerge --searchdesc pdf
|
Wenn Sie einen Blick auf die Ausgabe werfen werden Sie feststellen, dass Ihnen
diese zahlreiche Informationen gibt. Die Felder sind klar beschriftet, so dass
wir dies nicht näher erläutern wollen.
Befehlsauflistung 3.3: Beispiel Ausgabe von 'emerge --search' |
* net-print/cups-pdf
Latest version available: 1.5.2
Latest version installed: [ Not Installed ]
Size of downloaded files: 15 kB
Homepage: http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
Description: Provides a virtual printer for CUPS to produce PDF files.
License: GPL-2
|
Software installieren
Nachdem Sie eine Anwendung gefunden haben, die Sie installieren möchten, können
Sie dies mit emerge ganz einfach durchführen, zum Beispiel für
gnumeric:
Befehlsauflistung 3.4: Installation von gnumeric |
# emerge gnumeric
|
Da viele Anwendungen untereinander Abhängigkeiten haben, kann jeder Versuch ein
bestimmtes Paket zu installieren in der Installation von verschiedenen
Abhängigkeiten resultieren. Aber keine Angst, Portage kümmert sich ebenfalls um
diese Abhängigkeiten. Wenn Sie herausfinden wollen, welche Pakete Portage als
Abhängigkeiten mitinstallieren würde benutzen Sie die --pretend
Option. Zum Beispiel:
Befehlsauflistung 3.5: Installation von gnumeric simulieren |
# emerge --pretend gnumeric
|
Wenn Sie Portage anweisen ein Paket zu installieren werden alle notwendigen
Quellen (sofern notwendig) aus dem Internet heruntergeladen und standardmäßig
in /usr/portage/distfiles abgelegt. Anschließend werden die
Quellen entpackt, kompiliert und das Paket installiert. Wenn Sie
Portage anweisen möchten zwar die Quellen herunterzuladen, das Paket aber nicht
zu kompilieren und installieren hängen Sie die --fetchonly Option an das
emerge Kommando an:
Befehlsauflistung 3.6: Herunterladen der Quellen für gnumeric |
# emerge --fetchonly gnumeric
|
Auffinden von Dokumentationen zu installierten Pakete
Viele Pakete liefern Ihre eigene Dokumentation. Manchmal bestimmt das
doc USE-Flag ob die Dokumentation des Paketes installiert werden soll
oder nicht. Sie können die Existenz eines doc USE-Flag mit dem
emerge -vp <Paketname> Befehl überprüfen
Befehlsauflistung 3.7: Die Existenz eines doc USE-Flag überprüfen |
# emerge -vp alsa-lib
[ebuild N ] media-libs/alsa-lib-1.0.14_rc1 -debug +doc 698 kB
|
Die beste Art das USE-Flag doc zu aktivieren ist für jedes Paket einzeln
mit der Hilfe von /etc/portage/package.use. So werden Sie nur
Dokumentation für Pakete erhalten bei denen Sie daran interessiert sind. Global
diese Variable zu aktivieren ist bekannt dafür Probleme durch zirkuläre
Abhängigkeiten zu verursachen. Das Kapitel USE-Flags bespricht diese Aspekte in größerem
Detail.
Sowie das Paket installiert ist findet sich die Dokumentation generell in einem
Unterverzeichnis mit dem Paketnamen unter dem Verzeichnis
/usr/share/doc. Mit equery Tool können Sie auch alle
installierten Dateien auflisten, es ist Teil des app-portage/gentoolkit
Pakets.
Befehlsauflistung 3.8: Auffinden einer Paketdokumentation |
# ls -l /usr/share/doc/alsa-lib-1.0.14_rc1
total 28
-rw-r--r-- 1 root root 669 May 17 21:54 ChangeLog.gz
-rw-r--r-- 1 root root 9373 May 17 21:54 COPYING.gz
drwxr-xr-x 2 root root 8560 May 17 21:54 html
-rw-r--r-- 1 root root 196 May 17 21:54 TODO.gz
# equery files alsa-lib | less
media-libs/alsa-lib-1.0.14_rc1
* Contents of media-libs/alsa-lib-1.0.14_rc1:
/usr
/usr/bin
/usr/bin/alsalisp
|
Software deinstallieren
Um Anwendungen aus Ihrem System zu entfernen benutzen Sie emerge
--unmerge. Dies weist Portage an, alle Dateien die zu diesem Paket gehören
(mit der Ausnahme von Konfigurationsdateien, die Sie nach der
Installation geändert haben) zu entfernen. Das Beibehalten der
Konfigurationsdateien ermöglicht Ihnen die eventuelle Weiterarbeit mit diesem
Paket zu einem späteren Zeitpunkt.
Jedoch, eine ausdrückliche Warnung: Portage wird nicht
kontrollieren, ob ein Paket, welches Sie deinstallieren möchten, noch
Abhängigkeit eines anderen ist. Sie werden jedoch beim Versuch ein wichtiges
Paket zu entfernen gewarnt, wenn es dazu führen würde, dass Ihr System danach
nicht länger funktionieren würde.
Befehlsauflistung 3.9: Entfernung von gnumeric aus dem System |
# emerge --unmerge gnumeric
|
Wenn Sie ein Paket deinstalliert haben, so sind die Abhängigkeiten dieses
speziellen Paketes weiterhin installiert. Um Portage anzuweisen nach Paketen zu
suchen, die keinerlei Abhängigkeit sind und nun entfernt werden können, nutzen
Sie von emerge die --depclean Funktionalität. Wir werden dies
später ausführlicher behandeln.
Aktualisieren Ihres Systems
Um Ihr System auf dem Laufenden zu halten (von Sicherheitsaktualisierungen gar
nicht gesprochen) müssen Sie Ihr System regelmäßig aktualisieren. Da Portage
nur die Ebuilds in Ihrem lokalen Portage-Tree kennt, müssen Sie zunächst den
Portage-Tree aktualisieren. Wenn Sie dies getan haben, können Sie das System
mittels emerge --update world aktualisieren. Im folgenden Beispiel
verwenden wir auch die --ask Option, wodurch Portage eine Liste der
Pakete, die es aktualisieren will aufzeigt und fragt ob Sie fortfahren wollen:
Befehlsauflistung 3.10: Aktualisierung des Systems |
# emerge --update --ask world
|
Portage wird nun nach neueren Versionen von Anwendungen suchen, die Sie
installiert haben. Es werden jedoch nur Versionen von Anwendungen überprüft, die
Sie explizit installiert haben (die Anwendungen aufgelistet in
/var/lib/portage/world); Abhängigkeiten werden nicht ausführlich
geprüft. Wenn Sie jedes einzelne Paket auf Ihrem System aktualisieren
möchten, fügen sie das --deep Argument hinzu:
Befehlsauflistung 3.11: Aktualisierung des gesamten Systems |
# emerge --update --deep world
|
Da auch Sicherheitsupdates in Paketen vorkommen, die Sie nicht explizit
installiert haben (die aber als Abhängigkeiten anderer Programme auch
mitinstalliert wurden), empfiehlt es sich diesen Befehl ab und zu auszuführen.
Wenn Sie zuvor ein USE-Flag geändert haben
möchten Sie vermutlich --newuse hinzufügen. Portage wird nun feststellen,
ob die Änderung eine Installation von weiteren Paketen erfordert oder eine
Neuinstallation der existierenden hinreichend ist:
Befehlsauflistung 3.12: Durchführen einer vollen Aktualisierung |
# emerge --update --deep --newuse world
|
Metapakete
Einige Pakete im Portage-Tree haben keinen realen Inhalt sondern dienen als
Kollektion von Paketen. Zum Beispiel wird das kde Paket eine komplette
KDE-Umgebung auf Ihrem System installieren, indem es sämtliche Komponenten eines
KDE-Desktops als Abhängigkeiten angibt.
Wenn Sie jemals ein solches Paket entfernen wollen, wird Ihnen emerge
--unmerge nicht viel weiterhelfen, da dies keinerlei Einfluss auf die
installierten Abhängigkeiten hat.
Portage hat die Funktionalität um verwaiste Abhängigkeiten zu entfernen, da die
Verfügbarkeit von Anwendungen und Abhängigkeiten dynamisch aufgelöst wird müssen
Sie zunächst Ihr System vollständig aktualisieren, inklusive der Änderungen die
Sie durch Änderungen an USE-Flags herbeigeführt haben. Im Anschluss daran können
Sie emerge --depclean ausführen, um die verwaisten Abhängigkeiten zu
entfernen. Wenn dies geschehen ist müssen Sie die Anwendungen die dynamisch auf
die nun deinstallierten Anwendungen gelinkt sind neu kompilieren.
All dies wird durch die folgenden 3 Kommandos erledigt:
Befehlsauflistung 3.13: Entfernen von verwaisten Paketen |
# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild
|
revdep-rebuild ist im gentoolkit Paket enthalten, vergessen Sie
nicht es zuvor zu installieren:
Befehlsauflistung 3.14: Installieren des gentoolkit Paket |
# emerge gentoolkit
|
1.d. Wenn Portage sich beschwert ...
Über SLOTs, Virtuals, Zweige, Architekturen und Profile
Wie bereits zuvor erwähnt bietet Portage extrem viele Möglichkeiten und
unterstützt zahlreiche Features, die in anderen Softwaremanagement-Tools
fehlen. Um dies zu verstehen erläutern wir einige Aspekte von Portage, ohne
jedoch ganz ins Detail zu gehen.
Mit Portage können mehrere Versionen eines Pakets auf dem System koexistieren.
Während andere Distributionen in diesen Fällen dazu tendieren Teile der
Versionsnummer mit in den Paketnamen aufzunehmen, (wie freetype und
freetype2) beherrscht Portage eine Technik namens SLOTs. Eine
Ebuildversion deklariert dabei ein bestimmtes SLOT. Ebuilds eines
Pakets mit unterschiedlichen SLOTs können gleichzeitig auf einem System
installiert sein. Zum Beispiel hat das freetype Paket Ebuilds mit
SLOT="1" und SLOT="2".
Es gibt weiterhin einige Pakete, welche die gleiche Funktionalität anbieten,
aber anders implementiert sind. Zum Beispiel sind metalogd,
sysklogd und syslog-ng alle System-Protokollierdienste.
Anwendungen die einen System-Protokollierdienst benötigen, können zum Beispiel
nicht auf metalogd bestehen, da die anderen System-Protokollierdienste
auch eine gute Wahl sind. Portage erlaubt daher virtuals: Jeder
System-Protokollierdienst bietet virtual/syslog, so dass Anwendungen von
virtual/syslog abhängig sein können.
Anwendungen im Portage-Tree können sich in verschiedenen Zweigen befinden.
Standardmäßig akzeptiert Ihr System nur Pakete, die Gentoo als stabil
betrachtet. Die meisten neuen Anwendungen werden nach der Veröffentlichung
zum Test-Zweig hinzugefügt, da Tests erforderlich sind um festzustellen, ob
die spezifische Anwendung als stabil gekennzeichnet werden kann. Obwohl Sie
diese Ebuilds auch im Portage-Tree sehen, wird Portage sie erst aktualisieren
wenn diese in den stabilen Zweig verschoben werden.
Einige Anwendungen sind nur für bestimmte Architekturen verfügbar. Andere
Anwendungen funktionieren nicht auf allen Architekturen oder es sind
intensivere Test für diese Anwendung erforderlich. Manchmal ist es dem
Entwickler der die Anwendung in den Portage-Tree eingebracht hat nicht
möglich, zu prüfen ob die Anwendung auf den unterschiedlichen Architekturen
korrekt funktioniert.
Jede Gentoo Installation gehört zu einem bestimmtes Profil, welches
neben anderen Informationen auch alle Pakete auflistet, die für ein
funktionierendes System erforderlich sind.
Blockierte Pakete
Befehlsauflistung 4.1: Portage warnt vor blockierten Paketen (mit --pretend) |
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)
|
Befehlsauflistung 4.2: Portage warnt vor blockierten Paketen (ohne --pretend) |
!!! Error: the mail-mta/postfix package conflicts with another package.
!!! both can't be installed on the same system together.
!!! Please use 'emerge --pretend' to determine blockers.
|
Ebuilds enthalten spezifische Felder, die Portage über die Abhängigkeiten
informieren. Es gibt zwei mögliche Formen von Abhängigkeiten: Build
Abhängigkeiten, deklariert in DEPEND und Abhängigkeiten zur Laufzeit,
deklariert in RDEPEND. Wenn eine dieser Abhängigkeiten ein Paket oder
eine Virtual als explizit nicht kompatibel kennzeichnet, wird ein Blocker
ausgelöst.
Um einen solchen Blocker zu umgehen können Sie entweder auf das Installieren des
Pakets verzichten, oder das den Blocker auslösende Paket zuerst deinstallieren.
Im gerade angebrachten Beispiel sind Ihre Optionen der Verzicht auf die
Installation von postfix oder die vorherige Deinstallation von
ssmtp.
Sie werden unter Umständen auch blockierende Pakete mit spezifischen Atoms wie
<media-video/mplayer-bin-1.0_rc1-r2 sehen. In diesem Fall wird
Aktualisieren auf eine neuere Version des blockierenden Paketes die
Blockierung aufheben.
Es ist auch möglich, dass sich zwei zu installierende Pakete gegenseitig
blockieren. In diesem seltenen Fall sollten Sie herausfinden, warum Sie beide
installieren müssen. In den meisten Fällen ist eines der Pakete ausreichend.
Wenn nicht, erstellen Sie bitte einen Bug in
Gentoos Bugtracking System.
Maskierte Pakete
Befehlsauflistung 4.3: Portage Warnung zu maskierten Paketen |
!!! all ebuilds that could satisfy "bootsplash" have been masked.
|
Befehlsauflistung 4.4: Portage Warnung zumaskierten Paketen - Gründe |
!!! possible candidates are:
- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- games-fps/unreal-tournament-451 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)
|
Wenn Sie ein Paket installieren wollen, welches für Ihr System nicht verfügbar
ist, erhalten Sie eine solche Fehlermeldung. Sie sollten versuchen eine andere
Anwendung, welche für Ihr System verfügbar ist, zu installieren oder warten bis
das gewünschte Paket verfügbar ist. Es gibt immer einen Grund warum ein Paket
maskiert ist:
-
~arch Keyword bedeutet, dass diese Anwendung noch nicht hinreichend
getestet ist, um diese in den stabilen Zweig zu schieben. Warten Sie ein
paar Tage oder Wochen und versuchen Sie es erneut.
-
-arch Keyword oder -* Keyword bedeutet, dass diese Anwendung
auf Ihrer Architektur nicht funktioniert. Wenn Sie glauben, dass das Paket
funktioniert erstellen Sie einen Bugreport über unsere
Bugzilla Webseite.
-
Fehlendes Keyword bedeutet, dass diese Anwendung auf Ihrer
Architektur noch nicht getestet wurde. Bitten Sie das Portierungs Team
Ihrer Architektur dieses Paket zu testen, oder testen Sie es selbst
und melden Sie Ihre Ergebnisse über unsere
Bugzilla Webseite.
-
package.mask bedeutet, dass dieses Paket korrupt, instabil oder
schlecht ist und als "nicht-benutzen" gekennzeichnet wurde.
-
profile bedeutet, dass dieses Paket als nicht zutreffend für Ihr
Profil gekennzeichnet ist. Die Applikation kann Ihr System in einen
korrupten Zustand versetzen wenn Sie diese Anwendung installieren.
Oder die Anwendung ist mit dem Profil dass Sie verwenden nicht kompatibel.
Fehlende Abhängigkeiten
Befehlsauflistung 4.5: Portage Warnung zu fehlenden Abhängigkeiten |
emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3.4.2-r4".
!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem.
|
Die Anwendung welche Sie installieren möchten benötigt ein anderes Paket,
welches für Ihr System nicht verfügbar ist. Schauen Sie im
Bugzilla nach, ob das Problem bekannt
ist und wenn nicht, erstellen Sie zu diesem Problem einen neuen Bugreport.
Solange Sie nicht verschiedene Zweige mischen sollte eine solche Fehlermeldung
eigentlich nicht auftauchen und ist somit ein Bug.
Doppeldeutige Ebuild Namen
Befehlsauflistung 4.6: Portage Warnung über Doppeldeutige Ebuild Namen |
!!! The short ebuild name "aterm" is ambiguous. Please specify
!!! one of the following fully-qualified ebuild names instead:
dev-libs/aterm
x11-terms/aterm
|
Die Anwendung welche Sie installieren möchten, hat einen Namen der auf mehr als
ein Paket zutrifft. Sie müssen ebenfalls die Kategorie des Paketes angeben.
Portage informiert Sie über mögliche Treffer, aus denen Sie auswählen können.
Zyklische Abhängigkeiten
Befehlsauflistung 4.7: Warnung von Portage zu zyklischen Abhängigkeiten |
!!! Error: circular dependencies:
ebuild / net-print/cups-1.1.15-r2 depends on ebuild / app-text/ghostscript-7.05.3-r1
ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild / net-print/cups-1.1.15-r2
|
Zwei (oder mehr) Pakete, die Sie installieren möchten hängen gegenseitig
voneinander ab und können daher nicht installiert werden. Dies ist in den
meisten Fällen ein Bug im Portage-Tree. Bitte warten Sie eine Weile,
aktualisieren den Portage-Tree und versuchen Sie es erneut. Schauen Sie
ebenfalls im Bugzilla, ob dies ein
bekanntes Problem ist und erstellen einen Bugreport sofern noch keiner
existiert.
Herunterladen der Quellen schlägt fehl
Befehlsauflistung 4.8: Portage Warnung zu Fehlern beim herunterladen der Quellen |
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
!!! Some fetch errors were encountered. Please see above for details.
|
Portage konnte die Quellen für eine bestimmte Anwendung nicht herunterladen und
wird mit dem Installieren der anderen Anwendungen (sofern zutreffend)
fortfahren. Dieser Fehler kann durch einen noch nicht aktualisierten Mirror
oder einen falsche Angabe im Ebuild hervorgerufen werden. Zudem kann es sein,
dass der Server von dem Sie die Quellen herunterladen möchten aus einem
unbekannten Grund nicht erreichbar ist.
Versuchen Sie es eine Stunde später nochmals um zu prüfen, ob das Problem noch
besteht.
Schutz des Systemprofils
Befehlsauflistung 4.9: Portage Warnung über durch das Profil geschützte Pakete |
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.
|
Sie wollen ein Paket deinstallieren, welches zu den Kernbestandteilen
Ihres Systems zählt. Es ist in Ihrem Profil als notwendig aufgeführt
und sollte daher nicht deinstalliert werden.
Fehler in der Überprüfung des Digests
Manchmal kann das installieren eines Pakets mittels emerge mit folgender
Nachricht abbrechen:
Befehlsauflistung 4.10: Fehler in der Überprüfung des Digest |
>>> checking ebuild checksums
!!! Digest verification failed:
|
Dies ist ein Zeichen dafür dass etwas mit dem Portage-Tree nicht in Ordnung
ist. Oft liegt es daran, dass ein Entwickler beim einbringen eines Pakets
in den Tree einen Fehler gemacht hat.
Wenn die Überprüfung des Digest fehlschlägt versuchen Sie nicht das
Paket selber neu zu indizieren. Das Ausführen von ebuild foo manifest
wird das Problem nicht beheben. Es wird das Problem mit ziemlicher Sicherheit
nur noch verschärfen!
Warten Sie stattdessen ein bis zwei Stunden, bevor der Tree sich etwas
normalisiert hat. Es ist wahrscheinlich ein Fehler, der direkt danach bemerkt
wurde, aber es kann eine Weile dauern bis die Korrektur im Portage-Tree
verbreitet wurde. Während Sie warten können Sie im Bugzilla nachsehen ob jemand das Problem
bereits gemeldet hat. Wenn nicht, melden Sie einfach einen Bug für das kaputte
Paket.
Sobald Sie sehen, dass der Fehler behoben wurde, können Sie erneut
synchronisieren um das korrigierte Digest zu erhalten.
Wichtig:
Dies bedeutet nicht, dass Sie Ihren Tree mehrere Male synchronisieren
sollten! Wie in der Rsync-Richtlinie aufgeführt (wenn Sie emerge --sync
ausführen) werden Benutzer, die zu oft synchronisieren gesperrt! Es ist besser
bis zu Ihrem nächsten geplanten Sync zu warten, damit die Rsync-Server nicht
überlastet werden.
|
2. USE Flags
2.a. Was sind USE-Flags?
Die Idee welche hinter USE-Flags steckt
Wenn Sie Gentoo installieren (oder irgendeine andere Distribution, oder sogar
ein anderes Betriebssystem) treffen Sie Entscheidungen abhängig von der Umgebung
in der Sie arbeiten. Die Einrichtung eines Server unterscheidet sich von der
Einrichtung einer Workstation. Eine Spiele-Workstation unterscheidet sich von
einer Workstation für 3D-Rendering.
Dies trifft nicht nur bei der Auswahl der Pakete die Sie installieren wollen zu,
sondern auch welche Funktionen ein Paket unterstützen soll. Wenn Sie OpenGL
nicht benötigen, warum sollten Sie sich die Mühe machen OpenGL zu installieren
und OpenGL-Unterstützung in die meisten Ihrer Pakete einzubauen? Wenn Sie KDE
nicht benutzen wollen, warum sollten Sie sich die Mühe machen Pakete mit
KDE-Unterstützung zu kompilieren, wenn diese Pakete auch ohne einwandfrei
funktionieren?
Um den Benutzern bei der Entscheidung zu helfen, was installiert/aktiviert
werden soll und was nicht, wollen wir, dass der Benutzer seine Umgebung auf
eine einfache Weise spezifiziert. Dies zwingt den Benutzer dazu zu entscheiden,
was er wirklich will und vereinfachtt den Prozess für Portage, unser
Paketmanagementsystem, sinnvolle Entscheidungen zu treffen.
Definition eines USE-Flag
Geben Sie die USE-Flags ein. Solch ein Flag ist ein Schlüsselwort das
Unterstützungs- und Abhängigkeitsinformationen für ein bestimmtes Konzept
beinhaltet. Wenn Sie ein bestimmtes USE-Flag definieren wird Portage wissen,
dass Sie Unterstützung für das gewählte Schlüsselwort wollen. Natürlich
verändert dies auch die Abhängigkeitsinformationen für ein Paket.
Schauen wir uns ein spezifisches Beispiel an: das kde Schlüsselwort.
Wenn Sie dieses Schlüsselwort nicht in Ihrer USE Variable haben, werden
alle Pakte die optionale KDE Unterstützung haben ohne KDE
Unterstützung kompiliert. Alle Pakete die eine optionale KDE Abhängigkeit
haben werden installiert, ohne dass die KDE Bibliotheken (als
Abhängigkeit) installiert werden. Wenn Sie das kde Schlüsselwort
verwendet haben, dann werden diese Pakete mit KDE Unterstützung
kompiliert und die KDE Bibliotheken werden als Abhängigkeit installiert.
Dadurch, dass Sie das Schlüsselwort korrekt definieren, erhalten Sie ein System
spezifisch an Ihre Bedürfnisse angepasst.
Welche USE-Flags gibt es?
Es gibt zwei Arten von USE-Flags: globale und lokale USE-Flags.
-
Ein globales USE-Flag wird von vielen Paketen systemweit benutzt.
Dies ist was die meisten Menschen als ein USE-Flag ansehen.
-
Ein lokales USE-Flag wird von einem einzelnen Paket verwendet um
Entscheidungen spezifisch für ein Paket zu treffen.
Eine Liste von allen verfügbaren globalen USE-Flags findet man Online oder lokal in
/usr/portage/profiles/use.desc.
Eine Liste verfügbarer lokaler USE-Flags finden Sie lokal in
/usr/portage/profiles/use.local.desc.
2.b. Benutzung von USE-Flags
Deklarieren von ständigen USE-Flags
In der Hoffnung, dass Sie überzeugt sind von der Wichtigkeit von USE-Flags,
werden wir Sie nun informieren wie man USE-Flags deklariert.
Wie vorher erwähnt, werden alle USE-Flags innerhalb der USE Variable
deklariert. Um es für die Benutzer einfach zu machen USE-Flags zu suchen und
auszuwählen, geben wir schon eine Standardeinstellung für USE vor. Diese
Einstellung ist eine Sammlung von USE-Flags, von denen wir glauben, dass sie
häufig von Gentoo Benutzern verwendet werden. Diese Standardeinstellung ist
deklariert in der make.defaults Dateien die Teil Ihres Profils
sind.
Das Profil auf das Ihr System hört wird ausgewiesen vom
/etc/make.profile symlink. Jedes Profil funktioniert aufbauend auf
einem anderen, größeren Profil. Das Endergebnis ist daher die Summe aller
Profile. Das Hauptprofil ist das base Profil
(/usr/portage/profiles/base).
Lassen Sie uns einen Blick auf die Standardeinstellung für das 2004.3 Profil
werfen:
Befehlsauflistung 2.1: Kulmulative make.defaults USE-Variable für das 2004.3 Profil |
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Wie Sie sehen können, enthält diese Variable schon eine ziemlich große Anzahl
von Schlüsselwörtern. Verändern Sie jegliche make.defaults Dateien
nicht um die USE Variable an Ihre Bedürfnisse anzupassen:
Veränderungen in dieser Datei werden überschrieben wenn Sie ein Update von
Portage durchführen!
Sie ändern diese Standardeinstellung durch Hinzufügen oder Entfernen von
Schlüsselwörtern zur USE-Variable. Dies geschieht global durch die Definierung
der USE Variable in /etc/make.conf. In dieser Variable
fügen Sie die zusätzlichen USE-Flags hinzu, die Sie benötigen oder entfernen
die USE-Flags, die Sie nicht wollen. Das Letztere geschieht durch das Vorsetzen
eines Minuszeichens ("-") vor das Schlüsselwort.
Zum Beispiel wenn Unterstützung für KDE und QT entfernt werden soll aber
Unterstützung für ldap hinzugefügt werden soll, kann USE wie folgt in
/etc/make.conf definiert werden:
Befehlsauflistung 2.2: Eine Beispielseinstellung für USE in /etc/make.conf |
USE="-kde -qt3 -qt4 ldap"
|
Deklarieren von USE-Flags für einzelne Pakete
Machmal möchten Sie ein bestimmtes USE-Flag für ein (oder einige) Anwendungen
deklarieren, aber nicht systemweit. Um dies zu ermöglichen müssen Sie zunächst
das /etc/portage Verzeichnis erstellen (sofern es noch nicht
existiert) und die Datei /etc/portage/package.use editieren. Dies
ist normalerweise nur eine Datei, kann aber auch ein Verzeichnis sein. Weitere
Informationen finden Sie in man portage. Das folgende Beispiel setzt
voraus dass package.use nur eine Datei ist.
Wenn Sie zum Beispiel berkdb Unterstützung nicht global, aber für
mysql möchten fügen Sie folgendes ein:
Befehlsauflistung 2.3: /etc/portage/package.use Beispiel 1 |
dev-db/mysql berkdb
|
Sie können natürlich ein USE-Flag für ein Ebuild explizit deaktivieren.
Wenn Sie zum Beispiel keine java Unterstützung in PHP benötigen:
Befehlsauflistung 2.4: /etc/portage/package.use Beispiel 2 |
dev-php/php -java
|
Deklarieren von temporären USE-Flags
Manchmal wollen Sie eine bestimmte USE-Einstellung nur einmal benutzen. Anstatt
das /etc/make.conf zweimal editiert wird (um die Veränderungen in
USE anzuwenden und wieder zu entfernen) können Sie einfach die USE-Variable als
Umgebungsvariable definieren. Behalten Sie im Gedächtnis, dass wenn Sie die
jeweilige Anwendung re-kompilieren oder aktualisieren (entweder explizit oder
als Teil eines Systemupdate) diese Änderung verloren geht.
Als ein Beispiel werden wir, während der Installation von Seamonkey, temporär
Java von den USE-Einstellungen entfernen.
Befehlsauflistung 2.5: USE als Umgebungsvariable verwenden |
# USE="-java" emerge seamonkey
|
Reihenfolge
Natürlich gibt es eine gewisse Präzedenz darüber welche Einstellung Priorität
hat über die USE-Einstellungen. Sie wollen schließlich nicht
USE="-java" deklarieren nur um zu sehen, dass java weiterhin
verwendet wird wegen einer Einstellung, die eine höhere Priorität hat.
Präferenz für die USE-Einstellung ist nach Priorität geordnet (die Erste hat
die niedrigste Priorität):
-
Standardeinstellung für USE deklariert in den make.defaults
Dateien, die Teil Ihres Profils sind.
-
Benutzerdefinierte USE-Einstellungen in /etc/make.conf
-
Benutzerdefinierte USE-Einstellungen in
/etc/portage/package.use
-
Benutzerdefinierte USE-Einstellungen definiert als Umgebungsvariable
Um die endgültige USE Einstellungen zu sehen, so wie sie von Portage
gesehen wird, führen Sie emerge --info aus. Dies listet alle relevanten
Variablen (inklusive der USE Variable) mit dem von Portage verwendeten
Inhalt auf.
Befehlsauflistung 2.6: Ausführen von emerge --info |
# emerge --info
|
Das gesamte System an neue USE-Flags anpassen
Wenn Sie Ihre USE-Flags geändert haben und nun Ihr gesamtes System dazu bringen
möchten die neuen USE-Flags zu nutzen, benutzen Sie die --newuse Option
von emerge:
Befehlsauflistung 2.7: Neuerstellung Ihres gesamten System |
# emerge --update --newuse world
|
Führen Sie nun Portages depclean aus, um Abhängigkeiten aus Ihrem alten System,
die nun durch andere USE-Flags ersetzt wurden, zu löschen.
Warnung:
Das Ausführen von emerge depclean ist eine gefährliche Operation und
sollte mit dementsprechender Vorsicht vorgenommen werden. Kontrollieren Sie die
angezeigte Liste mit zu löschenden Paketen lieber zweimal um so sicherzustellen,
dass keine notwendigen Pakete gelöscht werden. Im folgenden Beispiel fügen wir
den -p Switch hinzu, um nur eine Liste unbenötigter Pakete angezeigt zu
bekommen, ohne diese jedoch gleichzeitig auch zu entfernen.
|
Befehlsauflistung 2.8: Entfernen unbenötigter Pakete |
# emerge -p --depclean
|
Wenn depclean beendet ist, führen Sie revdep-rebuild aus, um Anwendungen
die dynamisch gegen Share Objects der deinstallierten Anwendungen gelinkt sind
neu zu kompilieren. revdev-rebuild ist TEil des gentoolkit
Paketes, vergessen Sie nicht dieses zuvor zu installieren.
Befehlsauflistung 2.9: Ausführen von revdep-rebuild |
# revdep-rebuild
|
Nachdem Sie dies alles ausgeführt haben, benutzt Ihr System die neuen USE-Flag
Einstellungen.
2.c. Paket spezifische USE-Flags
Betrachten vorhandener USE-Flags
Nehmen wir als Beispiel seamonkey: Auf welche USE-Flags hört es? Um dies
herauszufinden benutzen wir emerge mit der --pretend und der
--verbose Option:
Befehlsauflistung 3.1: Betrachten der benutzten USE-Flags |
# emerge --pretend --verbose seamonkey
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] www-client/seamonkey-1.0.7 USE="crypt gnome java -debug -ipv6
-ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango
-moznoroaming -postgres -xinerama -xprint" 0 kB
|
emerge ist nicht das einzige Hifsmittel für diesen Job. In der Tat haben
wir ein Werkzeug, ausgelegt auf Paketinformationen, genannt equery,
welches im gentoolkit Paket enthalten ist. Installieren Sie zunächst
gentoolkit:
Befehlsauflistung 3.2: Installieren von gentoolkit |
# emerge gentoolkit
|
Führen Sie nun equery mit dem uses Argument aus um die USE-Flags
eines bestimmten Paketes zu betrachten. Zum Beispiel für das gnumeric
Paket:
Befehlsauflistung 3.3: Benutzung von equery zur Betrachtung verwendeter USE-Flags |
# equery --nocolor uses =gnumeric-1.6.3 -a
[ Searching for packages matching =gnumeric-1.6.3... ]
[ Colour Code : set unset ]
[ Legend : Left column (U) - USE flags from make.conf ]
[ : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/gnumeric-1.6.3 ]
U I
- - debug : Enable extra debug codepaths, like asserts and extra output.
If you want to get meaningful backtraces see
http://www.gentoo.org/proj/en/qa/backtraces.xml .
+ + gnome : Adds GNOME support
+ + python : Adds support/bindings for the Python language
- - static : !!do not set this during bootstrap!! Causes binaries to be
statically linked instead of dynamically
|
3. Portage Features
3.a. Portage Features
Portage hat einige zusätzliche Features, die das Gentoo Erlebnis noch ein wenig
besser machen. Viele dieser Features beruhen auf Software Tools um die
Performance, Funktionssicherheit, Sicherheit, etc. zu verbessern.
Um diese Portage Features zu aktivieren oder deaktivieren müssen Sie die
FEATURES Variable in /etc/make.conf anpassen. Diese
Variable enthält verschiedene Feature Keywords, welche durch Leerzeichen
getrennt werden.In vielen Fällen müssen Sie ebenfalls zusätzliche Software
installieren.
Nicht alle Features, die Portage anbietet werden hier aufgelistet. Für einen
vollständigen Überblick schauen Sie in die make.conf Manpage:
Befehlsauflistung 1.1: Lesen der make.conf Manpage |
$ man make.conf
|
Um herauszufinden, welche FEATURES per default aktiviert sind führen Sie
emerge --info aus und suchen Sie nach der FEATURES Variable, oder filtern
diese aus:
Befehlsauflistung 1.2: Herausfinden welche FEATURES bereits aktiv sind |
$ emerge --info | grep FEATURES
|
3.b. Distributed Compiling
Benutzung von distcc
distcc ist ein Programm das "Kompilierungen" über mehrere, nicht
notwendigerweise identische Computer, über ein Netzwerk verteilt. Der
distcc - Client sendet alle notwendigen Informationen zu den
erreichbaren distcc - Servern (die den distccd laufen haben), so
dass diese Teile des Quellcodes vom Client kompilieren können. Als Resultat
wird Zeit beim Kompilieren eingespart.
Sie finden tiefer gehende Informationen über distcc (und wie Sie es bei
Gentoo zum Laufen bringen) in unserer Gentoo
distcc Dokumentation.
distcc installieren
Distcc bringt einen grafischen Monitor mit, der Sie über alle Aufgaben
informiert, die der Computer zum Kompilieren wegsendet. Falls Sie
Gnome benutzen, setzen Sie 'gnome' in Ihrer USE-Variable.
Wenn Sie nicht Gnome nutzen, den Monitor aber trotzdem haben
wollen, sollten Sie 'gtk' in Ihrer USE-Variable setzen.
Befehlsauflistung 2.1: distcc installieren |
# emerge distcc
|
Unterstützung für Portage aktivieren
Fügen Sie distcc der FEATURES Variable in /etc/make.conf
hinzu. Anschließen editieren Sie die MAKEOPTS Variable entsprechend Ihren
Wünschen. In den meisten Fällen ist es hinreichend "-jX" anzugeben, wobei X der
Nummer der der CPUs die den distccd ausführen entsprechen (inklusive dem
aktuellen Host) plus eins, möglicherweise haben Sie mit anderen Werten bessere
Ergebnisse.
Nun rufen Sie distcc-config auf und tragen eine Liste der verfügbaren
Server ein. Als einfaches Beispiel nehmen wir einmal an, dass die verfügbaren
distcc Server 192.168.1.102 (der momentane Host),
192.168.1.103 und 192.168.1.104 (zwei "entfernte" Hosts) sind:
Befehlsauflistung 2.2: distcc für die Nutzung dreier verfügbarer distcc Server konfigurieren |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Vergessen Sie bitte nicht, auch den distccd - Dämonen zu starten:
Befehlsauflistung 2.3: distcc Dämonen starten |
# rc-update add distccd default
# /etc/init.d/distccd start
|
3.c. Caching Compilation
Über ccache
ccache ist ein schneller Compiler - Cache. Wenn Sie ein Programm
kompilieren, werden Zwischenresultate gecacht, so dass bei einer Rekompilierung
des Programms die Zeit zum Kompilieren viel kürzer ist. Das kann bei normalen
Kompilierungen eine 5 bis 10 Mal schnellere Kompilierung ausmachen.
Falls Sie an den Vor- und Nachteilen von ccache interessiert sind,
besuchen Sie bitte die ccache
Homepage.
ccache installieren
Zur Installation von ccache führen Sie emerge ccache aus:
Befehlsauflistung 3.1: ccache installieren |
# emerge ccache
|
Unterstützung für Portage aktivieren
Öffnen Sie /etc/make.conf und fügen Sie ccache zu
FEATURES hinzu. Anschließen erstellen Sie eine neue Variable namens
CCACHE_SIZE und setzen diese auf "2G":
Befehlsauflistung 3.2: CCACHE_SIZE in /etc/make.conf editieren |
CCACHE_SIZE="2G"
|
Um zu schauen ob ccache funktioniert, fragen Sie ccache nach seinen
Statistiken. Weil Portage ein anderes Home-Verzeichnis verwendet, müssen Sie
auch die CCACHE_DIR Variable setzen:
Befehlsauflistung 3.3: Ccache - Statistiken anschauen |
# CCACHE_DIR="/var/tmp/ccache" ccache -s
|
Der /var/tmp/ccache Pfad ist das Standard ccache Home-Verzeichnis
von Portage. Wenn Sie diese Einstellungen ändern möchten, können Sie die
CCACHE_DIR Variable in /etc/make.conf setzen.
Wenn Sie aber ccache ausführen würden, würde es den Standardpfad
${HOME}/.ccache verwenden. Deswegen mussten Sie auch die
CCACHE_DIR Variable setzen, als Sie nach den (Portage)
ccache-Statistiken fragten.
Nutzung von ccache außerhalb von Portage
Wenn Sie ccache für Kompilierungen außerhalb von Portage nutzen möchten fügen
Sie /usr/lib/ccache/bin dem Beginn der PATH Variable hinzu (vor
/usr/bin). Dies kann durch Editieren von
.bash_profile in Ihrem Home-Verzeichnis erreicht werden. Die
Verwendung von .bash_profile ist eine Möglichkeit Ihre
PATH-Variable zu definieren.
Befehlsauflistung 3.4: Editieren von .bash_profile |
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
|
3.d. Binäre Pakete
Binärpakete erstellen
Portage unterstützt die Installation von vorkompilierten Paketen. Obwohl Gentoo
keine vorkompilierten Pakete anbietet (mit Ausnahme der GRP Schnappschüsse) ist
die Funktion vollständig implementiert.
Um ein vorkompiliertes Paket zu erstellen können Sie quickpg benutzen,
sofern das Programm bereits in Ihrem System installiert ist oder Sie benutzen
die --buildpkg oder --buildpkgonly Optionen.
Falls Sie wollen, dass Portage dies standardmäßig macht, sollten Sie das
Schlüsselword buildpkg in der FEATURES Variablen setzen.
Erweiterte Unterstützung zum Erstellen von vorkompilierten Paketen finden Sie in
catalyst. Für weitere Informationen zu catalyst lesen Sie bitte
die Catalyst
FAQ.
Vorkompilierte Pakete Installieren
Auch wenn Gentoo keine anbietet, Sie können ein zentrales Repository anlegen, in
dem Sie vorkompilierte Pakete ablegen. Wenn Sie dieses Repository nutzen möchten
müssen Sie Portage mit der PORTAGE_BINHOST Variable den Ort des Repository
bekannt machen. Wenn sich die Pakete zum Beispiel auf ftp://buildhost/gentoo
befinden:
Befehlsauflistung 4.1: Setzen der PORTAGE_BINHOST Variable in /etc/make.conf |
PORTAGE_BINHOST="ftp://buildhost/gentoo"
|
Wenn Sie vorkompilierte Pakete installieren wollen fügen Sie --getbinpkg
Option an das entsprechende emerge Kommando (welches ebenfalls --usepkg
enthalten muss) an. Die erste Option weist Portage an ein Binärpaket
herunterzuladen, die zweite zuerst zu versuchen ein Binärpaket zu installieren,
bevor Sourcen heruntergeladen und kompiliert werden.
Um zum Beispiel gnumeric mit vorkompilierten Paketen zu installieren:
Befehlsauflistung 4.2: Installation des vorkompilierten gnumeric Pakets |
# emerge --usepkg --getbinpkg gnumeric
|
Weitere Informationen zur Binärpaket Funktionalität von emerge finden Sie
in der emerge Manpage:
Befehlsauflistung 4.3: Lesen der emerge Manpage |
$ man emerge
|
3.e. Dateien abrufen
Paralleler Abruf
Wenn Sie eine Serie von Paketen mit emerge isntallieren kann Portage die
Quelldateien für das nächste Paket in der Liste schon herunterladen, während es
noch ein anderes Paket kompiliert, und dadurch die Kompilierzeit reduzieren. Um
von dieser Fähigkeit Gebrauch zu machen, fügen Sie "parallel-fetch" zu Ihren
FEATURES hinzu.
Userfetch
Wenn Portage als root ausgeführt wird erlaubt FEATURES="userfetch" Portage das
Senken der root-Privilegien, während es Paketquellen abruft. Dies verbessert die
Sicherheit ein wenig.
4. Initskripte
4.a. Runlevel
Der Startvorgang
Wenn Sie Ihr System booten, werden Sie sehr viel Text auf dem Bildschirm
vorbeifließen sehen. Genauer betrachtet, ist es immer derselbe Text nach einem
Neustart. Diese Auflistung aller Aktionen beim Startvorgang wird
Bootsequenz genannt und ist (mehr oder weniger) fest vorgeschrieben.
Zuerst lädt Ihr Bootloader das Kernel-Image, welches Sie in der
Konfigurationsdatei Ihres Bootloaders angegeben haben, in den Arbeitsspeicher.
Dann teilt er der CPU mit, den Kernel zu starten. Wenn dieser geladen ist und
läuft, initialisiert er alle kernel-spezifischen Strukturen und Aufgaben. Dann
wird der init Prozess gestartet.
Dieser Prozess stellt sicher, dass auch alle Dateisysteme (die in
/etc/fstab angegeben wurden) gemounted und benutzt
werden können. Dann führt er mehrere Skripte in /etc/init.d
aus, welche die verschiedenen Dienste starten, die Sie für einen
erfolgreichen Bootvorgang benötigen.
Schließlich, wenn alle Skripte ausgeführt wurden, aktiviert init die
Terminals (in den meisten Fällen virtuelle Konsolen, die hinter Alt-F1,
Alt-F2, etc. versteckt sind) mit einem speziellen Prozess namens
getty. Dieser Prozess stellt dann sicher, dass Sie sich über diese
Terminals mit dem Befehl login einloggen können.
Initskripte
init führt die Skripte in /etc/init.d aber nicht willkürlich
aus. Nur die Skripte aus /etc/init.d, die es ausführen soll,
werden auch ausgeführt. Welche das sind, steht in
/etc/runlevels.
Zuerst werden alle Skripte aus /etc/init.d, die einen symbolischen
Link in /etc/runlevels/boot besitzen, von init gestartet.
Normalerweise geschieht dies in alphabetischer Reihenfolge, aber einige
Skripte müssen zunächst Abhängigkeiten auflösen, so dass erst andere
Skripte gestaret sein müssen, bevor es selbst ausgeführt werden kann.
Wenn alle Skripte aus /etc/runlevels/boot ausgeführt wurden,
startet init diejenigen Skripte, die einen symbolischen Link in
/etc/runlevels/default besitzen. Auch hier wird zunächst die
alphabetische Reihenfolge beachtet, es sei denn, dass auch hier wieder
Abhängigkeiten aufgelöst werden müssen, damit eine erfolgreiche Startsequenz
gewährleistet ist.
Wie Init arbeitet
Natürlich entscheidet init das alles nicht alleine. Es benötigt eine
Konfigurationsdatei, die enthält, welche Aktion ausgeführt werden soll. Diese
Datei heißt /etc/inittab.
Wenn Sie sich an die Bootsequenz erinnern, die wir Ihnen eben erklärt
hatten, werden Sie sich daran erinnern, dass die erste Aktion von init
das Mounten aller Dateisysteme war. Dies ist in der folgenden Zeile aus
/etc/inittab ersichtlich:
Befehlsauflistung 1.1: Zeile zur Systeminitialisierung in /etc/inittab |
si::sysinit:/sbin/rc sysinit
|
Diese Zeile teilt init mit, dass es /sbin/rc sysinit ausführen
muss, um das System zu initialisieren. Das /sbin/rc Skript stellt
dann die Initialisierung sicher. Sie könnten nun sagen, dass init ja
eigentlich nicht viel macht -- es delegiert die Aufgabe der
Systeminitialisierung an einen anderen Prozess.
Dann führt init alle Skripte, die einen symbolischen Link in
/etc/runlevels/boot haben aus. Dies wird in folgender Zeile
ersichtlich:
Befehlsauflistung 1.2: Systeminitialisierung, Fortsetzung |
rc::bootwait:/sbin/rc boot
|
Wieder übernimmt das rc Skript die notwendigen Aufgaben. Beachten Sie,
dass die Option, die rc (boot) übergeben wird, denselben Namen
besitzt, wie das verwendete Unterverzeichnis in /etc/runlevels.
Nun überprüft init seine Konfigurationsdatei, um zu sehen, welchen
Runlevel es ausführen sollte. Um dies zu entscheiden, ließt es die
folgende Zeile aus /etc/inittab:
Befehlsauflistung 1.3: Die initdefault Zeile |
id:3:initdefault:
|
In diesem Fall (welchen die meisten Gentoo-User nutzen werden) ist die
runlevel ID 3. Mit Hilfe dieser Information überprüft init, was
alles zum Start von Runlevel 3 ausgeführt werden muss:
Befehlsauflistung 1.4: Runlevel Definitionen |
l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc default
l6:6:wait:/sbin/rc reboot
|
Die Zeilen, die den Level 3 definieren, werden wiederum vom rc Skript
verwendet, um die Dienste (nun mit dem Argument default) zu starten.
Beachten Sie auch hier, dass das Argument von rc wieder denselben
Namen wie das verwendete Unterverzeichnis von /etc/runlevels
hat.
Wenn rc fertig ist, entscheidet init, welche Konsole es
aktivieren sollte und welche Befehle auf jeder Konsole benutzt werden
müssen:
Befehlsauflistung 1.5: Die Definition der virtuellen Konsolen |
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
|
Was ist ein Runlevel?
Sie haben gesehen, dass init ein Nummernschema benutzt, um zu
entscheiden, welchen Runlevel es aktivieren soll. Ein Runlevel
ist ein bestimmter Zustand, in dem sich Ihr System befindet und der eine
Ansammlung von Skripten (Runlevel-Skripte oder Initskripte)
besitzt, die beim Betreten oder Verlassen eines Runlevels ausgeführt
werden müssen.
In Gentoo sind sieben Runlevel definiert: drei interne Runlevel und vier, die
der Benutzer definieren kann. Die internen Runlevel sind sysinit,
shutdown und reboot und machen genau das, was die
Namen vermuten lassen: initialisieren das System, fahren es herunter und
führen einen Reboot durch.
Die benutzerdefinierten Runlevel sind diejenigen, mit einem Unterverzeichnis
in /etc/runlevels: boot, default,
nonetwork und single. Der boot
Runlevel startet alle notwendigen Dienste, die die anderen Runlevel benötigen.
Die verbleibenden drei Runlevel unterscheiden sich in den Diensten, die sie
starten: default wird genutzt, um die täglichen Operationen zu
erledigen, nonetwork nur im Falle, das keine Netzwerkverbindung
gebraucht wird und single, wenn das System repariert werden
muss.
Mit den Initskripten arbeiten
Die Skripte, die den rc Prozess starten, werden Initskripte
genannt. Jedes Skript in /etc/init.d kann mit den Argumenten
start, stop, restart, pause, zap,
status, ineed, iuse, needsme, usesme
oder broken ausgeführt werden.
Um einen Dienst zu starten oder zu stoppen (und die davon abhängigen Dienste),
sollte start, stop und restart benutzt werden:
Befehlsauflistung 1.6: Postfix starten |
# /etc/init.d/postfix start
|
Notiz:
Nur Dienste, die den gegebenen Dienst benötigen werden gestoppt oder
neu gestartet. Alle anderen abhängigen Dienste (die den Dienst nutzen,
aber nicht benötigen) werden nicht berührt.
|
Falls Sie einen Dienst stoppen wollen, aber nicht die davon abhängigen Dienste,
können Sie das pause Argument nutzen:
Befehlsauflistung 1.7: Postfix stoppen, ohne die davon abhängigen Dienste zu berühren |
# /etc/init.d/postfix pause
|
Falls Sie den Status eines Dienstes (started, stopped, paused, ...) sehen
möchten, können Sie das status Argument nutzen:
Befehlsauflistung 1.8: Statusinformationen über Postfix |
# /etc/init.d/postfix status
|
Falls die Statusinformation Ihnen mitteilt, dass der Dienst gestartet wurde,
Sie aber wissen, dass dies nicht der Fall ist, können Sie die Statusinformation
mit dem zap Argument zu "stopped" zurücksetzen:
Befehlsauflistung 1.9: Statusinformation von Postfix zurücksetzen |
# /etc/init.d/postfix zap
|
Um auch nachzufragen, was von dem Dienst alles abhängt, können sie die
Argumente iuse oder ineed nutzen. Mit ineed wird alles
angezeigt, was zum ordnungsgemäßen Funktionieren des Dienstes nötig ist.
iuse andererseits zeigt alle Dienste an, die von diesem Dienst benutzt
werden können, aber nicht notwendig zur ordnungsgemäßen Funktion des
Dienstes sind.
Befehlsauflistung 1.10: Anforderung einer Liste der notwendigen Dienste, von denen Postfix abhängt |
# /etc/init.d/postfix ineed
|
Ähnlich ist die Vorgehensweise, wenn Sie nach allen Diensten fragen wollen, die
einen bestimmten Dienst benötigen (needsme) oder ihn benutzen
(usesme):
Befehlsauflistung 1.11: Anforderung einer Liste aller Dienste, die Postfix benötigen |
# /etc/init.d/postfix needsme
|
Schließlich können Sie noch nachfragen, welche Abhängigkeiten der Dienst
benötigt, die aber noch fehlen:
Befehlsauflistung 1.12: Anforderung einer Liste aller fehlenden Abhängigkeiten für Postfix |
# /etc/init.d/postfix broken
|
4.b. Mit rc-update arbeiten
Was ist rc-update?
Das Init-System von Gentoo benutzt einen Abhängigkeitsbaum um zu
entscheiden, welcher Dienst zuerst gestartet werden muss. Da dies eine
ermüdende Aufgabe ist, die wir unseren Usern nicht unbedingt zumuten wollten
"von Hand" auszuführen, haben wir einige Tools erstellt, die die Administration
der Runlevel und Initskripte erleichtert.
Mit rc-update können Sie Initskripte zu einem Runlevel hinzufügen
und wieder entfernen. Das rc-update Tool wird dann das depscan.sh
Skript automatisch dazu veranlassen, den Abhängigkeitsbaum anzupassen.
Hinzufügen und Entfernen von Diensten
Sie haben bereits während der Installation von Gentoo Initskripte zum
"default" Runlevel hinzugefügt. Zu diesem Zeitpunkt hatten Sie aber
wahrscheinlich noch keine Ahnung, für was "default" steht, nun sollten Sie
es aber wissen. Das rc-update Skript benötigt ein zweites Argument,
welches eine "Aktion" definiert: add, del oder show.
Um ein Initskript hinzuzufügen oder zu entfernen, übergeben Sie
rc-update einfach add oder del als Argument,
gefolgt von dem Initskript und dem Runlevel. Zum Beispiel:
Befehlsauflistung 2.1: Entfernen von Postfix aus dem Runlevel default |
# rc-update del postfix default
|
Der Befehl rc-update -v show wird Ihnen alle verfügbaren
Initskripte und Runlevel, in denen diese ausgeführt werden, zeigen:
Befehlsauflistung 2.2: Informationen über Initskripte erhalten |
# rc-update -v show
|
Sie können auch rc-update show ausführen (ohne -v) um nur die
aktivierten Initskripte und ihre Runlevel anzuzeigen.
4.c. Dienste konfigurieren
Warum zusätzliche Konfigurationen?
Initskripte können recht komplex sein. Es ist daher nicht unbedingt von
Vorteil, wenn User Initskripte direkt bearbeiten könnten, da es die Sache
nur fehleranfälliger machen würde. Es ist aber auch wichtig, dass
Konfigurationen gemacht werden können. Zum Beispiel, wenn Sie einem
Dienst mehrere Optionen mitgeben wollten:
Ein zweiter Grund, diese Konfiguration außerhalb der Initskripte zu haben
ist, ein Update eines Initskriptes durchführen zu können, ohne zu
befürchten, die Konfigurationen dabei rückgängig zu machen.
Das /etc/conf.d Verzeichnis
Gentoo stellt einen einfachen Weg zur Konfiguration eines solchen
Services zur Verfügung: Jedes Initskript, das konfiguriert werden kann, hat
eine Datei in /etc/conf.d. Zum Beispiel hat das Apache2
Initskript (/etc/init.d/apache2 genannt) eine Konfigurationsdatei
namens /etc/conf.d/apache2, die die Optionen enthalten kann,
die Sie dem Apache 2 Server beim Start mitgeben wollen:
Befehlsauflistung 3.1: Variablen, definiert in /etc/conf.d/apache2 |
APACHE2_OPTS="-D PHP5"
|
Solch eine Konfigurationsdatei enthält nur Variablen (genau wie in
/etc/make.conf), was die Konfiguration eines Dienstes sehr
vereinfacht. Es erlaubt uns auch, mehr Informationen (als Kommentare)
über die Variablen zu geben.
4.d. Initskripte schreiben
Muss ich das?
Nein. Ein Initskript zu schreiben ist normalerweise nicht notwendig, da
Gentoo fertige Initskripte für alle bereitgestellten Dienste liefert. Wie dem
auch sei, haben Sie vielleicht einen Dienst, ohne Portage zu nutzen
installiert. In diesem Fall müssen sie wahrscheinlich ein eigenes Initskript
schreiben.
Benutzen Sie das von einem Dienst bereitgestellte Initskript nicht, es sei
denn, es ist ausdrücklich für Gentoo geschrieben: Die Initskripte von
Gentoo sind nicht mit den Initskripten anderer Distributionen kompatibel!
Layout
Das grundlegende Layout eines Initskriptes ist wie folgt beschrieben.
Befehlsauflistung 4.1: Grundlegendes Layout eines Initskriptes |
#!/sbin/runscript
depend() {
}
start() {
}
stop() {
}
restart() {
}
|
Jedes Initskript muss eine start Funktion definieren. Alle
anderen Abschnitte sind optional.
Abhängigkeiten
Es gibt zwei Abhängigkeiten, die Sie definieren können: use and
need. Wie wir vorhin schon einmal erwähnt hatten, ist die need
Abhängigkeit strenger als die use Abhängigkeit. Nach dem Typ der
Abhängigkeit schreiben Sie den davon abhängigen Dienst oder die
virtual Abhängigkeit.
Eine virtual Abhängigkeit stellt eine Abhängigkeit dar, die nicht nur
von diesem Dienst zur Verfügung gestellt wird. Ihr Initskript kann von einem
System-Protokollierdienst abhängen, aber es gibt ja bekanntlich mehrere davon
(metalogd, syslog-ng, sysklogd, ...). Da Sie ja nicht jeden einzelnen von
diesen brauchen (ein vernünftige System hat nicht jeden dieser
Protokollierer installiert und gestartet), stellen wir sicher, dass all diese
Dienste eine virtuelle Abhängigkeit bereitstellen.
Lassen Sie uns einen Blick auf die Abhängigkeitsinformationen des
Postfix-Dienstes werfen.
Befehlsauflistung 4.2: Abhängigkeitsinformationen zu Postfix |
depend() {
need net
use logger dns
provide mta
}
|
Wie Sie sehen können, der Postfix-Dienst:
-
benötigt die (virtual) net Abhängigkeit (die z.B. von
/etc/init.d/net.eth0 bereitgestellt wird)
-
nutzt die (virtual) logger Abhängigkeit (die z.B. von
/etc/init.d/syslog-ng bereitgestellt wird)
-
nutzt die (virtual) dns Abhängigkeit (die z.B. von
/etc/init.d/named bereitgestellt wird)
-
stellt die (virtual) mta Abhängigkeit (die allen Mail-Servern
gemein ist) zur Verfügung
Reihenfolge kontrollieren
In einigen Fällen benötigen Sie einen Dienst vielleicht nicht, wollen aber,
dass er vor (oder nach) einem anderen Dienst startet,
falls dieser auf dem System verfügbar ist (beachten Sie bitte die
Bedingung: es ist keine Abhängigkeit mehr) und dazu im selben
Runlevel läuft (beachten Sie bitte die Bedingung: nur Dienste im selben
Runlevel sind betroffen). Sie können diese Information bereitstellen, indem
Sie before oder after benutzen.
Als ein Beispiel schauen wir uns die Einstellungen des Portmap-Dienstes an:
Befehlsauflistung 4.3: Die depend() Funktion im Portmap-Dienst |
depend() {
need net
before inetd
before xinetd
}
|
Sie können auch den "*" Ausdruck benutzen, um alle Dienste im selben Runlevel
zu erwischen, obwohl das nicht sehr ratsam ist.
Befehlsauflistung 4.4: Ein Initskript als erstes in einem Runlevel starten |
depend() {
before *
}
|
Wenn Ihr Dienst auf lokale Festplatten schreiben muss, wird er wahrscheinlich
localmount benötigen. Wenn er etwas in /var/run platziert,
wie ein Pidfile, dann sollte er nach bootmisc gestartet werden.
Befehlsauflistung 4.5: Beispiel der depend() Funktion |
depend() {
need localmount
after bootmisc
}
|
Standardfunktionen
Neben der depend() Funktionalität benötigen Sie vielleicht auch
die start Funktion. Diese enthält alle Befehle, die zum Starten Ihres
Dienstes notwendig sind. Es ist ratsam, die ebegin und eend
Funktionen zu nutzen, um dem User mitzuteilen, was passiert:
Befehlsauflistung 4.6: Beispiel der start() Funktion |
start() {
ebegin "Starten meines Dienstes"
start-stop-daemon --start --exec /pfad/zu/meinem_dienst \
--pidfile /pfad/zu/meinem_pidfile
eend $?
}
|
Sowohl --exec als auch --pidfile sollten in den Start- und
Stopp-Funktionen verwendet werden. Falls der der Dienst kein Pidfile erstellt
sollten Sie, wenn möglich, --make-pidfile verwenden. Sie sollten dies
aber testen um sicher zu sein. Verwenden Sie ansonsten kein Pidfile. Sie können
zudem --quiet zu den start-stop-daemon Optionen hinzufügen; dies
wird aber nicht empfohlen, solange der Dienst nicht extrem detailliert
berichtet. Die Verwendung von --quiet kann die Fehlersuche behindern,
wenn der Dienst nicht erfolgreich gestartet werden kann.
Notiz:
Stellen Sie sicher, dass --exec wirklich einen Dienst aufruft und nicht
nur ein Shell-Skript, welches den Dienst startet und dann beendet. Das ist die
Aufgabe des Initskripts.
|
Wenn Sie weitere Beispiele der start() Funktion benötigen, lesen Sie
bitte den Quellcode der verfügbaren Initskripte in Ihrem
/etc/init.d Verzeichnis.
Anderen Funktionen, die Sie definieren können: stop() und
restart(). Sie sind nicht verpflichtet, diese Funktionen zu erstellen!
Unser Init-System ist intelligent genug, diese selbst auszufüllen, falls
Sie den start-stop-daemon nutzen.
Auch wenn Sie die stop() Funktion nicht erstellen müssen ist hier
ein Beispiel:
Befehlsauflistung 4.7: Beispiel der stop() Funktion |
stop() {
ebegin "Stoppen meines Dienstes"
start-stop-daemon --stop --exec /pfad/zu/meinem_dienst \
--pidfile /pfad/zu/meinem_pidfile
eend $?
}
|
Wenn Ihr Dienst ein anderes Skript ausführt (zum Beipsiel Bash, Python oder
Perl) und das Script später den Namen ändert (zum Beispiel von foo.py auf
foo) werden Sie --name zum start-stop-daemon hinzufügen
müssen. Sie müssen den Namen angeben, auf den Ihr Skript geändert wird. In
diesem Beispiel startet ein Dienst foo.py, welches seinen Namen auf
foo ändert:
Befehlsauflistung 4.8: Ein Dienst, der das Skript foo startet |
start() {
ebegin "Starten meines Skripts"
start-stop-daemon --start --exec /pfad/zu/meinem_skript \
--pidfile /pfad/zu/meinem_pidfile --name foo
eend $?
}
|
Für den start-stop-daemon existiert auch eine exzellente
man-Seite, falls Sie weitere Informationen benötigen.
Befehlsauflistung 4.9: Aufrufen der man-Seite des start-stop-daemon |
$ man start-stop-daemon
|
Die Syntax von Gentoo für Initskripte basiert auf der Bourne Again Shell
(bash). Es steht Ihnen also frei bash-kompatible Konstrukte innerhalb Ihrer
Initskripte zu verwenden.
Eigene Optionen hinzufügen
Falls Sie wollen, dass Ihr Initskript mehr Optionen besitzt, als wir bisher
aufgeführt haben, sollten Sie Ihre Option zur opts Variable
hinzufügen und eine Funktion mit demselben Namen wie die Option erstellen.
Zum Beispiel, um eine Funktion namens restartdelay zu unterstützen:
Befehlsauflistung 4.10: Unterstützung der restartdelay Option |
opts="${opts} restartdelay"
restartdelay() {
stop
sleep 3
start
}
|
Variablen zur Dienstkonfiguration
Sie müssen nichts machen, um eine Konfigurationsdatei in
/etc/conf.d zu unterstützen: Wenn Ihr Initskript ausgeführt
wird, wird folgendes automatisch zu Grunde gelegt (d.h. diese Variablen
können benutzt werden):
- /etc/conf.d/<Ihr Initskript>
- /etc/conf.d/basic
- /etc/rc.conf
Falls Ihr Initskript eine virtuelle Abhängigkeit (wie net) bereitstellt,
wird dazu die Datei, die mit dieser Abhängigkeit in Verbindung gebracht wird
(wie /etc/conf.d/net), auch zu Grunde gelegt.
4.e. Ändern des standardmäßigen Runlevel-Verhaltens
Wer kann hiervon profitieren?
Viele Laptop Benutzer kennen die Situation: Daheim müssen Sie net.eth0
starten, wenn Sie unterwegs sind möchten sie net.eth0 nicht starten (weil
grade kein Netzwerk verfügbar ist). Mit Gentoo können Sie das Runlevel Verhalten
nach Ihren eigenen Vorstellungen anpassen.
Zum Beispiel können Sie ein zweites Runlevel "default" anlegen, dass Sie booten
können mit anderen Initskripten die diesem Runlevel zugeordnet sind. Sie können
während des Booten wählen, welches default Runlevel Sie benutzen möchten.
softlevel benutzen
Zunächst erstellen Sie das Runlevel Verzeichnis für Ihr zweites "default"
Runlevel. Als Beispiel werden wir das offline Runlevel erstellen:
Befehlsauflistung 5.1: Erstellen eines Runlevel-Verzeichnisses |
# mkdir /etc/runlevels/offline
|
Fügen Sie die notwendigen Initskripte in das neu erstelle Runlevel. Wenn Sie
zum Bespiel eine exakte Kopie Ihres aktuellen default Runlevels anlegen
möchten, lediglich ohne net.eth0:
Befehlsauflistung 5.2: Hinzufügen der notwendigen Initskripte |
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
# rc-update del net.eth0 offline
# rc-update show offline
acpid | offline
domainname | offline
local | offline
net.eth0 |
|
Obwohl net.eth0 aus dem Runlevel offline entfernt wurde, wird udev
trotzdem versuchen jegliche Geräte, die es findet, und die passenden Dienste, zu
starten. Daher werden Sie jeden Netzwerkdienst, den Sie nicht starten wollen
(sowie auch Dienste für alle anderen Geräte, die von udev gestartet werden
könnten) wie folgt zu /etc/conf.d/rc hinzufügen müssen.
Befehlsauflistung 5.3: Deaktivierung der von Geräten gestarteten Dienste in /etc/conf.d/rc |
RC_COLDPLUG="yes"
RC_PLUG_SERVICES="!net.eth0"
|
Notiz:
Für weitere Informationen zu Diensten, die von Geräten gestartet werden, schauen
Sie sich bitte die Kommentare in /etc/conf.d/rc an.
|
Editieren Sie nun die Bootloader Konfiguration und fügen einen neuen Eintrag für
das Runlevel offline hinzu. Zum Beispiel in
/boot/grub/grub.conf:
Befehlsauflistung 5.4: Einen zusätzlichen Eintrag für das Runlevel offline hinzufügen |
title Gentoo Linux Offline Usage
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
|
Voilà, Sie sind soweit. Wenn Sie Ihr System booten und die neu hinzugefügte
Option auswählen wird das System das Runlevel offline anstelle des
Runlevels default starten.
Bootlevel benutzen
Die Nutzung von bootlevel ist komplett analog zu softlevel. Der
einzige Unterschied ist, dass Sie hier ein zweites "boot" Runlevel anstelle
eines zweiten "default" Runlevel definieren können.
5. Umgebungsvariablen
5.a. Umgebungsvariablen
Was sind Umgebungsvariablen?
Eine Umgebungsvariable ist ein Objekt mit vorgegebenem Namen, welches
Informationen für eine oder mehrere Anwendungen bereitstellt. Viele
Benutzer (speziell diejenigen, die neu in Linux sind) finden dies etwas
seltsam oder schlecht handhabbar. Diese Annahme ist ein Fehler: Durch
Verwendung von Umgebungsvariablen kann die Konfigurationseinstellung
von einem oder mehreren Programmen sehr einfach geändert werden.
Wichtige Beispiele
Die folgende Tabelle enthält einige Variablen, die in einem Linux-System
verwendet werden und beschreibt deren Bedeutung. Einige Beispiele werden
im Anschluss an die Tabelle dargestellt.
| Variable |
Beschreibung |
| PATH |
Diese Variable enthält eine durch Doppelpunkte getrennte Liste von
Verzeichnissen, in denen Ihr System nach ausführbaren Dateien schaut.
Wenn Sie den Namen einer ausführbaren Datei, wie zum Beispiel ls,
rc-update oder emerge eingeben und sich diese Datei nicht
in einem der Verzeichnisse dieser Liste befindet, wird sie nicht
ausgeführt, es sei denn, Sie geben den vollständigen Pfad an
(z.B. /bin/ls).
|
| ROOTPATH |
Diese Variable hat die gleiche Funktion wie PATH, aber hier werden
die Verzeichnisse aufgelistet, die durchsucht werden, wenn man als root
einen Befehl eingibt.
|
| LDPATH |
Diese Variable enthält eine durch Doppelpunkte getrennte Liste von
Verzeichnissen, in denen Ihr dynamischer Linker nach System-Bibliotheken
sucht.
|
| MANPATH |
Diese Variable enthält eine durch Doppelpunkte getrennte Liste von
Verzeichnissen, in denen der man Befehl nach der entsprechenden
man-page sucht.
|
| INFODIR |
Diese Variable enthält eine durch Doppelpunkte getrennte Liste von
Verzeichnissen, in denen der info Befehl nach der entsprechenden
info Seite sucht.
|
| PAGER |
Diese Variable enthält den Pfad zu dem Standard-Programm, welches zur
Anzeige von Dateiinhalten verwendet wird (z.B. less oder
more).
|
| EDITOR |
Diese Variable enthält den Pfad zu dem Standard-Programm, welches zur
Bearbeitung von Dateien verwendet wird (z.B. nano oder vi).
|
| KDEDIRS |
Diese Variable enthält eine durch Doppelpunkte getrennte Liste von
Verzeichnissen, in denen KDE-spezifisches Material enthalten ist.
|
| CONFIG_PROTECT |
Diese Variable enthält eine durch Leerzeichen getrennte Liste von
Anwendungen, die bei Aktualisierungen durch Portage nicht angetastet
werden.
|
| CONFIG_PROTECT_MASK |
Diese Variable enthält eine durch Leerzeichen getrennte Liste von
Anwendungen, die durch Aktualisierungen von Portage nicht geschützt sind.
|
Hier finden Sie eine Beispieldefinition der oben vorgestellten Variablen:
Befehlsauflistung 1.1: Beispielsdefinition |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf"
|
5.b. Variablen global definieren
Das /etc/env.d Verzeichnis
Um die einzelnen Definitionen der Variablen zentralisieren zu können,
wurde in Gentoo das /etc/env.d Verzeichnis angelegt.
Innerhalb dieses Verzeichnisses finden Sie einige Dateien, wie zum
Beispiel 00basic, 05gcc, etc. welche
die Variablen der einzelnen Applikationen enthalten.
In unserem Beispiel wird, wenn Sie gcc installieren,
die Datei 05gcc von dem ebuild angelegt und enthält
die Definition folgender Variablen:
Befehlsauflistung 2.1: /etc/env.d/05gcc |
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
|
In anderen Linux Distributionen werden solche Variablen in
/etc/profile geändert oder hinzugefügt. Gentoo hingegen macht es
so für Sie (und für Portage) deutlich einfacher die Umgebungsvariablen zu
verwalten, ohne auf die vielen verschiedenen Dateien, welche
Umgebungsvariablen enthalten können, eingehen zu müssen.
In unserem Fall wird, wenn ein Update von gcc durchgeführt wird, die
Datei /etc/env.d/05gcc automatisch aktualisiert, ohne den Benutzer
unnötig damit konfrontieren zu müssen.
Von dieser Methode profitiert nicht nur Portage sondern auch Sie als Benutzer.
Gelegentlich werden Sie gefragt, ob Sie eine bestimmte Umgebungsvariable
systemweit setzen wollen. Zum Beispiel bei der Variable http_proxy.
Anstatt sich mit /etc/profile auseinander zu setzen müssen, legen
Sie einfach eine entsprechende Datei (/etc/env.d/99local) an
und tragen darin die gewünschten Definitionen ein:
Befehlsauflistung 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Indem Sie dieselbe Datei für alle Variablen verwenden, haben Sie einen
schnellen Überblick über alle Variablen, die Sie selbst gesetzt haben.
Das env-update Skript
Einige Dateien in /etc/env.d definieren die Variable PATH.
Dies ist kein Fehler: Wenn Sie env-update ausführen, wird es die
ganzen zusätzlichen Definitionen anhängen, bevor es die Umgebungsvariablen
aktualisert. Somit wird es den Benutzern (oder Entwicklern) sehr einfach
gemacht, eigene Umgebungsvariablen hinzuzufügen, ohne sich mit den bestehenden
Werten herumschlagen zu müssen.
Das env-update Skript wird diese Werte in alphabetischer Reihenfolge der
/etc/env.d Dateien hinzufügen. Die Dateinamen müssen mit einer
zweistelligen Dezimalzahl beginnen.
Befehlsauflistung 2.3: Update-Reihenfolge von env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Die Verkettung von Variablen geschieht nicht bei allen, sondern nur bei
folgenden Variablen: KDEDIRS, PATH, LDPATH, MANPATH,
INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT,
CONFIG_PROTECT_MASK, PRELINK_PATH und PRELINK_PATH_MASK.
Für alle anderen Variablen wird der zuletzt definierte Wert (in alphabetischer
Reihenfolge der Dateien in /etc/env.d) verwendet.
Wenn Sie env-update ausführen, wird das Skript alle Umgebungsvariablen
erstellen und sie in /etc/profile.env ablegen (welches von
/etc/profile verwendet wird). Zusätzlich wird es die Informationen
aus der LDPATH Variable verwenden, um /etc/ld.so.conf
anzulegen. Anschließend wird es ldconfig ausführen, um für
den dynamischen Linker die Datei /etc/ld.so.cache neu
zu erstellen.
Um sofort von den Änderungen in env-update profitieren zu können, ohne
das System neu zu booten, müssen Sie nur folgenden Befehl ausführen. Den
meisten Benutzern wird er noch von der Installationsanleitung her bekannt sein:
Befehlsauflistung 2.4: Umgebungsvariablen aktualisieren |
# env-update && source /etc/profile
|
Notiz:
Der obige Befehl aktualisiert nur die Variablen im aktuellen Terminal,
in neuen Konsolen und in deren Nachfolgern. Daher müssen Sie, wenn Sie
mit X11 arbeiten, entweder source /etc/profile in jedem neuen Terminal,
dass Sie öffnen, eintippen oder X neustarten, damit alle Terminals per source
die neuen Variablen erhalten. Wenn Sie einen Loginmanager verwenden, müssen
Sie root werden und /etc/init.d/xdm restart eintippen. Wenn nicht, dann
müssen Sie sich ausloggen und wieder einloggen damit X Nachfolger mit den
neuen Variablenwerten erzeugt.
|
Wichtig:
Sie können Shell-Variablen nicht verwenden, wenn Sie andere Variablen
definieren. Das bedeutet, dass Dinge wie FOO="$BAR" (wo $BAR eine
weitere Variable ist) nicht erlaubt sind.
|
5.c. Variablen lokal definieren
Benutzerspezifisch
Nicht immer wollen Sie eine Umgebungsvariable global definieren. Wenn Sie zum
Beispiel /home/mein_benutzer/bin und das momentane
Arbeitsverzeichnis (das Verzeichnis in dem Sie sich befinden) zu der
PATH Variable hinzufügen wollen, es aber nicht allen anderen Benutzern
ebenfalls in ihre PATH Variable schreiben wollen, dann sollten Sie die
Variable in ~/.bashrc oder ~/.bash_profile lokal
definieren:
Befehlsauflistung 3.1: Erweitern des PATH für lokale Verwendung in ~/.bashrc |
PATH="${PATH}:/home/my_user/bin:"
|
Wenn Sie sich nun erneut anmelden, werden Ihre PATH Variablen
aktualisiert.
Sitzungsspezifisch
Mannchmal müssen die einzelnen Definitionen noch strikter gehandhabt werden.
Wenn Sie zum Beispiel Binärdateien von einem temporär angelegtem Verzeichnis
verwenden wollen, ohne den Pfad zu den entsprechenden Daten anzulegen, oder
~/.bashrc für diesen Verwendungszweck extra abändern zu müssen.
In diesem Fall können Sie PATH für Ihre aktuelle Sitzung mit dem
export Befehl setzen. Diese Einstellungen bleiben Ihnen bis zum nächsten
Logout erhalten.
Befehlsauflistung 3.2: Setzen einer sitzungsspezifischen Variable |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
C. Arbeiten mit Portage
1. Dateien und Verzeichnisse
1.a. Portage Dateien
Konfigurationsrichtlinien
Portage kommt mit einer Standardkonfiguration gespeichert in
/etc/make.globals daher. Wenn Sie einen Blick auf die Datei werfen,
werden Sie feststellen, dass sämtliche Portage Konfiguration durch Variablen
durchgeführt wird. Welche Variablen Portage kennt und was diese bedeuten
beschreiben wir später.
Da viele Konfigurationsanweisungen sich zwischen verschiedenen Architekturen
unterscheiden hat Portage auch Standardkonfigurationsdateien welche Teile
Ihres Profils sind. Durch den symbolischen Link /etc/make.profile
wird auf Ihr Profil verwiesen. Die Einstellungen von Portage werden durch die
make.defaults Dateien Ihres Profils und aller übergeordneten
Profile gesetzt. Wir erklären später mehr über Profile und das
/etc/make.profile Verzeichnis.
Wenn Sie planen Änderungen an Konfigurationsvariablen vorzunehmen verändern Sie
nicht /etc/make.globals oder make.defaults.
Anstelle dessen benutzen Sie /etc/make.conf, welche eine
Vorrangstellung gegenüber den vorher genannten Dateien hat. Sie finden ebenfalls
eine /usr/share/portage/config/make.conf.example. Wie der Name
impliziert ist dies eine Beispieldatei, Portage greift nicht auf diese Datei zu.
Sie können eine Portage Konfigurationsvariable auch als Umgebungsvariable
deklarieren, wir empfehlen dies jedoch nicht.
Profile spezifische Informationen
Wir sind bereits einem /etc/make.profile Verzeichnis über den Weg
gelaufen. Gut, dies ist nicht wirklich ein Verzeichnis, aber ein symbolischer
Link zu einem Profile, standardmäßig eines innerhalb von von
/usr/portage/profiles. Sie können Profile selbst erstellen und
diese auch ablegen wo Sie mögen, Sie müssen lediglich den Symlink anpassen.
Ein Profile beinhaltet Architektur-spezifische Informationen für Portage, wie
eine Liste aller Pakete die zum System gehören, eine Liste von Paketen die in
diesem Profil nicht funktionieren (oder maskiert sind).
Benutzerspezifische Konfiguration
Wenn Sie das Verhalten von Portage bezüglich der Installation von Software
beeinflussen wollen, führt kein Weg am Editieren von Dateien in
/etc/portage vorbei. Es wird Ihnen wärmstens empfohlen die
Dateien in /etc/portage zu benutzen und es ist wärmstens
empfohlen das Verhalten von Portage nicht durch Umgebungsvariablen zu
beeinflussen!
Innerhalb von /etc/portage können Sie die folgenden Dateien
erstellen:
-
package.mask listet alle Pakete auf, die Sie niemals
installieren wollen
-
package.unmask listet alle Pakete, die Sie installieren wollen,
obwohl Gentoo Entwickler aus guten Gründen davon abraten
-
package.keywords listet alle Pakete, die Sie installieren
möchten, obwohl dieses Paket (noch) nicht für Ihre Architektur freigegeben
wurde
-
package.use listet alle USE Flags, die Sie für ein bestimmtes
Paket und nur für dieses eine Paket verwenden möchten
Dies müssen nicht Dateien sein, es können auch Verzeichnisse sein die eine
Datei per Paket enthalten. Weitere Informationen über das
/etc/portage Verzeichnis und eine vollständige Liste von
möglichen Dateien, die Sie erstellen können finden Sie in der Portage Manpage:
Befehlsauflistung 1.1: Lesen der Portage Manpage |
$ man portage
|
Ändern von Portage Datei- & Verzeichnisorten
Die zuvor erwähnten Konfigurationsdateien können nicht irgendwo anders abgelegt
werden, Portage wird nach diesen Dateien immer an diesen genauen Stellen
suchen. Portage benutzt jedoch zahlreiche weitere Orte für zahlreiche
verschiedene Zwecke: Build-Verzeichnis, Quellcode Ablage, Portage Tree, ...
Alle diese Zwecke haben bekannte Standardorte, diese können jedoch nach Ihrem
persönlichen Geschmack in /etc/make.conf verändert werden. Der
Rest dieses Kapitels erklärt Ihnen welche speziellen Orte Portage benutzt und
wie Sie den Ort abändern können.
Dieses Dokument ist dennoch nicht als Referenz gedacht. Wenn Sie eine Datei
suchen, die alles umfasst konsultieren Sie die make.conf Manpages:
Befehlsauflistung 1.2: Lesen der portage und make.conf Manpages |
$ man portage
$ man make.conf
|
1.b. Ablegen von Dateien
Der Portage-Tree
Der Portage Tree befindet sich standardmäßig in /usr/portage. Dies
wird durch die PORTDIR Variable definiert. Wenn Sie den Portage Tree irgendwo
anders (durch Anpassen der PORTDIR Variable) ablegen, vergessen Sie nicht den
/etc/make.profile Symlink anzupassen.
Wenn Sie die PORTDIR Variable anpassen, möchten Sie vermutlich auch die
folgenden Variablen (PKGDIR, DISTDIR, RPMDIR) anpassen, da diese den PORTDIR
Wechsel nicht beachten.
Vorkompilierte Pakete
Auch wenn Portage vorkompilierte Binärpakete nicht per default nutzt gibt es
eine hervorragende Unterstützung für diese. Wenn Sie Portage anweisen
Binärpakete zu erstellen werden diese in /usr/portage/packages
abgelegt. Dieser Ort wird durch die PKGDIR Variable definiert.
Quellcode
Quellcode von Anwendungen wird in /usr/portage/distfiles abgelegt.
Dieser Ort wird durch die DISTDIR Variable festgeelgt.
Portage-Datenbank
Portage speichert den Stand Ihres Systems (welche Pakete installiert sind,
welche Dateien zu welchem Paket gehören, ...) in /var/db/pkg.
Editieren Sie diese Dateien nicht per Hand! Es könnte Portages Wissen
über Ihr System verwüsten.
Portage-Cache
Der Portage-Cache (mit Modifikationszeitpunkt, virtuals, Informationen zum
Abhängigkeitsbaum, ...) wird in /var/cache/edb gespeichert.
Dieser Ort ist wirklich ein Cache: Sie können ihn ausleeren, wenn keine
Portage-basierenden Anwendungen momentan laufen.
1.c. Software übersetzen
Temporäre Portage-Dateien
Portage lagert seine temporären Dateien in /var/tmp. Dies wird
durch die PORTAGE_TMPDIR Variable deklariert.
Wenn Sie die Variable PORTAGE_TMPDIR ändern, möchten Sie vermutlich auch die
folgenden Variablen ändern, da diese die Änderung an der PORTAGE_TMPDIR
Variable nicht übernehmen: BUILD_PREFIX.
Build-Verzeichnis
Portage erstellt spezifische Build-Verzeichnisse für jedes Paket, das
installiert wird, in /var/tmp/portage. Dieser Ort wird durch die
Variable BUILD_PREFIX definiert.
Live-Dateisystem Ort
Standardmäßig installiert Portage alle Dateien in das aktuelle Dateisystem
(/), Sie können dies jedoch durch setzen der
ROOT-Umgebungsvariable ändern. Dies ist nützlich, wenn Sie neue Build-Images
erstellen wollen.
1.d. Protokollierungsfunktionen
Protokollierung von Ebuilds
Portage kann für jedes Ebuild ein Protokolldatei anlegen, falls die Variable auf
ein PORT_LOGDIR-Verzeichnis zeigt, in dem der Benutzer portage Schreibrechte
hat. Standardmäßig ist diese Variable nicht gesetzt. Wenn Sie PORT_LOGDIR nicht
setzen, werden Sie keine Erstellungsprotokolle mit dem aktuellen Protokollsystem
erhalten, jedoch könnten Sie einige Nachrichten des neuen elog erhalten.
Wenn Sie PORT_LOGDIR gesetzt haben und elog verwernden, werden Sie
Erstellungsprotokolle und jegliche Protokolle, die von elog gespeichert werden
(wie folgt erklärt), erhalten
Portage bietet eine fein abgestimmte Kontrolle über die Protokollierung durch
die Verwendung von elog:
-
PORTAGE_ELOG_CLASSES: Hier legen Sie fest welche Art von Nachrichten
protokolliert werden sollen. Sie können jegliche, durch Leerzeichen
getrennte, Kombination von info, warn, error,
log und qa verwenden.
-
info: Protokolliert "einfo" Meldungen, die von einem Ebuild
ausgegeben werden.
-
warn: Protokolliert "ewarn" Meldungen, die von einem Ebuild
ausgegeben werden.
-
error: Protokolliert "eerror" Meldungen, die von einem Ebuild
ausgegeben werden.
-
log: Protokolliert die "elog" Meldungen, welche sich in einigen
Ebuilds finden.
-
qa: Protokolliert "QA Notice" Meldungen, die von einem Ebuild
ausgegeben werden.
-
PORTAGE_ELOG_SYSTEM: Dies wählt das/die Modul(e) um die Protokollmeldungen
zu bearbeiten. Wenn es leer bleibt wird Protokollierung deaktiviert. Sie
können jegliche, durch Leerzeichen getrennte, Kombination von save,
custom, syslog, mail, save_summary und
mail_summary verwenden. Sie müssen wenigstens ein Modul auswählen um
elog zu verwenden.
-
save: Dies speichert ein Protokoll pro Paket in
$PORT_LOGDIR/elog, oder /var/log/portage/elog,
wenn $PORT_LOGDIR nicht gesetzt ist.
-
custom: Übergibt alle Nachrichten an einen, vom Benutzer in
$PORTAGE_ELOG_COMMAND spezifizierten, Befehl. Dies wird später
erläutert.
-
syslog: Sendet alle Nachrichten an den installierten
System-Protokollierer.
-
mail: Übergibt alle Nachrichten an einen, vom Benutzer in
$PORTAGE_ELOG_MAILURI spezifizierten, Mailserver. Dies wird später
erläutert. Die Mail-Funktionen von elog benötigen
>=portage-2.1.1.
-
save_summary: Ähnlich wie save, aber es vereint alle
Nachrichten in $PORT_LOGDIR/elog/summary.log oder
/var/log/portage/elog/summary.log, wenn $PORT_LOGDIR nicht
gesetzt ist.
-
mail_summary: Ähnlich wie mail, sendet aber alle
Nachrichten in einer einzigen Mail wenn emerge beendet.
-
PORTAGE_ELOG_COMMAND: Dies wird nur verwendet, wenn das Modul custom
aktiviert ist. Hier geben Sie einen bestimmten Befehl an, der die
Protokollmeldungen bearbeitet. Beachten Sie, dass Sie von zwei Variablen
Gebrauch machen können: ${PACKAGE} ist der Paketname und die Version,
während ${LOGFILE} der absolute Pfad zur Protokolldatei ist. Hier ist
eine mögliche Anwendung:
-
PORTAGE_ELOG_COMMAND="/pfad/zum/protokollierer -p '\${PACKAGE}' -f '\${LOGFILE}'"
-
PORTAGE_ELOG_MAILURI: Dies enthält Einstellungen für das Modul mail,
wie zum Beispiel Addresse, Benutzer, Passwort, Mailserver und Portnummer.
Die Standardeinstellung ist "root@localhost localhost".
-
Hier ist ein Beispiel für einen SMTP-Server, der eine Authentifizierung
basierend auf Benutzername und Passwort an einem bestimmten Port benötigt
(der Standardport ist 25):
-
PORTAGE_ELOG_MAILURI="benutzer@eine.domain
benutzername:passwort@smtp.eine.domain:995"
-
PORTAGE_ELOG_MAILFROM: Erlaubt es Ihnen die "Von" Adresse der Protokollmails
zu setzen. Der Standard ist Portage, wenn nicht gesetzt.
-
PORTAGE_ELOG_MAILSUBJECT: Erlaubt es Ihnen eine Betreffzeile für die
Protokollmails zu setzen. Beachten Sie, dass Sie zwei Variablen verwenden
können: ${PACKAGE} wird den Namen des Pakets und die Version anzeigen,
während ${HOST} der Fully Qualified Domain-Name des Hosts ist, auf dem
Portage ausgeführt wird.
-
Hier ist eine mögliche Anwendung:
-
PORTAGE_ELOG_MAILSUBJECT="Paket \${PACKAGE} wurde auf \${HOST} mit
mit emerge installiert und produzierte einige Meldungen
Wichtig:
Wenn Sie enotice mit Portage-2.0.* verwendet haben, müssen Sie enotice
komplett entfernen, da es nicht mit elog kompatibel ist.
|
2. Konfiguration durch Variablen
2.a. Konfiguration von Portage
Wie bereits erwähnt können Sie Portage durch zahlreiche Variablen, die Sie in
/etc/make.conf definieren, an Ihre persönlichen Bedürfnisse
anpassen. Lesen Sie als weitere und vollständige Referenz die
make.conf Manpage:
Befehlsauflistung 1.1: Lesen der make.conf Manpage |
$ man make.conf
|
2.b. Build-spezifische Optionen
Configure und Compiler Optionen
Wenn Portage Anwendungen übersetzt wendet es die folgenden Variablen auf den
Compiler, bzw. das Configure-Skript an:
-
CFLAGS & CXXFLAGS definieren die gewünschten Flags für C and C++
Kompilierung.
-
CHOST definiert die Build Host Information für das Configure-Skript der
Anwendung
-
MAKEOPTS wird an das make Kommando weitergegeben und ist für
gewöhnlich gesetzt, um die Menge der Parallelität während der Kompilierung
zu bestimmen. Weitere Informationen zu Optionen von make finden Sie in der
make Manpage.
Die USE Variable wird ebenfalls während der Configure- und Kompilierungsschritte
benutzt, diese Variable wurde jedoch schon ausführlich in vorgehenden Kapitel
behandelt.
Merge Optionen
Wenn Portage eine neuere Version einer bestimmten Anwendung installiert hat,
wird es die nicht mehr benötigten Dateien der alten Version von Ihrem System
entfernen. Portage gibt dem Benutzer eine 5 Sekunden lange Pause, bevor das
Deinstallieren der alten Version begonnen wird. Diese 5 Sekunden sind in der
CLEAN_DELAY Variable definiert.
Sie können emerge sagen, dass es bestimmte Optionen, jedes Mal wenn es
ausgeführt wird, verwenden soll, indem Sie EMERGE_DEFAULT_OPTS setzen. Einige
nützliche wären --ask, --verbose, --tree, usw.
2.c. Schutz von Konfigurationsdateien
Abgesicherte Pfade
Portage überschreibt Dateien einer alten Version bei der Installation einer
neuen Version, sofern diese sich nicht in einem geschützten Verzeichnis
befinden. Diese geschützten Verzeichnisse sind durch die CONFIG_PROTECT Variable
definiert und sind im Normalfall Verzeichnisse, die Konfigurationsdateien
enthalten. Es können getrennt durch ein Leerzeichen beliebig viele Pfade
angegeben werden.
Eine Datei, die in ein solches geschütztes Verzeichnis geschrieben werden soll,
wird umbenannt und der Anwender darüber informiert, dass eine neue Version einer
(wahrscheinlich) Konfigurationsdatei vorliegt.
Die aktuellen CONFIG_PROTECT Einstellungen können Sie sich mittels emerge
--info anzeigen lassen:
Befehlsauflistung 3.1: Anzeigen der CONFIG_PROTECT Einstellungen |
$ emerge --info | grep 'CONFIG_PROTECT='
|
Weitere Informationen über den Schutz von Konfigurationsdateien sind im
Abschnitt CONFIGURATION FILES der man Seite von emerge verfügbar:
Befehlsauflistung 3.2: Weitere Informationen über den Schutz von Konfigurationsdateien |
$ man emerge
|
Verzeichnisse ausschließen
Um den Schutz von einzelnen Unterverzeichnissen aufzuheben können Sie die
CONFIG_PROTECT_MASK Variable nutzen.
2.d. Download Optionen
Server Auswahl
Wenn angeforderte Informationen oder Daten auf Ihrem System nicht verfügbar sind
versucht Portage diese aus dem Internet zu beziehen. Die Server für die
verschiedenen Informationen und Daten werden durch die folgenden Variablen
deklariert:
-
GENTOO_MIRRORS definiert eine Liste von Servern die Quellcode (Distfiles)
enthalten
-
PORTAGE_BINHOST definiert einen bestimmten Server der vorkompilierte Pakete
für Ihr System bereit hält
Eine dritte Konfiguration beinhaltet den Rsync Server, den Sie zum aktualisieren
Ihres Portage Tree nutzen möchten:
-
SYNC definiert einen bestimmten Server von dem Sie den Portage Tree beziehen
wollen
Die GENTOO_MIRRORS und SYNC Variablen können automatisch durch die
mirrorselect Anwendung gesetzt werden. Dazu müssen Sie zunächst
mirrorselect installieren. Für weitere Informationen schauen Sie in die
Hilfe von mirrorselect:
Befehlsauflistung 4.1: Weitere Informationen über mirrorselect |
# mirrorselect --help
|
Wenn Ihre Umgebung vorschreibt einen Proxy-Server zu nutzen können Sie die
http_proxy, ftp_proxy und RSYNC_PROXY Variablen nutzen um einen Proxy-Server zu
deklarieren.
Download Kommandos
Wenn Portage Quellcode beziehen muss wird standardmäßig wget benutzt.
Sie können dies durch die FETCHCOMMAND Variable anpassen.
Portage kann halbfertige Downloads fortsetzen. Es benutzt standardmäßig
wget, Sie können dies durch die RESUMECOMMAND Variable anpassen.
Stellen Sie sicher, dass Ihre FETCHCOMMAND und RESUMECOMMAND Variablen den
Quellcode im richtigen Verzeichnis ablegen. Innerhalb der Variablen sollten Sie
\${URI} und \${DISTDIR} benutzen, um die Quellcode URI und das Distfiles
Verzeichnis anzugeben.
Sie können weiterhin mit FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP,
RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP und so weiter protokollspezifische Handler
erstellen.
Rsync-Einstellungen
Sie können den von Portage ausgeführten Rsync-Befehl zur Aktualisierung des
Portage-Tree nicht ändern. Sie können jedoch einige Variablen, die in Verbindung
zu diesem Rsync-Vorgang stehen, anpassen:
-
PORTAGE_RSYNC_OPTS setzt zahlreiche Standardvariablen, jede durch
Leerzeichen getrennt, die während des Sync-Vorgangs verwendet werden. Diese
sollten nicht geändert werden, wenn Sie nicht exakt wissen, was Sie
tun. Beachten Sie bitte, dass bestimmte Optionen, die absolut zwingend
benötigt werden, immer verwendet werden, auch wenn PORTAGE_RSYNC_OPTS leer
ist.
-
PORTAGE_RSYNC_EXTRA_OPTS kann verwendet werden um zusätzliche Optionen für
den Sync-Vorgang zu setzen. Alle Optionen sollten durch ein Leerzeichen
getrennt sein.
-
--timeout=<zahl>: Dies definiert die Anzahl von Sekunden, welche
die Verbindung idle sein kann, bevor rsync für die Verbindung einen
Zeitüberlauf feststellt. Diese Variable hat den Standardwert 180.
Modembenutzer und Personen mit langsamen Rechnern werden jedoch unter
Umständen den Wert auf 300 oder höher setzen wollen.
-
--exclude-from=/etc/portage/rsync_excludes: Dies verweist auf eine Datei
mit Liste von Paketen und/oder Kategorien, die rsync während des
Aktualisierungsvorgangs ignorieren soll. In diesem Fall verweist es auf
/etc/portage/rsync_excludes. Bitte lesen Einen Teil des Portage-Tree verwenden
für die Syntax in dieser Datei.
- --quiet: Reduziert die Ausgabe für den Bildschirm
- --verbose: Gibt eine komplette Dateiliste aus
- --progress: Gibt einen Fortschrittsbalken für jede Datei aus
-
PORTAGE_RSYNC_RETRIES definiert wie oft rsync versuchen soll mit einem
Mirror zu verbinden, auf den in der SYNC-Variable verwiesen wird, bevor es
aufgibt. Diese Variable hat den Standardwert 3.
Für weitere Informationen über diese und andere Optionen, lesen Sie bitte man
rsync.
2.e. Gentoo Konfiguration
Zweigauswahl
Sie können den standardmäßigen Zweig mit der ACCEPT_KEYWORDS Variable
auswählen. Per default wird der stabile Zeig Ihrer Architektur genutzt. Weitere
Informationen zu Software Zweigen innerhalb von Gentoo entnehmen Sie dem
nächsten Kapitel.
Portage Features
Sie können zahlreiche Portage Optionen durch die FEATURES Variable aktivieren.
Die Portage Optionen wurden in vorhergehenden Kapiteln behandelt, wie z.B. in
Portage Features.
2.f. Portage Verhalten
Ressourcenmanagement
Mit der PORTAGE_NICENESS Variable können Sie den Nice Wert anpassen, mit dem
Portage ausgeführt wird. Der Wert der PORTAGE_NICENESS Variable wird zum
aktuellen Nice Wert hinzugefügt.
Für weitere Informationen über Nice Werte schauen Sie in die nice Manpage:
Befehlsauflistung 6.1: Weitere Informationen über nice |
$ man nice
|
Ausgabeverhalten
Mit der NOCOLOR Variable können Sie die Ausgabe von farbigen Meldungen durch
Portage deaktivieren. Der Standardwert ist false.
3. Mischen von Softwarezweigen
3.a. Einen Zweig benutzen
Der stabile Zweig
Die ACCEPT_KEYWORDS Variable definiert welchen Softwarezweig Sie auf Ihrem
System benutzen wollen. Standardmäßig wird der stabile Zweig, also zum Beispiel
x86, benutzt.
Wir empfehlen Ihnen nur den stabilen Zweig zu benutzen. Wenn jedoch Stabilität
für Sie nicht sonderlich wichtig ist und Sie Gentoo mit dem Einbringen von
Fehlermeldungen in http://bugs.gentoo.org Gentoo unterstützen
möchten, lesen Sie weiter.
Der Test Zweig
Wenn Sie mehr aktuelle Software benutzen möchten macht es Sinn, über die Nutzung
des Test Zweiges nachzudenken. Um diesen Testzweig zu nutzen fügen Sie ein ~
vor Ihrer Architektur ein.
Der Testzweig beinhaltet genau das was der Name verspricht - Tests.
Wenn ein Paket sich in Test befindet, dann bedeutet es dass die Entwickler der
Meinung sind, dass es funktionsfähig ist aber noch nicht ausgiebig getestet
worden ist. Es könnte sehr gut sein, dass Sie die erste Person wären, welche
einen Bug in einem bestimmten Paket entdeckt. In diesem Fall könnten Sie
einen Bugreport erstellen und die
Entwickler so davon in Kenntnis setzen.
Wappnen Sie sich aber dafür, dass Probleme mit der Stabilität auftreten, die
Handhabung von Paketen nicht perfekt funktioniert (wie z.B. falsche/fehlende
Abhängigkeiten) oder Pakete kaputt sind. Wenn Sie nicht wissen, wie Gentoo
funktioniert und wie man solche Probleme löst, empfehlen wir Ihnen, dass Sie
beim stabilen und getesteten Zweig bleiben.
Um zum Beispiel den Testzweig der x86 Architektur zu nutzen editieren Sie
/etc/make.conf wie folgt:
Befehlsauflistung 1.1: Setzen der ACCEPT_KEYWORDS Variable |
ACCEPT_KEYWORDS="~x86"
|
Wenn Sie nun Ihr System aktualisieren wollen werden Sie feststellen, dass
viele Pakete aktualisiert werden. Bedenken Sie jedoch: Wenn Sie einmal
in den Testzweig gewechselt sind, gibt es für gewöhnlich keinen einfachen Weg
zurück zum stabilen, offiziellen Zweig (außer mit Backups, natürlich).
3.b. Den stabilen mit dem Testzweig vermischen
Der package.keywords Punkt
Sie können Portage anweisen, bei bestimmten Paketen den Testzweig zu benutzen,
für den Rest des Systems jedoch den stabilen Zweig. Um dies zu erreichen fügen
Sie die Paketkategorie und den Paketnamen in
/etc/portage/package.keywords ein. Sie können auch ein Verzeichnis
(mit demselben Namen) erstellen und das Paket in Dateien innerhalb dieses
Verzeichnisses auflisten. Um zum Beispiel für gnumeric den Testzweig zu
benutzen:
Befehlsauflistung 2.1: /etc/portage/package.keywords Konfiguration für gnumeric, vollständige Zeile |
app-office/gnumeric ~x86
|
Testen von bestimmten Versionen
Wenn Sie eine bestimmte Version aus dem Testzweig nutzen wollen, aber nicht
generell die Version aus dem Testzweig installieren möchten, können Sie dies
ebenfalls am package.keywords Punkt angeben. In diesem Fall
müssen Sie den = Operator nutzen. Sie können dank der
<=, <, > or >= Operatoren auch eine Reihe von Versionen eines
Pakets freischalten.
In jedem Fall: Wenn Sie Versionsinformationen hinzufügen müssen Sie
einen Operator angeben. Wenn Sie keine Versionsinformationen hinzufügen können
Sie keinen Operator nutzen.
Im folgenden Beispiel geben wir gnumeric-1.2.13 frei:
Befehlsauflistung 2.2: Nutzen einer speziellen gnumeric Version |
=app-office/gnumeric-1.2.13 ~x86
|
3.c. Nutzung maskierter Pakete
Der package.unmask Punkt
Die Gentoo Entwickler unterstüzten die Verwendung dieses Punktes nicht.
Bitte gehen Sie mit entsprechender Vorsicht vor, wenn Sie diese verwenden.
Anfragen zu Support welche in Verbindung mit package.unmask und/oder
package.mask stehen werden nicht beantwortet. Sie sind gewarnt worden.
Wenn ein Paket von Gentoo Entwicklern maskiert wird und Sie dennoch (Sie werden
sicherlich einen guten Grund haben) dieses Paket nutzen möchten (trotz der
Gründe, die in package.mask (standardmäßig in
/usr/portage/profiles) genannt sind), fügen Sie die exakt
gleiche Zeile in der /etc/portage/package.unmask Datei (oder in
einer Datei in dem Verzeichnis, wenn es ein Verzeichnis ist) ein.
Wenn zum Beispiel =net-mail/hotwayd-0.8 maskiert ist, können Sie es durch
ein Hinzufügen der exakt gleichen Zeile zum package.unmask Punkt
demaskieren:
Befehlsauflistung 3.1: /etc/portage/package.unmask |
=net-mail/hotwayd-0.8
|
Der package.mask Punkt
Wenn Sie nicht wollen, dass Portage bestimmt Pakete oder bestimmt Versionen von
Paketen installiert, bzw. grundsätzlich installieren kann, können Sie dieses
Paket (oder die Version) durch das Hinzufügen einer entsprechenden Zeile zum
/etc/portage/package.mask Punkt (entweder in der Datei oder in
einer Datei in dem Verzeichnis) maskieren.
Wenn Sie zum Beispiel nicht wollen, dass Portage neuere Kernelquellen als
gentoo-sources-2.6.8.1 installiert, fügen Sie die folgende Zeile zum
package.mask Punkt hinzu:
Befehlsauflistung 3.2: /etc/portage/package.mask Beispiel |
>sys-kernel/gentoo-sources-2.6.8.1
|
4. Zusätzliche Portage Tools
4.a. dispatch-conf
Das Programm dispatch-conf hilft Ihnen bei der Einbindung der
._cfg0000_<name> Dateien. Diese
._cfg0000_<name> Dateien werden von Portage angelegt, wenn
eine Datei die innerhalb einem durch die CONFIG_PROTECT Variable abgedecktem
Pfad überschrieben werden soll.
Mit dispatch-conf können Sie Aktualisierungen an Ihren
Konfigurationsdateien einbringen und alle Änderungen nachvollziehen.
dispatch-conf legt alle Änderungen zwischen Konfigurationsdateien als
Patches oder in einem RCS Revisionssystem ab. Das bedeutet, dass wenn Sie einen
Fehler begehen bei der Aktualisierung einer Konfigurationsdatei Sie zu jedem
Zeitpunkt zur vorherigen Version Ihrer Konfigurationsdatei zurückkehren können.
Wenn Sie dispatch-conf verwenden können Sie Konfigurationsdateien so
belassen wie sie sind, die neue Konfigurationsdatei verwenden, die aktuelle
bearbeiten, oder die Änderungen interaktiv einpflegen. dispatch-conf hat
zudem noch einige weitere hilfreiche Funktionen:
-
Automatisches mergen von Konfigurationsaktualisierungen, wenn Änderungen nur
in kommentierten Bereichen stattgefunden haben
-
Automatisches mergen von Konfigurationsdateien, wenn die Änderungen nur in
der Menge von Leerzeichen bestehen
Editieren Sie zuerst /etc/dispatch-conf.conf und erstellen Sie das
Verzeichnis, welches in der Variable archive-dir genannt wird.
Befehlsauflistung 1.1: dispatch-conf ausführen |
# dispatch-conf
|
Wenn Sie dispatch-conf ausführen werden Sie durch jede veränderte
Konfigurationsdatei, eine nach der anderen, geführt. Drücken Sie u zur
Aktualisierung (ersetzen) der aktuellen Konfigurationsdatei durch die neuere und
um mit der nächsten Datei fortzufahren. Drücken Sie z um die neue
Konfigurationsdatei zu löschen und um mit der nächsten Datei fortzufahren. Wenn
alle Konfigurationsdateien abgearbeitet wurden wird dispatch-conf
beendet. Sie können es auch jeder Zeit durch drücken von q beenden.
Ziehen Sie für weitere Informationen die Manpage von dispatch-conf zu
Rate. Diese zeigt Ihnen wie man interaktiv aktuelle und neue
Konfigurationsdateien einpflegt, neue Konfigurationsdateien editiert, die
Unterschiede zwischen Dateien betrachtet, und mehr.
Befehlsauflistung 1.2: Lesen der dispatch-conf Manpage |
$ man dispatch-conf
|
4.b. etc-update
Sie können auch etc-update benuzten um Konfigurationsdateien
zusammenzuführen. Es ist nicht so einfach zu benuzten wie dispatch-conf,
noch hat es alle seine Funktionen, bietet aber ein interaktiven Modus für die
Zusammenführung und kann außerdem triviale Änderungen automatisch einbinden.
Jedoch, anders als bei dispatch-conf, wird etc-update alte
Versionen Ihrer Konfigurationsdateien nicht erhalten. Sowie sie eine
Datei aktualisieren ist die alte Version für immer verloren! Sein Sie also
vorsichtig, die Benutzung von etc-update ist erheblich unsicherer
als die Verwendung von dispatch-conf.
Befehlsauflistung 2.1: etc-update ausführen |
# etc-update
|
Nach dem Mischen der einfachen Änderungen wird Ihnen eine Liste mit allen
geschützten Dateien, die auf eine Aktualisierung warten, angezeigt. Zum Schluss
wird Ihnen eine Liste mit den möglichen Optionen angezeigt:
Befehlsauflistung 2.2: etc-update Optionen |
Please select a file to edit by entering the corresponding number.
(-1 to exit) (-3 to auto merge all remaining files)
(-5 to auto-merge AND not use 'mv -i'):
|
Wenn Sie -1 eingeben wird etc-update beendet und es werden keine
weiteren Änderungen durchgeführt. Wenn Sie -3 oder -5 eingeben
werden alle gelisteten Konfigurationsdateien mit den neuen Versionen
überschrieben. Es ist daher sehr wichtig, dass Sie zunächst alle
Konfigurationsdateien auswählen, die nicht automatisch aktualisiert werden
sollen. Dies geschieht durch das Eingeben der Zahl links neben der
Konfigurationsdatei.
Als Beispiel wählen wir /etc/pear.conf aus:
Befehlsauflistung 2.3: Aktualisieren einer spezifischen Konfigurationsdatei |
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
|
Sie sehen nun die Änderungen zwischen diesen beiden Dateien. Wenn Sie glauben,
dass die aktualisierte Datei ohne Probleme benutzt werden kann, so geben Sie
1 ein. Wenn Sie glauben, dass eine Aktualisierung der
Konfigurationsdatei nicht notwendig ist geben Sie 2 ein. Wenn Sie die
Konfigurationsdatei interaktiv aktualisieren wollen geben sie 3 ein.
Es gibt keine Grund das interaktive mergen (Zusammenführen) hier näher
auszuführen. Um eine gewisse Vollständigkeit zu gewährleisten listen wir hier
alle möglichen Kommandos, die während des mergen der beiden
Konfigurationsdateien benutzt werden können. Ihnen werden zwei Zeilen (eine
originale, eine vorgeschlagene neue) angezeigt sowie ein Prompt an welchem Sie
eines der folgenden Kommandos eingeben können:
Befehlsauflistung 2.4: Verfügbare Kommandos bei interaktivem mergen |
ed: Edit then use both versions, each decorated with a header.
eb: Edit then use both versions.
el: Edit then use the left version.
er: Edit then use the right version.
e: Edit a new version.
l: Use the left version.
r: Use the right version.
s: Silently include common lines.
v: Verbosely include common lines.
q: Quit.
|
Wenn Sie das Aktualisieren der wichtigen Konfigurationsdateien abgeschlossen
haben können Sie nun die restlichen Dateien automatisch überschreiben.
etc-update wird beendet, wenn es keine aktualisierbaren
Konfigurationsdateien mehr findet.
4.c. quickpkg
Mit quickpkg können Sie Archive von bereits installierten Paketen
erstellen. Diese Archive können genauso wie vorkompilierte Pakete (GRP)
verwender werden. Die Nutzung von quickpkg ist recht simpel: Fügen Sie
einfach den Namen des Pakets an das Kommando an:
Um beispielsweise Archive für curl, arts und procps zu
erstellen:
Befehlsauflistung 3.1: quickpkg Nutzung |
# quickpkg curl arts procps
|
Die vorkompilierten Pakete werden in $PKGDIR/All (standardmäßig
/usr/portage/packages/All) abgelegt. Symbolische Links zu diesen
Paketen werden in $PKGDIR/<category> angelegt.
5. Abweichen vom Offiziellen Tree
5.a. Nur einen Teil des Portage Tree nutzen
Pakete/Kategorien ausschließen
Sie können eine Auswahl von Kategorien/Paketen aktualisieren und andere
Kategorien/Pakete ignorieren. Wir erreichen dies durch das Ausschließen von
bestimmten Kategorien/Paketen während des emerge --sync Vorgangs mittels
rysnc.
Sie müssen den Namen der Datei, welche die Ausschlussmuster enthält, in der
--exclude-from Variable in Ihrer /etc/make.conf
spezifizieren.
Befehlsauflistung 1.1: Spezifizieren der Exclude-Datei in /etc/make.conf |
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
|
Befehlsauflistung 1.2: Ausschluss aller Spiele in /etc/portage/rsync_excludes |
games-*/*
|
Beachten Sie, dass dies zu Abhängigkeitsproblemen führen kann, wenn ein
gewünschtes Paket von einem neuen, aber ausgeschlossenem Paket abhängt.
5.b. Inoffizielle Ebuilds hinzufügen
Definieren eines Portage Overlay Verzeichnis
Sie können Portage mitteilen, auch nicht offizielle Ebuilds zu nutzen, welche
nicht durch den Portage Tree verfügbar sind. Erstellen Sie ein neues Verzeichnis
(zum Beispiel /usr/local/portage), in welchem Sie Ebuilds von
anderen Anbietern ablegen können. Benutzen Sie die gleich Struktur wie im
offiziellen Portage Tree!
Definieren Sie nun die PORTDIR_OVERLAY Variable in /etc/make.conf
und lassen Sie sie auf das zuvor definierte Verzeichnis zeigen. Wenn Sie nun
Portage benutzen wird es diese Ebuilds mit einbeziehen und diese beim nächsten
emerge --sync nicht löschen/überschreiben.
Mit mehreren Overlays arbeiten
Für die Poweruser, welche mit verschiedenen Overlays entwickeln, Pakete testen
bevor sie in den Portage-Baum übernommen werden oder einfach inoffizielle
Ebuilds von unterschiedlichen Quellen verwenden wollen, bietet das
app-portage/gentoolkit-dev Paket Ihnen gensync. Es ist ein Tool,
dass Ihnen hilft die Overlay-Repositories aktuell zu halten.
Mit gensync können Sie alle Ihre Repositories auf einmal aktualisieren
oder nur einige wenige auswählen. Jedes Repository sollte eine
.syncsource Datei im /etc/gensync/
Konfigurationsverzeichnis haben, welche den Ort, Namen, ID usw. des
Repositories enthält.
Nehmen wir an, dass Sie zwei zusätzliche Repositories genannt java (für
die Java Ebuilds, die momentan in Arbeit sind) und entapps (für die
Anwendungen, die firmenintern für Ihren Betrieb entwickelt werden) haben.
Diese Repositories können mit folgendem Befehl aktualisiert werden:
Befehlsauflistung 2.1: gensync verwenden um mehrere Repositories zu aktualisieren |
# gensync java entapps
|
5.c. Software ohne Portage installieren
Nutzung von Portage mit selbst installierter Software
In einigen Fällen wollen Sie die Konfiguration, Installation und Betreuung von
Software selbst vornehmen, ohne das Portage unterstützend eingreift; auch wenn
Portage die in Frage kommenden Pakete ebenfalls installieren könnte. Bekannte
Gründe können Kernelquellen oder Nvidia Treiber sein. Sie können Portage so
konfigurieren, dass es weiß, dass bestimmte Pakete manuell auf Ihrem System
installiert sind. Dieser Schritt wird als Injecting bezeichnet und wird
durch die Datei /etc/portage/profile/package.provided durchgeführt.
Portage wird die dort aufgelisteten Pakete nicht installieren.
Wenn Sie zum Beispiel Portage informieren wollen, dass Sie
gentoo-sources-2.6.11.6 manuell installiert haben, fügen Sie die
folgende Zeile in /etc/portage/profile/package.provided hinzu:
Befehlsauflistung 3.1: Beispiel für package.provided |
sys-kernel/gentoo-sources-2.6.11.6
|
D. Gentoo Netzwerk Konfiguration
1. Zu Beginn
1.a. Einführung
Notiz:
Diese Anleitung geht davon aus, das Sie ihren Kernel richtig konfiguriert
haben, die Module für ihre Hardware eingebunden haben und Ihnen die Namen
der Schnittstellen bekannt sind. Des Weiteren nehmen wir an, das sie die
Schnittstelle eth0 konfigurieren, es könnte gleichwohl aber auch
eth1, wlan0 etc. sein.
|
Notiz:
Es wird vorausgesetzt, dass sie baselayout-1.11.11 oder neuer einsetzen.
|
Um mit der Konfiguration Ihrer Netzwerkkarte zu beginnen, müssen Sie Gentoos
RC-System über diese informieren. Das machen Sie, indem Sie einen symbolischen
Link von net.lo zu net.eth0 in
/etc/init.d erstellen.
Befehlsauflistung 1.1: Einen symlink von net.eth0 zu net.lo einrichten |
# cd /etc/init.d
# ln -s net.lo net.eth0
|
Das RC-System von Gentoo kennt nun die Schnittstelle. Es muss aber auch wissen,
wie die neue Schnittstelle konfiguriert werden soll. Alle Netzwerkschnittstellen
werden in /etc/conf.d/net konfiguriert. Es folgt eine
Beispielkonfiguration für DHCP und statische Adressen.
Befehlsauflistung 1.2: Beispiele für /etc/conf.d/net |
config_eth0=( "dhcp" )
config_eth0=( "192.168.0.7/24" )
routes_eth0=( "default via 192.168.0.1" )
config_eth0=( "192.168.0.7 netmask 255.255.255.0" )
routes_eth0=( "default via 192.168.0.1" )
|
Notiz:
Wenn Sie keine Konfiguration für ihr Interface angeben, wird DHCP benutzt.
|
Notiz:
CIDR steht für Classless InterDomain Routing. Ursprünglich wurden IPv4-Adressen
in Klassen A, B und C unterteilt. Diese frühe Einteilung wurde der großen
Popularität des Internets nicht gerecht und es bestand Gefahr, das der Vorrat an
einzigartigen Adressen ausgeschöpft würde. CIDR ist ein Adressierungsschema, das
die Zuordnung von mehreren IP-Adressen zu einer erlaubt. Eine CIDR IP-Adresse
sieht aus wie eine normale IP-Adresse, mit dem Unterschied, das sie mit einem
Schrägstrich endet gefolgt von einer Zahl, beispielsweise 192.168.0.0/16.
Weitere Informationen zu CIDR gibt es im RFC 1519.
|
Nachdem wir die Schnittstelle konfiguriert haben, können wir sie mit
untenstehenden Befehlen starten und stoppen:
Befehlsauflistung 1.3: Starten and Stoppen von Netzwerkskripten |
# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop
|
Wichtig:
Um Fehlern bei der Konfiguration des Netzwerks auf die Schliche zu kommen,
empfehlen wir, RC_VERBOSE="yes" in /etc/conf.d/rc zu
setzen. Anschließend erhalten Sie mehr Informationen bei der Ausführung der
RC-Skripte.
|
Haben Sie ihre Netzwerkschnittstelle erst einmal erfolgreich gestartet und
wieder angehalten, möchten Sie vielleicht einen automatischen Start beim Booten
von Gentoo. Das erreichen Sie durch untenstehende Kommandos. Der letzte "rc"
Befehl weist Gentoo an, all jene Skripte zu starten, die im derzeitigen
Runlevel noch nicht gestartet wurden.
Befehlsauflistung 1.4: Konfiguration der Netzwerkschnittstelle zum automatischen Start während des Bootvorgangs |
# rc-update add net.eth0 default
# rc
|
2. Fortgeschrittene Konfiguration
2.a. Erweiterte Konfiguration
Das Herz der Konfiguration der Schnittstellen ist die Variable
config_eth0. Es ist eine hochsprachliche Anweisungsliste zur
Konfiguration der Schnittstelle (in diesem Fall eth0). Die Anweisungen
in der Liste werden der Reihe nach abgearbeitet. Wenn mindestens eine Anweisung
korrekt ausgeführt wird, wird von einer erfolgreichen Konfiguration der
Schnittstelle ausgegangen.
Hier ist eine Liste der eingebauten Anweisungen.
| Anweisung |
Beschreibung |
| null |
Nichts machen |
| noop |
Wenn die Schnittstelle aktiviert ist und eine Adresse vorhanden ist,
beende die Konfiguration erfolgreich.
|
| eine IPv4 oder IPv6 Adresse |
Die angegebene Adresse zur Schnittstelle hinzufügen |
|
dhcp, adsl or apipa (oder ein spezielles Kommando
von einem externen Modul)
|
Das Modul ausführen, das das Kommando bereitstellt. Beispielsweise ruft
dhcp ein Modul auf, das DHCP bereitstellt - das kann entweder
dhcpcd, dhclient oder pump sein.
|
Schlägt eine Anweisung fehl, können sie eine andere Anweisung als
Ausweichlösung angeben. Dieses muss der Konfigurationsstruktur genau folgen.
Sie können die verschiedenen Anweisungen aneinanderhängen. Es folgen einige
Beispiele aus der Praxis.
Befehlsauflistung 1.1: Konfigurationsbeispiel |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
config_eth0=(
"noop"
"dhcp"
)
fallback_eth0=(
"null"
"apipa"
)
|
Notiz:
Wenn Sie das ifconfig Modul benutzen und mehr als eine Adresse
hinzufügen, wird für jede neue Adresse ein Alias erstellt. Mit obigem Beispiel
erhalten Sie zum Beispiel die Schnittstellen eth0, eth0:1 und
eth0:2. Sie können damit nichts weiter anfangen, da der Kernel und
andere Programme eth0:1 und eth0:2 einfach als eth0
behandeln werden.
|
Wichtig:
Die Reihenfolge in den Anweisungen der Ausweichlösung ist wichtig! Würden wir
nicht die null Option hinzufügen, würde apipa nur ausgeführt,
wenn noop fehlschlagen würde.
|
Notiz:
APIPA und DHCP werden später im Detail behandelt.
|
2.b. Netzwerk Abhängigkeiten
Initskripte in /etc/init.d können von einer speziellen
Netzwerkschnittstelle abhängen oder einfach von net. net kann in
/etc/conf.d/rc konfiguriert werden und abhängig von der
RC_NET_STRICT_CHECKING Variable verschiedene Bedeutungen haben.
| Wert |
Beschreibung |
| none |
Es wird davon ausgegangen, dass der net Dienst immer
aktiviert ist.
|
| no |
Bedeutet, dass mindestens ein net.* Dienst außer
net.lo aktiv sein muss. Das kann von Notebook Benutzern
eingesetzt werden, die eine drahtlose Verbindung sowie eine statische
besitzen und jeweils nur eine von beiden aktiv haben möchten.
|
| lo |
Besitzt die gleiche Bedeutung wie die no Option, nur zählt
net.lo ebenfalls mit. Nützlich für diejenigen, die keine
aktive Netzwerkschnittstelle beim Booten benötigen.
|
| yes |
ALLE Netzwerkschnittstellen MÜSSEN aktiv sein, damit der net
Dienst als aktiviert angesehen wird.
|
Was aber, wenn net.br0 von net.eth0 und
net.eth1 abhängt? net.eth1 könnte eine drahtlose oder
Wählverbindung sein, die vor dem Hinzufügen zur Bridge konfiguriert werden
muss. Das kann nicht in /etc/init.d/net.br0 erfolgen, da es sich
um einen symbolischen Link auf net.lo handelt.
Die Antwort darauf lautet, dass Sie eine eigene depend() Funktion in
/etc/conf.d/net hinzufügen müssen.
Befehlsauflistung 2.1: net.br0 Abhängigkeit in /etc/conf.d/net |
depend_br0() {
need net.eth0 net.eth1
}
|
Weitere Details zu Abhängigkeiten gibt es im Kapitel Schreiben von Initskripten des Gentoo
Handbuchs.
2.c. Variablennamen und ihre Werte
Variablennamen sind dynamisch. Normalerweise gehorchen sie der Struktur
variable_${interface|mac|essid|apmac}. Zum Beispiel verwaltet die
Variable dhcpcd_eth0 die Werte für dhcpcd Optionen für eth0 und
dhcpcd_essid verwaltet die Werte der dhcpcd Optionen, wann immer sich
eine Schnittstelle zur ESSID "essid" verbindet.
Nichtsdestotrotz gibt es keine harte Regel, die angibt, das Schnittstellen dem
Schema ethx folgen müssen. In der Tat besitzen viele drahtlose Schnittstellen
die Namen wlanx, rax oder auch ethx. Einige benutzerdefinierte Schnittstellen
wie Bridges können frei wählbare Namen gegeben werden, etwa foo. Um das ganze
noch etwas interessanter zu gestalten, können drahtlose Zugangspunkte Namen mit
nicht alphanumerischen Zeichen haben - das ist wichtig, da Netzwerkparameter
per ESSID eingestellt werden können.
Der Nachteil dessen ist aber, das dadurch Konflikte auftreten, denn Gentoo
benutzt bash Variablen - die dürfen allerdings nur englische alphanumerische
Zeichen enthalten. Um diese Beschränkung zu umgehen, ersetzen wir alle Zeichen,
die keine englischen alphanumerischen Zeichen sind, durch ein _ Zeichen.
Ein weiterer Nachteil der bash ist der Variableninhalt - einige Zeichen müssen
escaped (durch umgekehrten Schrägstrich geschützt) werden. Dazu setzt man ein
\ Zeichen vor das Zeichen, das escaped werden muss. Die folgende Liste
von Zeichen muss auf diese Weise escaped werden: ", ' und
\.
In diesem Beispiel benutzen wir eine drahtlose ESSID, da diese den größten
Bereich an Zeichen zulässt. Gehen wir davon aus, dass wir die ESSID
My "\ NET verwenden:
Befehlsauflistung 3.1: Beispiel für Variablennamen |
dns_domain_My____NET="My \"\\ NET"
|
3. Modulare Vernetzung
3.a. Netzwerkmodule
Wir unterstützen nun auch modulare Netzwerk-Skripte, sodass wir leicht
Unterstützung für neue Schnittstellen-Typen und Konfigurations-Module
hinzufügen können, während die Kompatibilität mit bereits vorhandenen erhalten
bleibt.
Module werden standardmäßig geladen, wenn das Paket, das sie benötigen,
installiert ist. Wenn Sie hier ein Modul angeben, dessen Paket nicht
installiert ist, erhalten Sie eine Fehler, der Ihnen mitteilt, welche Pakete
installiert werden müssen. Im besten Fall verwenden Sie nur die
Modul-Einstellungen, wenn Sie zwei oder mehr Pakete installiert haben, die den
gleichen Dienst zur Verfügung stellen, und geben so einem Paket den Vorzug.
Notiz:
Alle besprochenen Einstellungen werden in /etc/conf.d/net
gespeichert, sofern nicht anders angegeben.
|
Befehlsauflistung 1.1: Modul-Präferenz |
modules=( "iproute2" )
modules_eth0=( "pump" )
modules=( "!iwconfig" )
|
3.b. Schnittstellen-Handler
Wir liefern aktuell zwei Schnittstellen: ifconfig und iproute2.
Sie benötigen eine von diesen, um irgendeine Netzwerk-Konfiguration machen zu
können.
ifconfig ist momentan der Standard bei Gentoo und ist Bestandteil des
Systemprofils. iproute2 ist mächtiger und flexibler, aber nicht
standardmäßig enthalten.
Befehlsauflistung 2.1: Installation von iproute2 |
# emerge sys-apps/iproute2
modules=( "iproute2" )
|
Da ifonfig und iproute2 beide sehr ähnlich funktionieren,
erlauben wir eine Zusammenarbeit beider Basis-Konfigurationen. Zum Beispiel
funktionieren die folgenden beiden Code-Abschnitte unabhängig vom verwendeten
Modul.
Befehlsauflistung 2.2: Beispiele für ifconfig und iproute2 |
config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )
|
3.c. DHCP
DHCP ist eine Möglichkeit, Netzwerk-Informationen (IP-Adresse, DNS-Server,
Gateways, etc.) von einem DHCP-Server zu erhalten. Wenn es in Ihrem Netzwerk
einen DHCP-Server gibt, bedeutet dies, dass die Clients nur DHCP verwenden
müssen und der DHCP-Server für das richtige Setup sorgt. Natürlich müssen Sie
andere Dinge, wie Drahtlosnetzwerke, PPP, und so weiter, wenn nötig, selbst
konfigurieren, bevor Sie DHCP verwenden können.
DHCP kann durch dhclient, dhcpcd oder pump zur Verfügung
gestellt werden. Jedes DHCP-Modul hat seine Vor- und Nachteile - hier ein kurzer
Überblick.
| DHCP-Modul |
Paket |
Vorteile |
Nachteile |
| dhclient |
net-misc/dhcp |
Kommt von ISC, die gleichen Leute, aus deren Feder die BIND DNS-Software
stammt. In hohem Maße konfigurierbar.
|
Die Konfiguration ist allzu komplex, die Software ist ziemlich überladen,
kann keine NTP-Server über DHCP erhalten, sendet standardmäßig den Hostnamen
nicht.
|
| dhcpcd |
net-misc/dhcpcd |
Seit langem der Standard unter Gentoo, keine Abhängigkeiten zu anderen
Tools und wird aktiv von Gentoo weiterentwickelt.
|
Kann manchmal etwas langsam sein und funktioniert nicht als Daemon, wenn
das Lease unendlich ist.
|
| pump |
net-misc/pump |
Leichtgewicht, keine Abhängigkeiten von fremden Tools
|
Wird nicht mehr gepflegt, unzuverlässig, insbesondere über Modems, kann
keine NIS-Server über DHCP erhalten.
|
Wenn Sie mehr als einen DHCP-Client installiert haben, müssen Sie angeben,
welcher verwendet werden soll - anderenfalls verwenden wir, wenn verfügbar,
dhcpcd als Standard.
Verwenden Sie module_eth0="..." um dem Modul bestimmte Optionen zu
übergeben. (ändern Sie module zu dem DHCP-Modul, dass Sie verwenden -
z.B. dhcpcd_eth0).
Wir versuchen DHCP relativ unwissend zu machen - deswegen unterstützen wir die
folgenden Befehle mit Hilfe der dhcp_eth0 Variable. Der Normalfall ist,
keine davon zu setzen:
-
release - gibt die IP-Adresse für die Wiederverwendung frei
-
nodns - /etc/resolv.conf nicht überschreiben
-
nontp - /etc/ntp.conf nicht überschreiben
-
nonis - /etc/yp.conf nicht überschreiben
Befehlsauflistung 3.1: Beispiel-DHCP-Konfiguration in /etc/conf.d/net |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
Notiz:
dhcpcd und pump senden im Normalfall den aktuellen Hostnamen zum
DHCP-Server, sodass Sie ihn nicht mehr angeben müssen.
|
3.d. ADSL mit PPPoE/PPPoA
Zunächst müssen wir die ADSL-Software installieren.
Befehlsauflistung 4.1: Das ppp-Paket installieren |
# emerge net-dialup/ppp
|
Notiz:
Wenn Sie PPPoA benötigen, stellen Sie sicher, dass Sie
>=baselayout-1.12.x verwenden.
|
Zweitens, erzeugen Sie das PPP-Netzwerkskript und das Netzwerkskript für die
Ethernet-Schnittstelle, die von PPP verwendet werden soll:
Befehlsauflistung 4.2: Erzeugen des PPP Netzwerkskripts |
# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
|
Überprüfen Sie ob RC_NET_STRICT_CHECKING="yes" in /etc/conf.d/rc
gesetzt ist.
Nun müssen wir /etc/conf.d/net konfigurieren.
Befehlsauflistung 4.3: Eine grundlegende PPPoE-Konfiguration |
config_eth0=( null )
config_ppp0=( "ppp" )
link_ppp0="eth0"
plugins_ppp0=( "pppoe" )
username_ppp0='user'
password_ppp0='password'
pppd_ppp0=(
"noauth"
"defaultroute"
"usepeerdns"
"holdoff 3"
"child-timeout 60"
"lcp-echo-interval 15"
"lcp-echo-failure 3"
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
)
depend_ppp0() {
need net.eth0
}
|
Ihr Kennwort können Sie auch in /etc/ppp/pap-secrets angeben.
Befehlsauflistung 4.4: Beispiel einer /etc/ppp/pap-secrets |
"username" * "password"
|
Wenn Sie PPPoE mit einem USB-Modem verwenden werden Sie br2684ctl emergen
müssen. Bitte lesen Sie hierzu
/usr/portage/net-dialup/speedtouch-usb/files/README für weitere
Informationen zur korrekten Konfiguration.
Wichtig:
Bitte lesen Sie den Abschnitt zu ADSL und PPP in
/etc/conf.d/net.example sorgfältig durch. Dort sind viel
detailliertere Erklärungen zu allen Einstellungen enthalten, die Sie für
Ihre spezielle PPP-Einrichtung wahrscheinlich nutzen können.
|
3.e. APIPA (Automatic Private IP Addressing)
APIPA versucht, freie Adressen im Bereich 169.254.0.0-169.254.255.255 durch
Ansprechen einer zufälligen Adresse aus diesem Bereich über die Schnittstelle
mit Hilfe von arping zu finden. Wenn darauf keine Antwort erfolgt, wird diese
Adresse der Schnittstelle zugewiesen.
Das ist nur für LANs sinnvoll, in dem sich kein DHCP-Server befindet, Sie sich
nicht direkt mit dem Internet verbinden und alle anderen Computer ebenfalls
APIPA verwenden.
Für APIPA-Unterstützung muss net-misc/iputils oder
net-analyzer/arping emerged werden.
Befehlsauflistung 5.1: APIPA-Konfiguration in /etc/conf.d/net |
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
config_eth0=( "apipa" )
|
3.f. Bonding
Zum Bonding/Trunking von Links muss net-misc/ifenslave emerged werden.
Bonding wird zur Erhöhung der Netzwerk-Bandbreite verwendet. Wenn Sie zwei
Netzwerkkarten im gleichen Netzwerk verwenden, können Sie beide Karten
so verbinden, dass Ihre Anwendungen nur eine Schnittstelle sehen, aber
tatsächlich beide Karten nutzen.
Befehlsauflistung 6.1: Bonding-Konfiguration in /etc/conf.d/net |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
depend_bond0() {
need net.eth0 net.eth1 net.eth2
}
|
3.g. Bridging (802.1d-Unterstützung)
Für Bridging-Unterstützung muss net-misc/bridge-utils emerged werden.
Bridging wird verwendet, um Netzwerke zusammenzufügen. Zum Beispiel:
Sie haben einen Server, der sich über ein ADSL-Modem mit dem Internet
verbindet und eine drahtlose Netzwerkkarte, um andere Computer über das
ADSL-Modem mit dem Internet zu verbinden. Sie könnten nun mit Hilfe einer
Bridge beide Schnittstellen zusammenfügen.
Befehlsauflistung 7.1: Bridge-Konfiguration in /etc/conf.d/net |
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
bridge_br0="eth0 eth1"
config_eth0=( "null" )
config_eth1=( "null" )
config_br0=( "192.168.0.1/24" )
depend_br0() {
need net.eth0 net.eth1
}
|
Wichtig:
Um weitere Bridge-Setups zu verwenden, sollten Sie die Dokumentation zu Variablennamen lesen.
|
3.h. MAC-Adresse
Um die MAC-Adresse Ihrer Schnittstelle zu ändern, muss nichts emerged werden,
wenn Sie sys-apps/baselayout-1.11.14 oder neuer verwenden und zu einer
bestimmten MAC-Adresse wechseln möchten. Wenn Sie jedoch zu einer zufälligen
MAC-Adresse wechseln wollen oder ein Baselayout älter als die obengenannte
Version verwenden, müssen Sie net-analyzer/macchanger emergen um in der
Lage zu sein, diese Funktion zu nutzen.
Befehlsauflistung 8.1: Beispiel zum Wechseln der MAC-Adresse |
mac_eth0="00:11:22:33:44:55"
mac_eth0="random-ending"
mac_eth0="random-samekind"
mac_eth0="random-anykind"
mac_eth0="random-full"
|
3.i. Tunnelling
Es muss nichts emerged werden, da der Schnittstellen-Handler alles erledigt.
Befehlsauflistung 9.1: Tunnelling-Konfiguration in /etc/conf.d/net |
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
config_vpn0=( "192.168.0.2 peer 192.168.1.1" )
|
3.j. VLAN (802.1q-Unterstützung)
Für VLAN-Unterstützung muss net-misc/vconfig emerged werden.
Virtual LAN ist eine Gruppe von Netzwerk-Geräten, die sich verhalten, als wären
sie mit einem einzelnen Netzwerk-Segment verbunden, auch wenn dies nicht der
Fall ist. Mitglieder eines VLANs können nur Mitglieder des gleichen VLANs
sehen, auch wenn sie sich im gleichen physikalischen Netzwerk befinden.
Befehlsauflistung 10.1: VLAN-Konfiguration in /etc/conf.d/net |
vlans_eth0="1 2"
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
|
Wichtig:
Um VLAN-Setups zu verwenden, sollten Sie die Dokumentation Variablennamen lesen.
|
4. Drahtlose Netzwerkfunktionalität
4.a. Einleitung
Momentan unterstützen wir eine Wireless-Umgebung entweder durch
wireless-tools oder wpa_supplicant. Das wichtige ist daran zu
denken, dass Sie Wireless-Netzwerke global und nicht für einzelne
Schnittstellen konfigurieren.
Die beste Wahl ist wpa_supplicant, aber es unterstützt nicht alle
Treiber. Sie finden eine Liste der unterstützten Treiber auf der wpa_supplicant Seite.
Außerdem kann wpa_supplicant sich momentan nur mit SSIDs verbinden, für
die Sie es konfiguriert haben.
Fast alle Karten und Treiber werden von wireless-tools unterstützt, aber
es kann zu Access-Points die nur WPA unterstützen keine Verbindung aufbauen.
Warnung:
Der Treiber linux-wlan-ng wird zu diesem Zeitpunkt nicht von baselayout
unterstützt. Dies liegt daran, dass linux-wlan-ng eine eigene Einrichtung
und Konfiguration hat, die sich von allen anderen unterscheidet. Es gibt
Gerüchte, dass die linux-wlan-ng Entwickler ihre Umgebung zu der von
wireless-tools wechseln wollen. Wenn dies geschieht steht es Ihnen frei
linux-wlan-ng mit baselayout zu verwenden.
|
4.b. WPA Supplicant
WPA Supplicant ist
ein Paket, welches es Ihnen erlaubt sich mit einem Access-Point mit
aktiviertem WPA zu verbinden. Die Umgebung ist noch sehr wandelbar, da es sich
noch um eine Beta handelt, es funktioniert jedoch für den größten Teil
einwandfrei.
Befehlsauflistung 2.1: Installieren von wpa_supplicant |
# emerge net-wireless/wpa_supplicant
|
Wichtig:
Sie müssen CONFIG_PACKET in Ihrem Kernel aktiviert haben, damit
wpa_supplicant funktionieren kann.
|
Nun muss /etc/conf.d/net konfiguriert werden, so dass
wpa_supplicant gegenüber wireless-tools bevorzugt wird (wenn
beide installiert sind ist wireless-tools der Standard).
Befehlsauflistung 2.2: Konfiguration von /etc/conf.d/net für wpa_supplicant |
modules=( "wpa_supplicant" )
wpa_supplicant_eth0="-Dmadwifi"
|
Notiz:
Wenn Sie den host-ap Treiber verwenden, müssen Sie Ihre Karte in den Managed
Modus versetzen, bevor diese mit wpa_supplicant korrekt verwendet
werden kann. Sie können dies mit iwconfig_eth0="mode managed" in
/etc/conf.d/net erreichen.
|
Das war einfach, oder? Trotzdem müssen wir noch wpa_supplicant selbst
konfigurieren. Dies ist einen Tick schwieriger und abhängig davon wie
abgesichert die Access-Points sind, mit denen Sie sich verbinden wollen. Das
folgende Beispiel ist vereinfacht worden und stammt aus
/usr/share/doc/wpa_supplicant-<version>/wpa_supplicant.conf.gz,
welches mit wpa_supplicant ausgeliefert wird.
Befehlsauflistung 2.3: Ein /etc/wpa_supplicant/wpa_supplicant.conf Beispiel |
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
ssid="einfach"
psk="sehr geheime Passphrase"
priority=5
}
network={
ssid="zweite ssid"
scan_ssid=1
psk="sehr geheime Passphrase"
priority=2
}
network={
ssid="Beispiel"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
network={
ssid="klartext-test"
key_mgmt=NONE
}
network={
ssid="statischer-wep-test"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}
network={
ssid="statischer-wep-test2"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}
network={
ssid="test adhoc"
mode=1
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="geheime Passphrase"
}
|
4.c. Wireless-Tools
Erste Einrichtung und Managed Modus
Wireless
Tools liefert eine generische Art grundlegende Wireless-Schnittstellen zu
konfigurieren; bis zum WEP Sicherheitslevel. WEP ist zwar eine schwache
Sicherheitsmethode, aber auch die am meisten verbreitetste.
Die Konfiguration von Wireless-Tools wird von einer kleinen Anzahl von
Hauptvariablen kontrolliert. Die folgende Beispielskonfigurationsdatei sollte
allen Ihren Bedürfnissen entsprechen. Eins sollte jedoch beachtet werden:
bei keiner Konfiguration gilt die Regel "verbinde mit dem stärksten
unverschlüsselten Access-Point", wir versuchen unter allen Umständen eine
Verbindung mit irgendetwas aufzubauen.
Befehlsauflistung 3.1: Installieren von wireless-tools |
# emerge net-wireless/wireless-tools
|
Notiz:
Auch wenn Sie Ihre Wireless-Einstellungen in /etc/conf.d/wireless
speichern können, empfiehlt dieser Leitfaden dennoch dass Sie diese in
/etc/conf.d/net speichern.
|
Wichtig:
Sie werden die Dokumentation über
Variablennamen
konsultieren müssen.
|
Befehlsauflistung 3.2: Beispielseinrichtung von iwconfig in /etc/conf.d/net |
modules=( "iwconfig" )
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
preferred_aps=( "ESSID1" "ESSID2" )
|
Feinabstimmung der Auswahl von Access-Points
Sie können einige weitere Optionen hinzufügen um eine Feinabstimmung, der
Auswahl der Access-Points, zu erreichen. Normalerweise sind diese Einstellungen
nicht notwendig.
Sie können entschieden ob nur mit bevorzugten Access-Points verbunden werden
soll, oder nicht. Standardmäßig wird, wenn alles konfigurierte fehlschlug und
mit einem unverschlüsselten Access-Point verbunden werden kann, dies auch
erfolgen. Dies kann von der associate_order Variable kontrolliert
werden. Es folgt eine Tabelle mit den Werten und welche Funktion sie ausüben.
| Wert |
Beschreibung |
| any |
Standardverhalten |
| preferredonly |
Es wird nur mit sichtbaren APs in der bevorzugten Liste verbunden |
| forcepreferred |
Es wird zwinged mit APS in der bevorzugten Reihenfolge verbunden, wenn
Sie bei einem Scan nicht gefunden wurden.
|
| forcepreferredonly |
Es wird nicht nach APs gescannt, stattdessen wird versucht der
Reihenfolge nach mit jeden einzelnen eine Verbindung aufzubauen
|
| forceany |
Genau wie forcepreferred und es wird zudem mit jedem anderen
verfügbaren AP verbunden
|
Schließlich haben wir Auslese durch blacklist_aps und unique_ap.
blacklist_aps funktioniert in ähnlicher Weise wie preferred_aps.
unique_ap ist ein yes oder no Wert, der mitteilt ob eine
zweite Wireless-Schnittstelle sich mit demselben Access-Point verbinden kann
wie die erste Schnittstelle.
Befehlsauflistung 3.3: Beispiele von blacklist_aps und unique_ap |
blacklist_aps=( "ESSID3" "ESSID4" )
unique_ap="yes"
|
Ad-Hoc und Master Modi
Wenn Sie sich als einen Ad-Hoc Knoten einrichten wollen, weil die Verbinung
mit Access-Points im Managed-Modus fehlschlägt, dann können Sie folgendes tun.
Befehlsauflistung 3.4: Rückfall auf Ad-Hoc Modus |
adhoc_essid_eth0="Dieser Ad-Hoc Knoten"
|
Was ist mit der Verbindung zu Ad-Hoc Netzwerken oder das Laufen im Master-Modus
um ein Access-Point zu werden? Hier ist eine Konfiguration für genau das! Sie
müssen unter Umständen, wie oben beschrieben, WEP Schlüssel angeben.
Befehlsauflistung 3.5: Beispiels ad-hoc/master Konfiguration |
mode_eth0="ad-hoc"
essid_eth0="Dieser Ad-Hoc Knoten"
channel_eth0="9"
|
Wichtig:
Das folgende stammt wörtlich aus der BSD-Wavelan-Dokumentation, welche sich in
der NetBSD
Dokumentation findet. Es gibt 14 mögliche Kanäle. Es wurde berichtet,
dass Kanäle 1-11 legal sind in Nordamerika, Kanäle 1-13 für den größten Teil
von Europa, Kanäle 10-13 für Frankreich und nur Kanal 14 für Japan. Wenn im
Zweifel, wenden Sie sich bitte an die Dokumentation, die mit Ihrer Karte oder
Ihrem Access-Point ausgeliefert wurde. Stellen Sie sicher, dass der Kanal, den
Sie wählen auch derselbe ist, den Sie für Ihren Access-Point (oder die andere
Karte im Ad-Hoc Netzwerk) gewählt haben. Der Standard für Karten, die in den
Vereinigten Staaten und dem größten Teil von Europa verkauft werden ist 3. Der
Standard für Karten die in Frankreich verkauft werden ist 11 und der Standard
für Karten die in Japan verkauft werden ist 14.
|
Fehlerbehebung bei Wireless-Tools
Es gibt einige weitere Variablen die Sie verwenden können, die Ihnen helfen
Ihr Wireless zum Laufen zu kriegen, wegen Treiber- oder Umgebungsproblemen.
Hier ist eine Tabelle mit weiteren Dingen die Sie versuchen können:
| Variable |
Standardwert |
Beschreibung |
| iwconfig_eth0 |
|
Siehe die iwconfig man Seite für Details was iwconfig gesendet
werden soll
|
| iwpriv_eth0 |
|
Siehe die iwpriv man Seite für Details was iwpriv gesendet werden
soll
|
| sleep_scan_eth0 |
0 |
Die Anzahl der Sekunden die gewartet werden bevor ein Scan versucht wird.
Dies wird benötigt wenn der/das Treiber/Firmware mehr Zeit benötigt um
aktiv zu werden, bevor es verwendet werden kann.
|
| sleep_associate_eth0 |
5 |
Die Anzahl der Sekunden die die Schnittstelle warten soll um sich mit dem
Access-Point zu assoziieren, bevor es zum Nächsten übergeht
|
| associate_test_eth0 |
MAC |
Einige Treiber setzen die MAC Adresse assoziiert mit einer ungültigen
nicht zurück wenn sie die Verbindung verlieren oder versuchen zu
assoziieren. Einige Treiber setzen das Qualitätslevel nicht zurück wenn
sie die Verbindung verlieren oder versuchen zu assoziieren. Gültige
Einstellungen sind MAC, quality und all.
|
| scan_mode_eth0 |
|
Einige Treiber müssen im Ad-Hoc Modus scannen, also sollten Sie versuchen
hier ad-hoc zu setzen, wenn das Scannen fehlschlägt.
|
| iwpriv_scan_pre_eth0 |
|
Sendet einige iwpriv Befehle zur Schnittstelle vor dem scannen.
Siehe die iwpriv man Seite für weitere Details
|
| iwpriv_scan_post_eth0 |
|
Sendet einige iwpriv Befehle zur Schnittstelle nach dem scannen.
Siehe die iwpriv man Seite für weitere Details
|
4.d. Definieren von Netzwerkkonfigurationen nach ESSID
Manchmal kann es vorkommen, dass Sie bei ESSID1 eine statische IP
benötigen und bei der Verbindung mit ESSID2 benötigen Sie DHCP. Genauer
gesagt können die meisten der Modulvariablen per ESSID kontrolliert werden. So
funktioniert es:
Notiz:
Diese funktionieren, wenn Sie WPA Supplicant oder Wireless-Tools verwenden.
|
Wichtig:
Sie werden die Dokumentation über Variablennamen konsultieren
müssen.
|
Befehlsauflistung 4.1: Netzwerkeinstellungen nach ESSID gehen vor |
config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" )
routes_ESSID1=( "default via 192.168.0.1" )
config_ESSID2=( "dhcp" )
fallback_ESSID2=( "192.168.3.4/24" )
fallback_route_ESSID2=( "default via 192.168.3.1" )
dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="suche.diese.Domäne suche.jene.Domäne"
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )
|
5. Funktionalität hinzufügen
5.a. Erweiterung der Standardfunktionen
Vier Funktionen können definiert werden, die im Zusammenhang mit den
start/stop Funktionen aufgerufen werden. Die Funktionen werden
mit dem Namen der Schnittstelle zuerst aufgerufen, so dass eine Funktion
mehrere Adapter kontrollieren kann.
Der Rückgabewert der preup() und predown() Funktionen sollte 0
(Erfolg) sein um die erfolgreiche Konfiguration der Schnittstelle anzuzeigen.
Gibt preup() einen von Null verschiedenen Wert zurück, wird die
Konfiguration abgebrochen. Eine Dekonfiguration wird nicht durchgeführt,
falls predown() einen von Null verschiedenen Wert zurückgibt.
Die Rückgabewerte der postup() und postdown() Funktionen werden
ignoriert, da dort keine Reaktion auf Fehler vorgesehen ist.
${IFACE} wird auf die Schnittstelle gesetzt, die (de-)aktiviert werden
soll. ${IFVAR} ist ${IFACE} konvertiert zu einem Variablennamen,
den die Bash erlaubt.
Befehlsauflistung 1.1: Beispiele für pre/post up/down Funktionen |
preup() {
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
return 0
}
|
5.b. Funktionserweiterungen für die Wireless Tools
Notiz:
Funktioniert nicht mit WPA Supplicant - die ${ESSID} und
${ESSIDVAR} Variablen sind in der postup() Funktion
verfügbar.
|
Zwei Funktionen können definiert werden, die im Zusammenhang mit der associate
Funktion aufgerufen werden. Die Funktionen werden mit dem Namen der
Schnittstelle zuerst aufgerufen, so das man mit einer Funktion mehrere Adapter
kontrollieren kann.
Der Rückgabewert der preassociate() Funktion sollte 0 sein, um
anzuzeigen, dass die (De-)Konfiguration der Schnittstelle fortgesetzt werden
kann. Wenn preassociate() einen von Null verschiedenen Wert zurückgibt,
wird die Konfiguration der Schnittstelle abgebrochen.
Der Rückgabewert der postassociate() Funktion wird ignoriert, da es im
Fehlerfall nichts zu tun gibt.
${ESSID} wird auf die exakte ESSID des Zugangspunktes gesetzt, zu dem
Sie sich verbinden.
${ESSIDVAR} ist ${ESSID} umgewandelt in einen Variablennamen,
den die Bash erlaubt.
Befehlsauflistung 2.1: pre/post association Funktionen |
preassociate() {
local user pass
eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"
if [[ -n ${user} && -n ${pass} ]]; then
if [[ ! -x /opt/cisco/bin/leapscript ]]; then
eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
return 1
fi
einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
ewarn "Login Failed for ${user}"
return 1
fi
fi
return 0
}
postassociate() {
return 0
}
|
Notiz:
Auf ${ESSID} und ${ESSIDVAR} kann in den predown() und
predown() Funktionen nicht zugegriffen werden.
|
6. Netzwerkmanagement
6.a. Netzwerkmanagement
Wenn Sie und Ihr Computer ständig unterwegs sind, haben sie schätzungsweise
nicht immer ein Ethernet Kabel oder einen Zugangspunkt in Reichweite. Oder aber
Sie möchten das Netzwerk automatisch konfiguriert haben, wenn ein Netzwerkkabel
eingesteckt wird bzw ein Zugangspunkt gefunden wird.
An dieser Stelle finden Sie einige Tools, die Ihnen dabei behilflich sind.
Notiz:
Diese Anleitung stellt nur ifplugd vor, es gibt jedoch Alternativen wie
netplug. netplug ist eine schlanke Alternative zu ifplugd,
ist aber abhängig davon, dass Ihre Netzwertreiber im Kernel korrekt
funktionieren, was viele Treiber jedoch nicht tun.
|
6.b. ifplugd
ifplugd ist ein
Dämon, der Schnittstellen startet oder stoppt wenn ein Netzwerkkabel einsteckt
oder abgezogen wird. Es kann außerdem die Verbindung zu drahtlosen
Zugangspunkten erkennen, wenn diese in Reichweite kommen.
Befehlsauflistung 2.1: ifplugd installieren |
# emerge sys-apps/ifplugd
|
Die Konfiguration von ifplugd is relativ simpel. Die Konfigurationsdatei ist
/etc/conf.d/net. Führen Sie man ifplugd aus, für Details zu
den verfügbaren Variablen. Sehen Sie sich auch
/etc/conf.d/net.example für weitere Beispiele an.
Befehlsauflistung 2.2: Beispielhafte Konfiguration für ifplug |
ifplugd_eth0="..."
ifplugd_eth0="--api-mode=wlan"
|
Zusätzlich zur Verwaltung von verschiedenen Netzwerkverbindungen, möchten Sie
unter Umständen ein Tool hinzufügen, dass es erleichtert mit verschiedenen
DNS-Servern und Konfigurationen zu arbeiten. Dies ist sehr hilfreich, wenn Sie
Ihre IP-Adresse über DHCP erhalten. Installieren Sie einfach mit emerge
openresolv.
Befehlsauflistung 2.3: Installation von openresolv |
# emerge openresolv
|
Sehen Sie sich man resolvconf an, um mehr über seine Funktionen zu
lernen.
Die Inhalte dieses Dokuments sind unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert.
|