Nächste: , Vorige: , Nach oben: Systemkonfiguration   [Inhalt][Index]


10.2 operating-system-Referenz

Dieser Abschnitt fasst alle Optionen zusammen, die für operating-system-Deklarationen zur Verfügung stehen (siehe Das Konfigurationssystem nutzen).

Datentyp: operating-system

Der die Betriebssystemkonfiguration repräsentierende Datentyp. Damit meinen wir die globale Konfiguration des Systems und nicht die, die sich nur auf einzelne Nutzer bezieht (siehe Das Konfigurationssystem nutzen).

kernel (Vorgabe: linux-libre)

Das Paket für den zu nutzenden Betriebssystem-Kernel als „package“-Objekt24.

hurd (Vorgabe: #f)

Das Paketobjekt derjenigen Hurd, die der Kernel starten soll. Wenn dieses Feld gesetzt ist, wird ein GNU/Hurd-Betriebssystem erzeugt. In diesem Fall muss als kernel das gnumach-Paket (das ist der Microkernel, auf dem Hurd läuft) ausgewählt sein.

Warnung: Diese Funktionalität ist experimentell und wird nur für Disk-Images unterstützt.

kernel-loadable-modules (Vorgabe: ’())

Eine Liste von Objekten (normalerweise Pakete), aus denen Kernel-Module geladen werden können, zum Beispiel (list ddcci-driver-linux).

kernel-arguments (Vorgabe: %default-kernel-arguments)

Eine Liste aus Zeichenketten oder G-Ausdrücken, die für zusätzliche Argumente an den Kernel stehen, die ihm auf seiner Befehlszeile übergeben werden — wie z.B. ("console=ttyS0").

bootloader

Das Konfigurationsobjekt für den Bootloader, mit dem das System gestartet wird. Siehe Bootloader-Konfiguration.

label

Diese Bezeichnung (eine Zeichenkette) wird für den Menüeintrag im Bootloader verwendet. Die Vorgabe ist eine Bezeichnung, die den Namen des Kernels und seine Version enthält.

keyboard-layout (Vorgabe: #f)

Dieses Feld gibt an, welche Tastaturbelegung auf der Konsole benutzt werden soll. Es kann entweder auf #f gesetzt sein, damit die voreingestellte Tastaturbelegung benutzt wird (in der Regel ist diese „US English“), oder ein <keyboard-layout>-Verbundsobjekt sein.

Diese Tastaturbelegung wird benutzt, sobald der Kernel gebootet wurde. Diese Tastaturbelegung wird zum Beispiel auch verwendet, wenn Sie eine Passphrase eintippen, falls sich Ihr Wurzeldateisystem auf einem mit luks-device-mapping zugeordneten Gerät befindet (siehe Zugeordnete Geräte).

Anmerkung: Damit wird nicht angegeben, welche Tastaturbelegung der Bootloader benutzt, und auch nicht, welche der grafische Anzeigeserver verwendet. Siehe Bootloader-Konfiguration für Informationen darüber, wie Sie die Tastaturbelegung des Bootloaders angeben können. Siehe X Window für Informationen darüber, wie Sie die Tastaturbelegung angeben können, die das X-Fenstersystem verwendet.

initrd-modules (Vorgabe: %base-initrd-modules)

Die Liste der Linux-Kernel-Module, die in der initialen RAM-Disk zur Verfügung stehen sollen. Siehe Initiale RAM-Disk.

initrd (Vorgabe: base-initrd)

Eine Prozedur, die eine initiale RAM-Disk für den Linux-Kernel liefert. Dieses Feld gibt es, damit auch sehr systemnahe Anpassungen vorgenommen werden können, aber für die normale Nutzung sollten Sie es kaum brauchen. Siehe Initiale RAM-Disk.

firmware (Vorgabe: %base-firmware)

Eine Liste der Firmware-Pakete, die vom Betriebssystem-Kernel geladen werden können.

Vorgegeben ist, dass für Atheros- und Broadcom-basierte WLAN-Geräte nötige Firmware geladen werden kann (genauer jeweils die Linux-libre-Module ath9k und b43-open). Siehe den Abschnitt Hardware-Überlegungen für mehr Informationen zu unterstützter Hardware.

host-name

Der Hostname

hosts-file

Ein dateiartiges Objekt (siehe dateiartige Objekte), das für /etc/hosts benutzt werden soll (siehe Host Names in Referenzhandbuch der GNU-C-Bibliothek). Der Vorgabewert ist eine Datei mit Einträgen für localhost und host-name.

mapped-devices (Vorgabe: '())

Eine Liste zugeordneter Geräte („mapped devices“). Siehe Zugeordnete Geräte.

file-systems

Eine Liste von Dateisystemen. Siehe Dateisysteme.

swap-devices (Vorgabe: '())

Eine Liste von UUIDs, Dateisystembezeichnungen oder Zeichenketten, die als Swap-Speicher zu nutzende Geräte bzw. Dateien identifizieren (siehe Memory Concepts in Referenzhandbuch der GNU-C-Bibliothek). Hier sind einige Beispiele:

(list (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))

Die Swap-Partition mit der angegebenen UUID verwenden. Sie können die UUID einer Linux-Swap-Partition erfahren, indem Sie swaplabel Gerät ausführen, wobei Gerät der Dateiname unter /dev für die Partition ist.

(list (file-system-label "swap"))

Die Swap-Partition mit der Bezeichnung swap verwenden. Auch hier können Sie mittels swaplabel-Befehls die Bezeichnung einer Linux-Swap-Partition einsehen und ändern.

(list "/swapfile")

Die Datei /swapfile als Swap-Speicher benutzen.

(list "/dev/sda3" "/dev/sdb2")

Die Partitionen /dev/sda3 und /dev/sdb2 als Swap-Speicher benutzen. Wir raten davon ab und empfehlen, auf die Swap-Geräte stattdessen wie oben gezeigt über UUIDs oder über Bezeichnungen zu verweisen.

Es ist möglich, eine Swap-Datei auf einem Dateisystem eines zugeordneten Geräts anzugeben, sofern auch die Gerätezuordnung und das Dateisystem mit angegeben werden. Siehe Zugeordnete Geräte und Dateisysteme.

users (Vorgabe: %base-user-accounts)
groups (Vorgabe: %base-groups)

Liste der Benutzerkonten und Benutzergruppen. Siehe Benutzerkonten.

Wenn in der users-Liste kein Benutzerkonto mit der UID-Kennung 0 aufgeführt wird, wird automatisch für den Administrator ein „root“-Benutzerkonto mit UID-Kennung 0 hinzugefügt.

skeletons (Vorgabe: (default-skeletons))

Eine Liste von Tupeln aus je einem Ziel-Dateinamen und einem dateiähnlichen Objekt (siehe dateiartige Objekte). Diese Objekte werden als Skeleton-Dateien im Persönlichen Verzeichnis („Home“-Verzeichnis) jedes neuen Benutzerkontos angelegt.

Ein gültiger Wert könnte zum Beispiel so aussehen:

`((".bashrc" ,(plain-file "bashrc" "echo Hallo\n"))
  (".guile" ,(plain-file "guile"
                         "(use-modules (ice-9 readline))
                          (activate-readline)")))
issue (Vorgabe: %default-issue)

Eine Zeichenkette, die als Inhalt der Datei /etc/issue verwendet werden soll, der jedes Mal angezeigt wird, wenn sich ein Nutzer auf einer Textkonsole anmeldet.

packages (Vorgabe: %base-packages)

Eine Liste von Paketen, die ins globale Profil installiert werden sollen, welches unter /run/current-system/profile zu finden ist. Jedes Element ist entweder eine Paketvariable oder ein Tupel aus einem Paket und dessen gewünschter Ausgabe. Hier ist ein Beispiel:

(cons* git                     ; die Standardausgabe "out"
       (list git "send-email") ; eine andere Ausgabe von git
       %base-packages)         ; die normale Paketmenge

Die vorgegebene Paketmenge umfasst zum Kern des Systems gehörende Werkzeuge („core utilities“). Es ist empfehlenswert, nicht zum Kern gehörende Werkzeuge („non-core“) stattdessen in Nutzerprofile zu installieren (siehe Aufruf von guix package).

timezone

Eine Zeichenkette, die die Zeitzone bezeichnet, wie z.B. "Europe/Berlin".

Mit dem Befehl tzselect können Sie herausfinden, welche Zeichenkette der Zeitzone Ihrer Region entspricht. Wenn Sie eine ungültige Zeichenkette angeben, schlägt guix system fehl.

locale (Vorgabe: "en_US.utf8")

Der Name der als Voreinstellung zu verwendenden Locale (siehe Locale Names in Referenzhandbuch der GNU-C-Bibliothek). Siehe Locales für weitere Informationen.

locale-definitions (Vorgabe: %default-locale-definitions)

Die Liste der Locale-Definitionen, die kompiliert werden sollen und dann im laufenden System benutzt werden können. Siehe Locales.

locale-libcs (Vorgabe: (list glibc))

Die Liste der GNU-libc-Pakete, deren Locale-Daten und -Werkzeuge zum Erzeugen der Locale-Definitionen verwendet werden sollen. Siehe Locales für eine Erläuterung der Kompatibilitätsauswirkungen, deretwegen man diese Option benutzen wollen könnte.

name-service-switch (Vorgabe: %default-nss)

Die Konfiguration des Name Service Switch (NSS) der libc — ein <name-service-switch>-Objekt. Siehe Name Service Switch für Details.

services (Vorgabe: %base-services)

Eine Liste von „service“-Objekten, die die Systemdienste repräsentieren. Siehe Dienste.

essential-services (Vorgabe: …)

Die Liste „essenzieller Dienste“ — d.h. Dinge wie Instanzen von system-service-type und host-name-service-type (siehe Service-Referenz), die aus der Betriebssystemdefinition an sich abgeleitet werden. Als normaler Benutzer sollten Sie dieses Feld niemals ändern müssen.

pam-services (Vorgabe: (base-pam-services))

Dienste für Pluggable Authentication Modules (PAM) von Linux.

setuid-programs (Vorgabe: %setuid-programs)

Eine Liste von Zeichenketten liefernden G-Ausdrücken, die setuid-Programme bezeichnen. Siehe Setuid-Programme.

sudoers-file (Vorgabe: %sudoers-specification)

Der Inhalt der Datei /etc/sudoers als ein dateiähnliches Objekt (siehe local-file und plain-file).

Diese Datei gibt an, welche Nutzer den Befehl sudo benutzen dürfen, was sie damit tun und welche Berechtigungen sie so erhalten können. Die Vorgabe ist, dass nur der Administratornutzer root und Mitglieder der Benutzergruppe wheel den sudo-Befehl verwenden dürfen.

Scheme-Syntax: this-operating-system

Wenn dies im lexikalischen Geltungsbereich der Definition eines Feldes im Betriebssystem steht, bezieht sich dieser Bezeichner auf das Betriebssystem, das gerade definiert wird.

Das folgende Beispiel zeigt, wie man auf das Betriebssystem, das gerade definiert wird, verweist, während man die Definition des label-Felds schreibt:

(use-modules (gnu) (guix))

(operating-system
  ;; …
  (label (package-full-name
          (operating-system-kernel this-operating-system))))

Es ist ein Fehler, außerhalb einer Betriebssystemdefinition auf this-operating-system zu verweisen.


Fußnoten

(24)

Derzeit wird nur der Kernel Linux-libre vollständig unterstützt. Die Nutzung von GNU mach mit GNU Hurd ist experimentell und steht nur zur Erstellung eines Disk-Image für virtuelle Maschinen bereit.


Nächste: , Vorige: , Nach oben: Systemkonfiguration   [Inhalt][Index]