Handbuch:Parts/Installation/Basis
Bitte versuchen Sie nicht, den Anweisungen aus dem Handbook:Parts Namespace (DIESE SEITE) oder den Unterseiten zu folgen. Handbook:Parts ist ein Meta-Handbuch, um Text über Transklusion in andere Handbücher einzufügen. Bitte verwenden Sie die Architektur-spezifischen Handbücher für eine vollständige Installations-Anleitung.
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.
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
Die
--make-rslave
Operationen werden für die spätere systemd Unterstützung bei der Installation benötigt.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:
- Das Wurzelverzeichnis wird mit Hilfe von chroot von / (auf dem Installationsmedium) auf /mnt/gentoo/ (auf den Partitionen) geändert.
- Einige Einstellungen (jene in /etc/profile) werden über den Befehl source neu in den Speicher geladen.
- 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.
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
root #
mount /dev/sda1 /efi
DOS/Legacy BIOS systems
For DOS/Legacy BIOS systems, the bootloader will be installed into the /boot directory, therefore mount as follows:
root #
mount /dev/sda1 /boot
Portage konfigurieren
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
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
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/amd64/23.0 * [2] default/linux/amd64/23.0/desktop [3] default/linux/amd64/23.0/desktop/gnome [4] default/linux/amd64/23.0/desktop/kde
Die Ausgabe des Befehls ist nur ein Beispiel und kann sich im Laufe der Zeit ändern.
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.
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 23.0). 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 amd64 Architektur kann der Benutzer ein anderes Profil für das System wählen:
root #
eselect profile set 2
This is a placeholder for architecture-specific profile information
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:
- The architecture and profile targets within the
sync-uri
value do matter and should align to the respective computer architecture (amd64 in this case) and system profile selected in the Choosing the right profile section. - 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.
[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:
- 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. - 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:
# Appending getbinpkg to the list of values within the FEATURES variable
FEATURES="${FEATURES} getbinpkg"
# Require signatures
FEATURES="${FEATURES} binpkg-request-signature"
Please also run getuto for Portage to set up the necessary keyring for verification:
root #
getuto
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 ..."
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
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:
USE="-X acl alsa"
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ührenCPU_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.
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.
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:
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 |
- ↑ https://www.gnu.org/licenses/license-list.html
- ↑ https://www.opensource.org/licenses
- ↑ https://www.gnu.org/philosophy/free-sw.html
- ↑ https://freedomdefined.org/
- ↑ https://www.gnu.org/licenses/license-list.html
- ↑ https://www.opensource.org/licenses
- ↑ https://www.gnu.org/philosophy/free-sw.html
- ↑ https://freedomdefined.org/
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:
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.
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
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.
- A profile target different from the stage file has been selected.
- 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
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/23.0
führt zu wenigen Paketen, die upgedatet werden müssen, während - bei der Wahl von
default/linux/amd64/23.0/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
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
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
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:
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
Anwender aus Österreich oder aus der Schweiz können anstelle von (oder zusätzlich zu) "de_DE" wählen: "de_AT" oder "de_CH".
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:
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.
References