BESCHREIBUNG¶
Die Dateien /etc/os-release und /usr/lib/os-release enthalten
Betriebssystemidentifizierungsdaten.
Das grundlegende Dateiformat von os-release ist eine durch
Zeilenumbrüche getrennte Liste von umgebungsartigen,
Shell-kompatiblen Variablenzuweisungen. Es ist möglich, die
Konfiguration aus Shell-Skripten einzulesen, allerdings werden außer
einfachen Variablenzuweisungen keine Shell-Funktionalitäten
unterstützt. (Das bedeutet, Variablenexpansion wird explizit nicht
unterstützt). Damit wird Anwendungen erlaubt, die Datei einzulesen,
ohne eine Shell-kompatible Ausführungseinheit zu implementieren.
Variablenzuweisungen müssen in doppelte oder einzelne englische
Anführungszeichen eingeschlossen werden, falls sie Leerzeichen,
Semikola oder andere besondere Zeichen außerhalb von A…Z,
a…z, 0…9 enthalten. Besondere Zeichen der Shell
(»$«, Anführungszeichen,
Rückwärtsschrägstrich, Gravis) müssen im
Shell-Stil mit Rückwärtsschrägstrichen geschützt
werden. Alle Zeichenketten sollten im UTF-8-Format sein und nicht druckbare
Zeichen sollten nicht verwandt werden. Die Aneinanderreihung individueller
Zeichenketten in Anführungszeichen wird nicht unterstützt.
Zeilen, die mit »#« beginnen, müssen als Kommentar
ignoriert werden. Leere Zeilen sind erlaubt und werden ignoriert.
Die Datei /etc/os-release hat vor /usr/lib/os-release Vorrang.
Anwendungen sollten auf erstere prüfen und deren Daten exklusiv
nutzen, falls sie exsitiert, und nur auf /usr/lib/os-release
zurückfallen, falls sie fehlt. Anwendungen sollten nicht aus beiden
Dateien gleichzeitig Daten auslesen. /usr/lib/os-release ist der bevorzugte
Ort, um Betriebssystemveröffentlichungsinformationen wie Teile des
Lieferantenbaums abzulegen. /etc/os-release sollte ein relativer Symlink auf
/usr/lib/os-release sein, um Kompatibilität für Anwendungen
bereitzustellen, die nur nach /etc/ schauen. Ein relativer Symlink anstatt
eines absoluten ist notwendig, damit der Link auch in einer Chroot oder
Initrd-Umgebung wie Dracut funktioniert.
os-release enthält Daten, die durch den
Betriebssystemlieferanten definiert werden und sollte im Allgemeinen durch
den Administrator nicht geändert werden.
Da diese Datei nur Namen und Kennungen kodiert, sollte sie nicht
lokalisiert werden.
Die Dateien /etc/os-release und /usr/lib/os-release können
Symlinks auf andere Dateien sein, aber es ist wichtig, dass diese Datei vom
frühsten Zeitpunkt des Systemstarts an verfügbar ist, und sie
muss sich daher auf dem Wurzeldateisystem befinden.
Für eine längere Begründung für
os-release lesen Sie bitte die Ankündigung von
/etc/os-release[1].
OPTIONEN¶
Die folgenden Betriebssystemidentifikationsparameter können
mittels os-release gesetzt werden:
NAME=
Eine Zeichenkette, die das Betriebssystem identifiziert,
ohne Versionskomponente und für die Anzeige beim Benutzer geeignet.
Falls nicht gesetzt, standardmäßig »NAME=Linux«.
Beispiele: »NAME=Fedora« oder »NAME="Debian
GNU/Linux"«.
VERSION=
Eine Zeichenkette, die die Betriebssystemversion
identifiziert, ohne irgendeinen Betriebssystemnamen, möglicherweise
einschließlich eines Code-Namens für das Release, und für
die Anzeige beim Benutzer geeignet. Dieses Feld ist optional. Beispiele:
»VERSION=17« oder »VERSION="17 (Beefy
Miracle)"«.
ID=
Eine Zeichenkette in Kleinbuchstaben (keine Leerzeichen
oder andere Zeichen außerhalb von 0…9, a…z,
».«, »_« und »-«), die das
Betriebssystem identifiziert, ohne irgendwelche Versionsinformationen und
geeignet für die Verarbeitung durch Skripte oder zur Verwendung in
erstellten Dateinamen. Falls nicht gesetzt, standardmäßig
»ID=linux«. Beispiele: »ID=fedora« oder
»ID=debian«.
ID_LIKE=
Eine durch Leerzeichen getrennte Liste von
Betriebssystemkennungen in der gleichen Syntax wie die Einstellung ID=.
Sie sollte Kennungen von Betriebssystemen auflisten, die eng in Zusammenhang
zu dem lokalen Betriebssystem im Hinblick auf Paketierung und
Programmierschnittstellen sind, beispielsweise eine oder mehrere
Betriebssystemkennungen auflisten, von denen das lokale Betriebssystem
abgeleitet ist. Ein Betriebssystem sollte im Allgemeinen nur andere
Betriebssystemkennungen auflisten, von denen es selbst abgeleitet ist, und
nicht andere Betriebssysteme, die von ihm abgeleitet sind, obwohl symmetrische
Beziehungen möglich sind. Bauskripte und ähnliches
könnten diese Variable überprüfen, falls sie das lokale
Betriebssystem identifizieren müssen und der Wert von ID= nicht
erkannt wird. Betriebssysteme sollten in der Reihenfolge aufgelistet werden,
wie eng das lokale Betriebssystem in Bezug zu den aufgeführten steht,
beginnend mit dem engsten. Dieses Feld ist optional. Beispiele: Für ein
Betriebssystem mit »ID=centos« wäre eine Zuweisung von
»ID_LIKE="rhel fedora"« geeeignet. Für ein
Betriebssystem mit »ID=ubuntu« ist eine Zuweisung
»ID_LIKE=debian« geeignet.
VERSION_CODENAME=
Eine Zeichenkette in Kleinbuchstaben (keine Leerzeichen
oder andere Zeichen außerhalb von 0…9, a…z,
».«, »_« und »-«), die den
Release-Namen des Betriebssystems identifiziert, ohne irgendwelche
Betriebssystemnamensinformationen oder Release-Versionen und geeignet
für die Verarbeitung durch Skripte oder zur Verwendung in erstellten
Dateinamen. Dieses Feld ist optional und könnte nicht auf allen
Systemen implementiert sein. Beispiele:
»VERSION_CODENAME=buster«,
»VERSION_CODENAME=xenial«
VERSION_ID=
Eine Zeichenkette in Kleinbuchstaben (keine Leerzeichen
oder andere Zeichen außerhalb von 0…9, a…z,
».«, »_« und »-«), die die
Betriebssystemversion identifiziert, ohne irgendwelche
Betriebssystemnamensinformationen oder Release-Code-Namen und geeignet
für die Verarbeitung durch Skripte oder zur Verwendung in erstellten
Dateinamen. Dieses Feld ist optional. Beispiele: »VERSION_ID=17«
oder »VERSION_ID=11.04«.
PRETTY_NAME=
Ein schöner Betriebssystemname in einem Format,
das zur Darstellung bei Benutzern geeignet ist. Wie passend kann dies auf
irgendeine Art den Release-Code-Namen oder die Betriebssystemversion enthalten
oder auch nicht. Falls nicht gesetzt, ist die Vorgabe
»PRETTY_NAME="Linux"«. Beispiele:
»PRETTY_NAME="Fedora 17 (Beefy Miracle)"«.
ANSI_COLOR=
Eine vorgeschlagene Farbe zur Darstellung des
Betriebssystemnamens auf der Konsole. Dies sollte als Zeichenkette angegeben
werden, die zur Einbindung in den »ESC [ m
ANSI/ECMA-48«-Maskierungscode zum Setzen der graphischen Bildwiedergabe
geeignet ist. Dieses Feld ist optional. Beispiele:
»ANSI_COLOR="0;31" für rot,
»ANSI_COLOR="1;34"« für helles blau oder
»ANSI_COLOR="0;38;2;60;110;180"« für
Fedora-blau.
CPE_NAME=
Ein CPE-Name für das Betriebssystem, in
URI-Anbindungssyntax, gemäß der Gemeinsamen
Plattform-Aufzählungs-Spezifikation[2], wie von NIST
vorgeschlagen. Dieses Feld ist optional. Beispiel:
»CPE_NAME="cpe:/o:fedoraproject:fedora:17"«
HOME_URL=, DOCUMENTATION_URL=, SUPPORT_URL=,
BUG_REPORT_URL=, PRIVACY_POLICY_URL=
Links auf Ressourcen im Internet mit Bezug zu dem
Betriebssystem.
HOME_URL= sollte sich auf die Homepage des
Betriebssystems oder alternativ auf die Homepage der bestimmten Version des
Betriebssystems beziehen.
DOCUMENTATION_URL= sollte sich auf die
Hauptdokumentationsseite für dieses Betriebssystem beziehen.
SUPPORT_URL= sollte sich auf die Hauptseite für
Unterstützung für das Betriebssystem beziehen, falls es eine
solche gibt. Dies ist hauptsächlich für Anbieter, die
Unterstützung dafür bereitstellen.
BUG_REPORT_URL= sollte
sich auf die Hauptseite für die Fehlerdatenbank für das
Betriebssystem beziehen, falls es eine solche gibt. Dies ist
hauptsächlich für Betriebssysteme gedacht, die sich auf
Qualitätssicherung der Gemeinschaft verlassen.
PRIVACY_POLICY_URL= sollte sich auf die Hauptseite der
Datenschutzrichtlinie für das Betriebssystem beziehen, falls es eine
solche gibt. Diese Einstellungen sind optional und es ist typisch, das nur ein
Teil dieser Einstellungen bereitgestellt werden. Diese URLs sind für
die Angabe in Oberflächen »Über dieses System«
gedacht, unter Links mit den Überschriften »Über dieses
Betriebssystem«, »Hilfe erhalten«, »Einen Fehler
berichten« oder »Datenschutzrichtlinie«. Diese Werte
sollten im
RFC3986-Format[3] sein und sollten »http:«-
oder »https:«-URLs und möglicherweise
»mailto:« oder »tel:« sein. Für jede
Einstellung darf nur eine URL aufgelistet werden. Falls mehrere Ressourcen
referenziert werden müssen, wird empfohlen, eine Online-Anlaufstelle
bereitzustellen, auf der alle verfügbaren Ressourcen verlinkt sind.
Beispiele: »HOME_URL="
https://fedoraproject.org/« und
»BUG_REPORT_URL="
https://bugzilla.redhat.com/"«
BUILD_ID=
Eine Zeichenkette, die das Systemabbild identifiziert,
das als Ursprung für eine Distribution verwandt wurde (und nicht mit
Systemaktualisierungen aktualisiert wird). Das Feld kann bei verschiedenen
VERSION_IDs identisch sein, da BUILD_ID nur eine eindeutige Kennung für
eine bestimmte Version ist. Distributionen, die jede Aktualisierung als eine
neue Version veröffentlichen, müssten nur VERSION_ID verwenden,
da jeder Bau bereits aufgrund der VERSION_ID unterscheidbar ist. Dieses Feld
ist optional. Beispiele: »BUILD_ID="2013-03-20.3"«
oder »BUILD_ID=201303203«.
VARIANT=
Eine Zeichenkette, die eine spezielle Variante oder
Edition des Betriebssystems identifiziert, die zur Darstellung bei Benutzern
geeignet ist. Dieses Feld kann den Benutzer darüber informieren, dass
die Konfiguration dieses Systems einer speziellen abweichenden Gruppe von
Regeln oder einer Standardkonfigurationseinstellung unterliegt. Dieses Feld
ist optional und könnte nicht auf allen Systemen implementiert sein.
Beispiele: »VARIANT="Server Edition"«,
»VARIANT="Intelliegenter-Kühlschrank-Edition"«.
Beachten Sie: Dieses Feld dient nur Anzeigezwecken. Für
programmgesteuerte Entscheidungen sollte das Feld VARIANT_ID benutzt
werden.
VARIANT_ID=
Eine Zeichenkette in Kleinbuchstaben (keine Leerzeichen
oder andere Zeichen außerhalb von 0…9, a…z,
».«, »_« und »-«), die eine
spezielle Variante oder eine spezielle Edition des Betriebssystems
identifiziert. Dies kann von anderen Paketen interpretiert werden, um eine
abweichende Standardkonfiguration zu ermitteln. Dieses Feld ist optional und
könnte nicht auf allen Systemen implementiert sein. Beispiele:
»VARIANT_ID=server«, »VARIANT_ID=embedded«
LOGO=
Eine Zeichenkette, die den Namen eines Icons wie er in
der Freedesktop.org-Icon-Thema-Spezifikation[4] definiert ist, angibt.
Dies kann von graphischen Anwendungen zur Darstellung eines Logos des
Betriebssystems oder des Distributors verwandt werden. Dieses Feld ist
optional und muss nicht notwendigerweise auf allen Systemen implementiert
sein. Beispiele: »LOGO=fedora-logo«,
»LOGO=distributor-logo-opensuse«
Falls Sie diese Datei aus C-Code oder einem Shell-Skript einlesen,
um das Betriebssystem oder eine bestimmte Version davon zu ermitteln,
benutzen Sie die Felder ID und VERSION_ID,
möglicherweise mit ID_LIKE als Rückfallwert. Wenn Sie
nach einer Betriebssystemkennungszeichenkette für die Darstellung
beim Benutzer suchen, verwenden Sie das Feld PRETTY_NAME.
Beachten Sie, dass Betriebssystemanbieter sich entscheiden
könnten, keine Versionsinformationen zu liefern, beispielsweise um
rollende Veröffentlichungen (»rolling releases«) zu
berücksichtigen. In diesen Fällen können VERSION
und VERSION_ID ungesetzt sein. Anwendungen sollte sich nicht darauf
verlassen, dass diese Felder gesetzt sind.
Betriebssystemanbieter können das Dateiformat erweitern und
neue Felder einführen. Es wird nachdrücklich empfohlen, neuen
Feldern einen betriebssystemspezifischen Namen voranzustellen, um
Namenskollisionen zu vermeiden. Anwendungen, die diese Datei lesen,
müssen unbekannte Felder ignorieren. Beispiel:
»DEBIAN_BTS="debbugs://bugs.debian.org/"«
Verwalter von Containern und Sandbox-Laufzeitumgebungen
können die Identifizierungsdaten des Rechners Anwendungen zur
Verfügung stellen, indem sie die Datei /etc/os-release (falls
verfügbar, andernfalls /usr/lib/os-release als
Rückfalloptione) als /run/host/os-release bereitstellen.