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


12.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“-Objekt27.

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. Siehe Tastaturbelegung für weitere Informationen.

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 Rechnername.

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 der Swap-Speicher. Siehe Swap-Speicher.

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 guix package aufrufen).

timezone (Vorgabe: "Etc/UTC")

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 <setuid-program>-Objekten. 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

(27)

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: Dateisysteme, Vorige: Das Konfigurationssystem nutzen, Nach oben: Systemkonfiguration   [Inhalt][Index]