Handbuch:X86/Installation/Basis

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:X86/Installation/Base and the translation is 100% complete.
X86 Handbuch
Installation
Über die Installation
Auswahl des Mediums
Konfiguration des Netzwerks
Vorbereiten der Festplatte(n)
Installation des Stage Archivs
Installation des Basissystems
Konfiguration des Kernels
Konfiguration des Systems
Installation der Tools
Konfiguration des Bootloaders
Abschluss
Arbeiten mit Gentoo
Portage-Einführung
USE-Flags
Portage-Features
Initskript-System
Umgebungsvariablen
Arbeiten mit Portage
Dateien und Verzeichnisse
Variablen
Mischen von Softwarezweigen
Zusätzliche Tools
Eigener Portage-Tree
Erweiterte Portage-Features
Netzwerk-Konfiguration
Zu Beginn
Fortgeschrittene Konfiguration
Modulare Vernetzung
Drahtlose Netzwerke
Funktionalität hinzufügen
Dynamisches Management


Chrooten

DNS-Info kopieren

Eine Sache bleibt noch zu tun, bevor Sie die neue Umgebung betreten - und das ist das Kopieren der DNS-Informationen in der Datei /etc/resolv.conf. Dies ist notwendig um sicherzustellen, dass Netz-Verbindungen auch nach dem Betreten der neuen Umgebung noch funktionieren. /etc/resolv.conf enthält u.a. die IP-Adressen der Namensserver.

Zum Kopieren dieser Information ist es empfehlenswert, beim Befehl cp die Option --dereference zu verwenden. Wenn /etc/resolv.conf ein symbolischer Link ist stellt dies sicher, dass die Zieldatei anstelle des symbolischen Links selbst kopiert wird. Andernfalls würde der symbolische Link auf eine nicht existierende Datei zeigen (weil das Link-Ziel höchstwahrscheinlich in der neuen Umgebung nicht verfügbar ist).

root #cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

Notwendige Dateisysteme einhängen

In wenigen Augenblicken wird der Linux-Root (/) auf den neuen Ort geändert werden.

Die Dateisysteme, die verfügbar gemacht werden müssen, sind:

  • /proc/ ist ein ein Pseudo-Dateisystem. Es sieht aus wie normale Dateien, wird aber vom Linux-Kernel on-the-fly erzeugt
  • /sys/ ist ein Pseudo-Dateisystem, genauso wie /proc/. Einst war es dafür gedacht, /proc/ zu ersetzen. Es ist besser strukturiert als dieses.
  • /dev/ ist ein gewöhnliches Dateisystem, das alle Gerätedateien enthält. Es wird teilweise vom Linux Device Manager verwaltet (normalerweise udev).
  • /run/ ist ein temporäres Dateisystem für Dateien, die im laufenden Betrieb benötigt werden, die aber einen Reboot nicht überleben müssen. Beispiele sind PID-Dateien oder Locks.

/proc/ wird an /mnt/gentoo/proc/ eingehängt, wohingegen die anderen Dateisysteme über Bind-Mounts eingehängt werden. Letzteres bedeutet, dass beispielsweise /mnt/gentoo/sys/ in Wirklichkeit /sys/ ist (es ist lediglich ein zweiter Einstiegspunkt zum selben Dateisystem), wohingegen /mnt/gentoo/proc/ eine neue Einbindung (sozusagen eine neue Instanz) des Dateisystems ist.

Tipp
If using Gentoo's install media, this step can be replaced with simply: arch-chroot /mnt/gentoo.
root #mount --types proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
root #mount --bind /run /mnt/gentoo/run
root #mount --make-slave /mnt/gentoo/run
Hinweis
Die --make-rslave Operationen werden für die spätere systemd Unterstützung bei der Installation benötigt.
Warnung
Bei der Verwendung von Nicht-Gentoo Installationsmedien ist dies möglicherweise nicht ausreichend. Bei einigen Distributionen ist /dev/shm ein symbolischer Link zu /run/shm/, der nach einem chroot ungültig wird. Dies kann behoben werden, indem Sie /dev/shm/ im Voraus zu einem entsprechenden tmpfs mount machen:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

Stellen Sie zudem sicher, dass Mode 1777 gesetzt ist:

root #chmod 1777 /dev/shm /run/shm

Betreten der neuen Umgebung

Nun, da alle Partitionen initialisiert sind und die Basis-Umgebung installiert ist, wird es Zeit, die neue Installationsumgebung durch chroot zu betreten. Das bedeutet, dass die Sitzung ihr Wurzelverzeichnis (/) von der aktuellen Installationsumgebung (Installations-CD oder anderes Installationsmedium) zum Installationssystem (nämlich die initialisierten Partitionen) ändert. Daher der Name change root oder chroot.

Dieses Chrooten erfolgt in drei Schritten:

  1. Das Wurzelverzeichnis wird mit Hilfe von chroot von / (auf dem Installationsmedium) auf /mnt/gentoo/ (auf den Partitionen) geändert.
  2. Einige Einstellungen (jene in /etc/profile) werden über den Befehl source neu in den Speicher geladen.
  3. Die primäre Eingabeaufforderung wird geändert, damit wir nicht vergessen, dass diese Sitzung innerhalb einer chroot-Umgebung läuft.
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) ${PS1}"

Von diesem Punkt an werden alle Aktionen direkt auf der neuen Gentoo Linux Umgebung ausgeführt.

Tipp
Wenn die Installation bei einem der ab hier folgenden Schritte unterbrochen werden sollte, sollte es möglich sein, ab dieser hier Stelle weiterzuarbeiten. Es ist nicht nötig, die Partitionen erneut zu erstellen! Mounten Sie die Root-Partition und führen Sie die oben beschriebenen Schritte ab DNS-Info kopieren erneut aus, um wieder in die neue Gentoo Linux Umgebung zu gelangen. Dieses Vorgehen ist ebenfalls sinnvoll, um Bootloader-Probleme zu beheben. Weitere Informationen erhalten Sie im chroot Artikel.

Preparing for a bootloader

Now that the new environment has been entered, it is necessary to prepare the new environment for the bootloader. It will be important to have the correct partition mounted when it is time to install the bootloader.

UEFI systems

For UEFI systems, /dev/sda1 was formatted with the FAT32 filesystem and will be used as the EFI System Partition (ESP). Create a new /efi directory (if not yet created), and then mount ESP there:

root #mkdir /efi # May have been created in a previous step
root #mount /dev/sda1 /efi

DOS/Legacy BIOS systems

For DOS/Legacy BIOS systems, the bootloader will be installed into the directory, therefore mount as follows:

root #mount /dev/sda1

Portage konfigurieren

Gentoo-Ebuild-Repositorium

Eine zweiter wichtiger Schritt bei der Auswahl der Spiegel ist die Konfiguration des Gentoo ebuild Repository über die Datei /etc/portage/repos.conf/gentoo.conf. Diese Datei beinhaltet die Informationen, die zum Synchronisieren des Paket Repository erforderlich sind. Das Paket Repository ist die Sammlung der ebuilds und der zugehörigen Dateien, die all die Informationen enthalten, die Portage zum Download und zur Installation von Software-Paketen benötigt.

Das Repository kann in ein paar einfachen Schritten konfiguriert werden. Erzeugen Sie zuerst das Verzeichnis repos.conf, falls es noch nicht existiert:

root #mkdir --parents /mnt/gentoo/etc/portage/repos.conf

Kopieren Sie dann die von Portage bereitgestellte Gentoo Repository-Konfigurationsdatei in das (neu erstellte) Verzeichnis repos.conf:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Schauen Sie sich die Datei mit einem Texteditor oder mit dem cat-Befehl an. Die Datei sollte ein .ini-Format haben und ungefähr so aussehen:

DATEI /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4
sync-webrsync-verify-signature = yes
sync-git-verify-commit-signature = yes

Der hier gezeigte Standard-Wert der Variable sync-uri wählt den Ort des Spiegelservers basierend auf einer Rotation. Das hilft dabei, die Bandbreitenbelastung auf Gentoos Infrastruktur auszugleichen und hilft in Fällen, in denen ein bestimmter Spiegelserver offline ist. Es wird empfohlen, diese Standard-URI beizubehalten - sofern nicht ein lokaler oder privater Portage Spiegel verwendet werden soll.

Tipp
Die Spezifikation für die Portage Plugin Sync API finden Sie im Portage Sync Artikel.

Ein Gentoo-Ebuild-Repositorium Snapshot aus dem Web installieren

Der nächste Schritt besteht darin, einen Snapshot des Gentoo ebuild Repositorys zu installieren. Dieser Snapshot enthält eine Sammlung von Dateien, die Portage informiert über verfügbare Software-Titel (für die Installation), welche Profile der Administrator auswählen kann, Paket- oder Profil-spezifische News-Items, usw.

Die Verwendung von emerge-webrsync wird empfohlen für diejenigen, die hinter einer restriktiven Firewall sitzen (das Programm lädt den Snapshot über die Protokolle HTTP/FTP herunter) und für diejenigen, die Netzwerk-Bandbreite sparen wollen. Leser, die keine Einschränkungen durch Firewalls oder von der Netzwerk-Bandbreite haben, können zum nächsten Abschnitt springen.

Der folgende Befehl holt den neuesten Portage-Snapshot (den Gentoo tagesaktuell veröffentlicht) von einem der Gentoo-Spiegel und installiert ihn auf dem System.

root #emerge-webrsync
Hinweis
Während dieser Operation könnte sich emerge-webrsync über das Fehlen von /var/db/repos/gentoo/ beschweren. Dies ist zu erwarten und kein Grund zur Sorge - das Tool wird das Verzeichnis anlegen.

Von diesem Punkt an könnte Portage erwähnen, dass bestimmte Updates empfehlenswert sind. Dies ist deshalb so, weil es möglicherweise neuere Versionen von Paketen gibt, die durch das Stage Tar-Archiv installiert wurden. Nach der Installation des Repository Snapshots weiß Portage nun von diesen neueren Versionen. Paket-Updates können im Augenblick bedenkenlos ignoriert werden. Die Updates können verzögert werden, bis die Gentoo Installation abgeschlossen ist.


Optional: Spiegelserver wählen

Um den Quellcode zügig herunterzuladen, wird empfohlen, einen schnellen Spiegel auszuwählen. Portage schaut in der Datei make.conf nach der Variable GENTOO_MIRRORS und verwendet darin aufgelistete Spiegel. Es ist möglich, zur Gentoo Mirror-Liste zu surfen und nach einem Spiegel (oder mehreren Spiegeln) zu suchen, die nahe dem Systemstandort liegen (da diese meistens die schnellsten sind). Allerdings bieten wir ein nettes Tool namens mirrorselect, das den Benutzern ein schönes Interface zur Auswahl der benötigten Spiegel bietet. Gehen Sie einfach zu den Spiegeln der Wahl und drücken Sie die Leertaste um einen oder mehrere Spiegel auszuwählen.

A tool called mirrorselect provides a pretty text interface to more quickly query and select suitable mirrors. Just navigate to the mirrors of choice and press Spacebar to select one or more mirrors.

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Alternatively, a list of active mirrors are available online.

Optional: Gentoo-Ebuild-Repositorium aktualisieren

Es ist möglich, das Gentoo ebuild Repository mit emerge auf die neueste Version zu aktualisieren. Wenn Sie mit dem vorhergehenden Befehl emerge-webrsync einen aktuellen Snapshot installiert haben (Snapshots sind in der Regel nicht älter als 24 Stunden), ist dieser Schritt optional.

Angenommen Sie benötigen die neuesten Paket-Updates (bis zu 1 Stunde), dann benutzen Sie emerge --sync. Dieser Befehl nutzt das rsync Protokoll zur Aktualisierung des Gentoo ebuild Repository (welcher zuvor durch emerge-webrsync bezogen wurde) auf den aktuellsten Stand.

root #emerge --sync

Auf langsamen Terminals, wie einigen Framebuffer- oder seriellen Konsolen, ist es empfehlenswert, die Option --quiet zu nutzen, um den Vorgang zu beschleunigen:

root #emerge --sync --quiet

News Items lesen

Wenn das Gentoo ebuild Repository auf das System synchronisiert wird, könnte Portage Hinweistexte wie im folgenden Beispiel ausgeben:

* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

News Items wurden als Kommunikationsmedium geschaffen, um den Benutzern wichtige Mitteilungen über das Gentoo ebuild Repository zukommen lassen zu können. Zur Verwaltung der Mitteilungen verwenden Sie eselect news. Die Anwendung eselect ist ein Gentoo-spezifisches Programm, das eine gemeinsame Verwaltungsschnittstelle für verschiedene System-Administrations-Aufgaben bietet. In diesem Fall wird eselect aufgefordert, das Modul news zu verwenden.

Im Modul news werden drei Operationen am meisten genutzt:

  • Mit list wird eine Übersicht der verfügbaren News-Einträge angezeigt.
  • Mit read können die News-Einträge gelesen werden.
  • Mit purge lassen sich News-Einträge löschen, sobald sie gelesen wurden. Ein erneutes Einlesen erfolgt nicht.
root #eselect news list
root #eselect news read

Mehr Informationen zum News Reader sind über seine Manpage verfügbar:

root #man news.eselect

Auswahl des richtigen Profils

Tipp
Desktop-Profile sind nicht ausschließlich für Desktop-Umgebungen gedacht. Sie sind auch für minimale Fenstermanager wie i3 oder sway geeignet.

Ein Profil (profile) ist wichtiger Baustein für jedes Gentoo System. Es definiert nicht nur Standardwerte für USE, CFLAGS und andere wichtige Variablen, sondern legt das System auch auf einen bestimmten Bereich von Paketversionen fest. Diese Einstellungen werden von den Gentoo Portage-Entwicklern gepflegt.

Um zu sehen, welches Profil das System momentan verwendet, können Sie eselect mit dem profile Modul ausführen:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/x86/ *
  [2]   default/linux/x86//desktop
  [3]   default/linux/x86//desktop/gnome
  [4]   default/linux/x86//desktop/kde
Hinweis
Die Ausgabe des Befehls ist nur ein Beispiel und kann sich im Laufe der Zeit ändern.
Hinweis
Um systemd zu verwenden, wählen Sie ein Profil, dass "systemd" im Namen hat und umgekehrt, falls nicht

Für einige Architekturen gibt es auch Desktop-Unterprofile.

Warnung
Profil-Upgrades sind nicht einfach. Wenn Sie das initiale Profil auswählen, verwenden Sie das, dass die selbe Versionsnummer hat, wie das Profil, das vom Stage3 Tar-Archiv installiert wurde (beispielsweise ). Neue Profil-Versionen werden über News Items angekündigt, die detaillierte Migrationsanleitungen enthalten. Folgen Sie diesen Migrationsanleitungen bevor Sie auf ein neues Profil wechseln.

Nach dem Betrachten der verfügbaren Profile für die x86 Architektur kann der Benutzer ein anderes Profil für das System wählen:

root #eselect profile set 2

Hinweis
Das developer Unterprofil ist eigens für die Gentoo Linux Entwicklung und nicht für die Nutzung durch gewöhnliche Benutzer gedacht.

Optional: Adding a binary package host

Since December 2023, Gentoo's Release Engineering team has offered an official binary package host (colloquially shorted to just "binhost") for use by the general community to retrieve and install binary packages (binpkgs).[1]

Adding a binary package host allows Portage to install cryptographically signed, compiled packages. In many cases, adding a binary package host will greatly decrease the mean time to package installation and adds much benefit when running Gentoo on older, slower, or low power systems.

Repository configuration

The repository configuration for a binhost is found in Portage's /etc/portage/binrepos.conf/ directory, which functions similarly to the configuration mentioned in the Gentoo ebuild repository section.

When defining a binary host, there are two important aspects to consider:

  1. The architecture and profile targets within the sync-uri value do matter and should align to the respective computer architecture (x86 in this case) and system profile selected in the Choosing the right profile section.
  2. Selecting a fast, geographically close mirror will generally shorten retrieval time. Review the mirrorselect tool mentioned in the Optional: Selecting mirrors section or review the online list of mirrors where URL values can be discovered.

DATEI /etc/portage/binrepos.conf/gentoo.confCDN-based binary package host example
[binhost]
priority = 9999
sync-uri = https://distfiles.gentoo.org/releases/<arch>/binpackages/<profile>/x86-64/

Installing binary packages

Portage will compile packages from code source by default. It can be instructed to use binary packages in the following ways:

  1. The --getbinpkg option can be passed when invoking the emerge command. This method of for binary package installation is useful to install only a particular binary package.
  2. Changing the system's default via Portage's FEATURES variable, which is exposed through the /etc/portage/make.conf file. Applying this configuration change will cause Portage to query the binary package host for the package(s) to be requested and fall back to compiling locally when no results are found.

For example, to have Portage always install available binary packages:

DATEI /etc/portage/make.confConfigure Portage to use binary packages by default
# Appending getbinpkg to the list of values within the FEATURES variable
FEATURES="${FEATURES} getbinpkg"
# Require signatures
FEATURES="${FEATURES} binpkg-request-signature"

Additional Portage features will be discussed in the the next chapter of the handbook.

USE Variable konfigurieren

USE ist eine der mächtigsten Variablen, die Gentoo seinen Benutzern bietet. Viele Programme können mit oder ohne optionale Unterstützung für bestimmte Dinge kompiliert werden. Beispielsweise können einige Programme mit GTK- oder Qt-Unterstützung kompiliert werden. Andere können mit oder ohne SSL-Unterstützung kompiliert werden. Einige Programme können sogar mit Framebuffer-Unterstützung (svgalib) anstelle von X11-Unterstützung (X-Server) kompiliert werden.

Die meisten Distributionen kompilieren ihre Pakete mit Unterstützung für möglichst viel. Dies erhöht die Größe der Programme und verlängert die Programmstartzeit, nicht zu erwähnen die enorme Menge von Abhängigkeiten. Mit Gentoo können die Benutzer definieren, mit welchen Optionen ein Paket kompiliert werden soll. Hier kommt USE ins Spiel.

In der Variablen USE definieren die Benutzer Schlüsselwörter, die auf Optionen beim Kompilieren abgebildet werden. Beispielsweise kompiliert ssl SSL Unterstützung in die Programme, die das unterstützen. -X entfernt X-Server-Unterstützung (beachten Sie das Minuszeichen am Anfang). gnome gtk -kde -qt5 kompiliert Programme mit GNOME und GTK+ Unterstützung, aber nicht mit KDE und Qt5 Unterstützung. Das führt zu einem System, das komplett für GNOME optimiert ist (vorausgesetzt die Architektur unterstützt es).

Die Standard-USE-Einstellungen befinden sich in den make.defaults Dateien des Gentoo-Profils, das das System verwendet. Gentoo benutzt ein (komplexes) Vererbungssystem für seine Profile, in das wir in dieser Phase nicht eintauchen wollen. Der einfachste Weg, die momentan aktiven USE Einstellungen zu überprüfen, ist emerge --info auszuführen und die Zeile auszuwählen, die mit USE beginnt:

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
Hinweis
Das obige Beispiel ist verkürzt, die tatsächliche Liste der USE-Werte ist viel viel länger.

Eine vollständige Beschreibung der verfügbaren USE-Flags finden Sie auf dem System in der Datei /var/db/repos/gentoo/profiles/use.desc.

root #less /var/db/repos/gentoo/profiles/use.desc

Innerhalb des Befehls less können Sie mit Hilfe der Tasten und scrollen. Zum Beenden drücken Sie q.

Als Beispiel zeigen wir die USE Einstellung für ein KDE-basiertes System mit DVD, ALSA und CD-Aufnahme Unterstützung:

root #nano /etc/portage/make.conf
DATEI /etc/portage/make.confUSE-Flags für ein KDE/Plasma-basiertes System mit Unterstützung für DVD, ALSA und CD-Aufnahme
USE="-gtk -gnome qt5 kde dvd alsa cdr"

Wenn ein USE Wert in /etc/portage/make.conf definiert wird, wird er zu der USE-Flag Liste des Systems hinzugefügt. USE-Flags auf dieser Liste können entfernt werden, indem ein - Minuszeichen vor den Wert gesetzt wird. Um beispielsweise die Unterstützung für X11 zu deaktivieren, kann -X definiert werden:

DATEI /etc/portage/make.confStandard USE-Flags ignorieren
USE="-X acl alsa"
Warnung
Obwohl es möglich ist, mit -* alle USE-Flags zu deaktivieren (mit Ausnahme der in make.conf definierten USE-Flags), raten wir mit Nachdruck davon ab. Die Entwickler von Ebuilds wählen bestimmte Default-USE-Flags in ebuilds um Konflikte zu vermeiden, die Sicherheit zu gewährleisten, Fehler zu vermeiden und aus vielen weiteren Gründen. Die Deaktivierung aller USE-Flags beeinträchtigt das Standard-Verhalten und kann zu schwerwiegenden Problemen führen

CPU_FLAGS_*

Einige Architekturen (einschließlich AMD64/X86, ARM, PPC) haben eine USE_EXPAND-Variable namens CPU_FLAGS_<ARCH>, wobei <ARCH> durch den Namen der jeweiligen Systemarchitektur ersetzt wird.

Wichtig
Nicht verwirren lassen! AMD64- und X86-Systeme haben eine gemeinsame Architektur, daher ist der richtige Variablenname für AMD64-Systeme CPU_FLAGS_X86.

Dies wird verwendet um den Build so zu konfigurieren, dass er in einem bestimmten Assemblercode oder anderen Intrinsics kompiliert, normalerweise handgeschrieben oder anderweitig extra, und ist nicht dasselbe wie die Aufforderung an den Compiler, optimierten Code für eine bestimmte CPU-Funktion auszugeben (z.B. -march=).

Benutzer sollten diese Variable zusätzlich zur Konfiguration ihrer COMMON_FLAGS wie gewünscht setzen.

Zur Konfiguration sind folgende Schritte erforderlich:

root #emerge --ask app-portage/cpuid2cpuflags

Wenn Sie neugierig sind, können Sie das Programm starten und sich die Ausgabe ansehen:

root #cpuid2cpuflags

Kopieren Sie die Ausgabe des Programms nach package.use:

root #echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags

VIDEO_CARDS

Die VIDEO_CARDS USE_EXPAND Variable sollte in Abhängigkeit von der verfügbaren GPU (den verfügbaren GPUs) konfiguriert werden. Das Vorgehen wird im Xorg Leitfaden beschrieben. Wenn nur auf einer Konsole gearbeitet werden soll, muss VIDEO_CARDS nicht gesetzt werden.

Below is an example of a properly set VIDEO_CARDS variable. Substitute the name of the driver(s) to be used.

DATEI /etc/portage/make.conf
VIDEO_CARDS="amdgpu radeonsi"

Details for various GPU(s) can be found at the AMDGPU, Intel, Nouveau (Open Source), or NVIDIA (Proprietary) articles.

Optional: Die ACCEPT_LICENSE Variable konfigurieren

Starting with Gentoo Linux Enhancement Proposal 23 (GLEP 23), a mechanism was created to allow system administrators the ability to "regulate the software they install with regards to licenses... Some want a system free of any software that is not OSI-approved; others are simply curious as to what licenses they are implicitly accepting."[2] With a motivation to have more granular control over the type of software running on a Gentoo system, the ACCEPT_LICENSE variable was born.

Portage überprüft anhand von ACCEPT_LICENSE, welche Pakete installiert werden dürfen. Den derzeit systemweit gültigen Wert können Sie anzeigen mit:

user $portageq envvar ACCEPT_LICENSE
@FREE

Die folgende Tabelle zeigt die im Gentoo Repository definierten Lizenz-Gruppen. Die Lizenz-Gruppen werden vom Gentoo Licenses Projekt verwaltet.

Gruppen-Name Beschreibung
@GPL-COMPATIBLE GPL compatible licenses approved by the Free Software Foundation [a_license 1]
@FSF-APPROVED Free software licenses approved by the FSF (includes @GPL-COMPATIBLE)
@OSI-APPROVED Licenses approved by the Open Source Initiative [a_license 2]
@MISC-FREE Misc licenses that are probably free software, i.e. follow the Free Software Definition [a_license 3] but are not approved by either FSF or OSI
@FREE-SOFTWARE Combines @FSF-APPROVED, @OSI-APPROVED and @MISC-FREE
@FSF-APPROVED-OTHER FSF-approved licenses for "free documentation" and "works of practical use besides software and documentation" (including fonts)
@MISC-FREE-DOCS Misc licenses for free documents and other works (including fonts) that follow the free definition [a_license 4] but are NOT listed in @FSF-APPROVED-OTHER
@FREE-DOCUMENTS Combines @FSF-APPROVED-OTHER and @MISC-FREE-DOCS
@FREE Metaset of all licenses with the freedom to use, share, modify and share modifications. Combines @FREE-SOFTWARE and @FREE-DOCUMENTS
@BINARY-REDISTRIBUTABLE Licenses that at least permit free redistribution of the software in binary form. Includes @FREE
@EULA License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit approval

Some common license groups include:

A list of software licenses grouped according to their kinds.
Name Description
@GPL-COMPATIBLE GPL compatible licenses approved by the Free Software Foundation [a_license 5]
@FSF-APPROVED Free software licenses approved by the FSF (includes @GPL-COMPATIBLE)
@OSI-APPROVED Licenses approved by the Open Source Initiative [a_license 6]
@MISC-FREE Misc licenses that are probably free software, i.e. follow the Free Software Definition [a_license 7] but are not approved by either FSF or OSI
@FREE-SOFTWARE Combines @FSF-APPROVED, @OSI-APPROVED, and @MISC-FREE.
@FSF-APPROVED-OTHER FSF-approved licenses for "free documentation" and "works of practical use besides software and documentation" (including fonts)
@MISC-FREE-DOCS Misc licenses for free documents and other works (including fonts) that follow the free definition [a_license 8] but are NOT listed in @FSF-APPROVED-OTHER.
@FREE-DOCUMENTS Combines @FSF-APPROVED-OTHER and @MISC-FREE-DOCS.
@FREE Metaset of all licenses with the freedom to use, share, modify and share modifications. Combines @FREE-SOFTWARE and @FREE-DOCUMENTS.
@BINARY-REDISTRIBUTABLE Licenses that at least permit free redistribution of the software in binary form. Includes @FREE.
@EULA License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit approval

Currently set system wide acceptable license values can be viewed via:

user $portageq envvar ACCEPT_LICENSE
@FREE

As visible in the output, the default value is to only allow software which has been grouped into the @FREE category to be installed.

Specific licenses or licenses groups for a system can be defined in the following locations:

  • Systemweit im ausgewählten Profil.
  • Systemweit in der Datei /etc/portage/make.conf.
  • Pro Paket in der Datei /etc/portage/package.license.
  • Pro Paket in einem /etc/portage/package.license/ Verzeichnis von Dateien.

Optional kann die in den Profilen gesetzte systemweite Voreinstellung überschrieben werden in der Datei /etc/portage/make.conf:

DATEI /etc/portage/make.confBeispiel, wie erlaubte Lizenzen systemweit über ACCEPT_LICENSE definiert werden können
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"

Optional kann man auch akzeptierte Lizenzen pro Paket definieren, wie im folgenden Beispiel für ein Dateiverzeichnis gezeigt. Beachten Sie, dass das Verzeichnis package.license erstellt werden muss, wenn es noch nicht existiert:

root #mkdir /etc/portage/package.license

Software license details for an individual Gentoo package are stored within the LICENSE variable of the associated ebuild. One package may have one or many software licenses, therefore it be necessary to specify multiple acceptable licenses for a single package.

DATEI /etc/portage/package.license/kernelBeispiel für die Annahme von Lizenzen pro Paket
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
Wichtig
Die LICENSE Variable in einem Ebuild ist nur eine Richtlinie für Gentoo Entwickler und Benutzer. Sie ist keine rechtliche Aussage und es gibt keine Garantie, dass sie die Realität widerspiegelt. Verlassen Sie sich also nicht darauf, sondern überprüfen Sie das Paket selbst eingehend, einschließlich aller Dateien, die auf dem System installiert wurden.

@world set updaten

Der folgende Schritt ist erforderlich, damit Ihre Änderungen am Profil wirksam werden. Weiterhin werden alle Pakete aktualisiert, für die es nach dem Erstellungszeitpunkt des von Ihnen installierten Stage Tar-Archivs Updates oder Änderungen an den USE Flags gibt.

  1. A profile target different from the stage file has been selected.
  2. Additional USE flags have been set for installed packages.

Readers who are performing an 'install Gentoo speed run' may safely skip @world set updates until after their system has rebooted into the new Gentoo environment.

Readers who are performing a slow run can have Portage perform updates for package, profile, and/or USE flag changes at the present time:

root #emerge --ask --verbose --update --deep --newuse @world

Removing obsolete packages

It is important to always depclean after system upgrades to remove obsolete packages. Review the output carefully with emerge --depclean --pretend to see if any of the to-be-cleaned packages should be kept if personally using them. To keep a package which would otherwise be depcleaned, use emerge --noreplace foo.

root #emerge --ask --pretend --depclean

If happy, then proceed with a real depclean:

root #emerge --ask --depclean
Tipp
Wenn Sie ein Profil für eine vollständige Desktop-Umgebung (wie KDE oder GNOME) gewählt haben, kann der obige emerge-Befehl recht lange dauern. Wer unter Zeitdruck steht, kann folgende 'Daumenregel' verwenden: je kürzer der Profil-Name, desto weniger umfangreich ist das @world set des Systems, desto weniger Pakete müssen installiert werden. Mit anderen Worten:
  • die Wahl von default/linux/amd64/ führt zu wenigen Paketen, die upgedatet werden müssen, während
  • bei der Wahl von default/linux/amd64//desktop/gnome/systemd viele Pakete installiert werden müssen, weil ein Wechsel von OpenRC zu systemd stattfindet und die GNOME Desktop-Umgebung installiert werden muss.


Zeitzone

Hinweis
Dieser Schritt gilt nicht für Benutzer der musl libc. Benutzer die nicht wissen, was das bedeutet, sollten diesen Schritt ausführen.

Bitte vermeiden Sie die /usr/share/zoneinfo/Etc/GMT* Zeitzonen, da deren Namen nicht die erwarteten Zonen anzeigen. Beispielsweise ist GMT-8 in der Tat GMT+8.

Wählen Sie die Zeitzone für das System. Schauen Sie nach den verfügbaren Zeitzonen in /usr/share/zoneinfo/.

root #ls /usr/share/zoneinfo
root #ls -l /usr/share/zoneinfo/Europe/
total 256
-rw-r--r-- 1 root root 2933 Dec  3 17:19 Amsterdam
-rw-r--r-- 1 root root 1742 Dec  3 17:19 Andorra
-rw-r--r-- 1 root root 1151 Dec  3 17:19 Astrakhan
-rw-r--r-- 1 root root 2262 Dec  3 17:19 Athens
-rw-r--r-- 1 root root 3664 Dec  3 17:19 Belfast
-rw-r--r-- 1 root root 1920 Dec  3 17:19 Belgrade
-rw-r--r-- 1 root root 2298 Dec  3 17:19 Berlin
-rw-r--r-- 1 root root 2301 Dec  3 17:19 Bratislava
-rw-r--r-- 1 root root 2933 Dec  3 17:19 Brussels
...

Nehmen wir an, die gewünschte Zeitzone ist Europe/Brussels.

OpenRC

Wir schreiben den Namen der gewünschten Zeitzone in die Datei /etc/timezone.

root #echo "Europe/Brussels" > /etc/timezone

Als Nächstes konfigurieren Sie das Paket sys-libs/timezone-data neu. Dies wird für uns abhängig vom Eintrag in der Datei /etc/timezone die Datei /etc/localtime aktualisieren. Die Datei /etc/localtime wird von der System C Bibliothek verwendet um zu erfassen in welcher Zeitzone sich das System befindet.

root #emerge --config sys-libs/timezone-data
Hinweis
The /etc/localtime file is used by the system C library to know the timezone the system is in.

systemd

Wenn systemd verwendet wird, ist ein etwas anderes Vorgehen erforderlich. Ein symbolischer Link wird angelegt:

root #ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime

Später, wenn das systemd am Laufen ist, können die Zeitzone und verwandte Einstellungen mit dem Programm timedatectl konfiguriert werden.

Locales konfigurieren

Hinweis
Dieser Abschnitt ist nicht erforderlich für Nutzer der "musl" libc. Anwender, die nicht wissen, was das bedeutet, sollten diesen Abschnitt durcharbeiten.

Locales erzeugen

Die meisten Benutzer werden nur ein oder zwei Locale auf ihrem System verwenden.

Locales geben nicht nur die Sprache an, mit der der Anwender mit dem System interagieren soll. Sie definieren auch die Regeln zum Sortieren von Zeichenketten, zur Anzeige von Datum und Zeit, usw. Locales sind 'case-sensitive' und müssen genau so geschrieben werden wie vorgegeben. Die Datei /usr/share/i18n/SUPPORTED enthält eine vollständige Liste aller verfügbaren Locales.

Locales, die auf einem System verfügbar sein sollen, müssen in der Datei /etc/locale.gen konfiguriert werden.

root #nano /etc/locale.gen

Das folgende Beispiel zeigt Locales, um sowohl Englisch (Vereinigte Staaten), als auch Deutsch (Deutschland) mit den Zeichenkodierungen Latin-1 und UTF-8 zu erhalten:

DATEI /etc/locale.genKonfiguration von Locale und Zeichenkodierungen
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
Tipp
Anwender aus Österreich oder aus der Schweiz können anstelle von (oder zusätzlich zu) "de_DE" wählen: "de_AT" oder "de_CH".
Warnung
Viele Anwendungen erfordern mindestens ein UTF-8 Locale, um korrekt gebaut zu werden.

Der nächste Schritt ist, locale-gen auszuführen. Dieses Programm erzeugt alle Locales, die in der Datei /etc/locale.gen angegeben sind.

root #locale-gen

Um zu überprüfen, ob die ausgewählten Locales jetzt verfügbar sind, führen Sie locale -a aus. Dieser Befehl muss die konfigurierten Locales anzeigen - ansonsten hat locale-gen nicht funktioniert.

Auf systemd-Installationen kann localectl verwendet werden, z.B. localectl set-locale ... oder localectl list-locales.

Locale auswählen

Nachdem die Locales generiert wurden, ist es Zeit, die systemweiten Locale-Einstellungen zu setzen. Wir verwenden dafür wieder eselect, diesmal mit dem Modul locale.

Mit eselect locale list werden die verfügbaren Locales angezeigt:

root #eselect locale list
Verfügbare Locales für die LANG Variable:
  [1]  C
  [2]  C.utf8
  [3]  en_US
  [4]  en_US.iso88591
  [5]  en_US.utf8
  [6]  de_DE
  [7]  de_DE.iso88591
  [8]  de_DE.utf8
  [9] POSIX
  [ ]  (free form)

Mit eselect locale set <WERT> kann die gewünschte Locale ausgewählt werden:

root #eselect locale set 9

Manuell kann dies auch durch Anpassen der Datei /etc/env.d/02locale und für Systemd durch Anpassen der Datei /etc/locale.conf erreicht werden:

DATEI /etc/env.d/02localeManuelles Setzen der System-Locale
LANG="de_DE.UTF-8"
LC_COLLATE="C.UTF-8"

Das Setzen der System-Locale verhindert Warnungen und Fehlermeldungen beim Kompilieren des Kernels und von Software in den folgenden Installationsschritten.

Laden Sie jetzt die Umgebung erneut, damit die Änderung der Locale-Einstellung in Ihrer Shell wirksam wird:

root #env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

Eine weiterführende Anleitung durch den Lokalisierungs-Prozess finden Sie im Lokalisierungs-Leitfaden und in der UTF-8-Anleitung.