SYSUPDATE.FEATURES(5) | sysupdate.features | SYSUPDATE.FEATURES(5) |
BEZEICHNUNG¶
sysupdate.features - Definitionsdateien für Optionale Funktionalitäten
ÜBERSICHT¶
BESCHREIBUNG¶
»Optionale Funktionalitäten« sind Funktionalitäten, die durch systemd-sysupdate(8) bereitgestellt werden, die es Distributionen erlauben, einen Satz von sysupdate.d(5)-Übertragungsdefinitionen zu definieren, die dazu gedacht sind, vom Systemadministrator aktiviert oder deaktiviert zu werden.
Wenn eine Funktionalität aktiviert ist, werden zugehörige Übertragungen betrachtet, wenn auf Aktualisierungen geprüft und diese heruntergeladen werden, wenn Datenträger bereinigt werden und in allen anderen Situationen. Effektiv werden Übertragungen, die zu einer Funktionalität gehören, immer fest mit dem Rest ihres Ziels verzahnt aktualisiert. Dies ist der Hauptunterschied zwischen einer Optionalen Funktionalität und der Komponente systemd-sysupdate(8). Wenn eine Funktionalität deaktiviert ist, werden ihre Übertragungen nicht betrachtet, wenn auf Aktualisierungen geprüft und diese heruntergeladen werden, aber systemd-sysupdate(8) wird sie weiterhin betrachten, wenn Datenträger bereinigt werden und in anderen Situationen, bei denen die Eigentümerschaft über vorher heruntergeladene Systemressourcen bestimmt werden muss. systemd-sysupdate(8) wird alle Instanzen der Übertragungen der Funktionalität bereinigen, wenn sie deaktiviert wird und sie damit effektiv deinstallieren.
Optionale Funktionalitäten werden durch Dateien sysupdate.d/*.feature beschrieben, die nachfolgend definiert sind. Übertragungen können mit der Einstellung Features= erklären, dass sie zu einer Funktionalität gehören. Funktionalitätsdefinitionen unterstützen Ergänzungsdateien, die am häufigsten dazu verwandt werden, die Einstellung Enabled= außer Kraft zu setzen. Sie können auch ausmaskiert werden, um die Verfügbarkeit der Funktionalität komplett zu verstecken.
Jede Datei *.feature enthält einen Abschnitt: »[Feature]«.
[FEATURE]-ABSCHNITTOPTIONEN¶
Dieser Abschnitt beschreibt die allgemeinen Eigenschaften dieser Funktionalität.
Description=
Hinzugefügt in Version 257.
Documentation=
Hinzugefügt in Version 257.
AppStream=
Hinzugefügt in Version 257.
Enabled=
Hinzugefügt in Version 257.
KENNZEICHNER¶
In den Einstellungen Documentation= und AppStream= können Kennzeichner verwandt werden. Es werden die Folgenden verstanden:
Tabelle 1. Verfügbare Kennzeichner
Kennzeichner | Bedeutung | Details |
"%a" | Architektur | Eine kurze Zeichenkette, die die Architektur des lokalen Systems identifiziert. Eine Zeichenkette wie x86, x86-64 oder arm64. Siehe die für ConditionArchitecture= in systemd.unit(5) definierten Architekturen für die vollständige Liste. |
"%A" | Betriebssystemabbildversion | Die Betriebssystemabbildversionskennzeichnung des laufenden Systems, wie aus dem Feld IMAGE_VERSION= in /etc/os-release ausgelesen. Falls nicht gesetzt, wird es zur leeren Zeichenkette aufgelöst. Siehe os-release(5) für weitere Informationen. |
"%b" | Boot-Kennung | Die Boot-Kennung des laufenden Systems, formatiert als Zeichenkette. Siehe random(4) für weitere Informationen. |
"%B" | Betriebssystembaukennung | Die Betriebssystembaukennung des laufenden Systems, wie aus dem Feld BUILD_ID= in /etc/os-release ausgelesen. Falls nicht gesetzt, wird es zur leeren Zeichenkette aufgelöst. Siehe os-release(5) für weitere Informationen. |
"%H" | Rechnername | Der Rechnername des laufenden Systems. |
"%l" | Kurzer Rechnername | Die Rechnername des laufenden Systems, abgeschnitten am ersten Punkt, um alle Domain-Komponenten zu entfernen. |
"%m" | Maschinenkennung | Die Maschinenkennung des laufenden Systems, formatiert als Zeichenkette. Siehe machine-id(5) für weitere Informationen. |
"%M" | Betriebssystemabbildkennung | Die Betriebssystemabbildkennung des laufenden Systems, wie aus dem Feld IMAGE_ID= in /etc/os-release ausgelesen. Falls nicht gesetzt, wird es die leere Zeichenkette. Siehe os-release(5) für weitere Informationen. |
"%o" | Betriebssystemkennung | Die Betriebssystemkennung des laufenden Systems, wie aus dem Feld ID= in /etc/os-release ausgelesen. Siehe os-release(5) für weitere Informationen. |
"%v" | Kernelveröffentlichung | Identisch zur Ausgabe von uname -r. |
"%w" | Betriebssystemversionskennung | Die Betriebssystemversionskennzeichnung des laufenden Systems, wie aus dem Feld VERSION_ID= in /etc/os-release ausgelesen. Falls nicht gesetzt, wird es die leere Zeichenkette. Siehe os-release(5) für weitere Informationen. |
"%W" | Betriebssystemvariantenkennung | Die Betriebssystemvariantenkennung des laufenden Systems, wie aus dem Feld VARIANT_ID= in /etc/os-release ausgelesen. Falls nicht gesetzt, wird es die leere Zeichenkette. Siehe os-release(5) für weitere Informationen. |
"%T" | Verzeichnis für temporäre Dateien | Dies ist entweder /tmp oder der Pfad, auf den »$TMPDIR«, »$TEMP« oder »$TMP« gesetzt ist. (Beachten Sie, dass das Verzeichnis ohne abschließenden Schrägstrich angegeben werden kann.) |
"%V" | Verzeichnis für größere und dauerhafte temporäre Dateien | Dies ist entweder /var/tmp oder der Pfad, auf den »$TMPDIR«, »$TEMP« oder »$TMP« gesetzt ist. (Beachten Sie, dass das Verzeichnis ohne abschließenden Schrägstrich angegeben werden kann.) |
"%%" | Einzelnes Prozentzeichen | Verwenden Sie »%%« anstelle von »%«, um ein einzelnes Prozentzeichen anzugeben. |
BEISPIELE¶
Beispiel 1. Entwicklungswerkzeuge für Abbild-basiertes Betriebssystem
Als Beispielbetriebssystem wird das in sysupdate.d(5) beschriebene hypothetische »foobarOS« verwandt. Die große Mehrheit der Benutzer von foobarOS benötigen keine Compiler, kein Bausystem, Debugger und andere solche Entwicklungswerkzeuge als Teil ihres Betriebssystems. Die Entwickler von foobarOS selbst benötigen die Verfügbarkeit der Entwicklungswerkzeuge. Daher muss foobarOS ein Systemerweiterungsabbild (siehe systemd-sysext(8)) bereitstellen, das diese Entwicklungswerkzeuge enthält, und dieses Abbild muss fest verzahnt mit dem zugrundeliegenden Betriebssystem aktualisiert werden. Dies ist ein wunderbarer Anwendungsfall für eine optionale Betriebssstemfunktionalität, daher wird sie als solche definiert:
# /usr/lib/sysupdate.d/devel.feature [Feature] Description=Entwicklungswerkzeuge Documentation=https://developer.example.com/foobarOS/getting-started Enabled=false
Obiges definiert die Funktionalität »devel« und deaktiviert sie standardmäßig. Jetzt wird eine Übertragung definiert, die das dieser Funktionalität zuordnet:
# /usr/lib/sysupdate.d/50-devel.transfer [Transfer] Features=devel ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_devel.raw.xz [Target] Type=regular-file Path=/var/lib/extensions MatchPattern=foobarOS_@v_devel.raw Mode=0444 InstancesMax=2
Mit diesen zwei Dateien wurde eine Funktionalität namens »devel« erstellt, die bei der Aktivierung die geeignete Version von »https://download.example.com/foobarOS_@v_devel.raw.xz« nach »/var/lib/extensions/foobarOS_@v_devel.raw« während jeder Betriebssystemaktualisierung herunterlädt und entpackt.
Die Entwickler von foobarOS können die Funktionalität »devel« auf ihren Maschinen durch Erstellung der folgenden Ergänzung aktivieren:
# /etc/sysupdate.d/devel.feature.d/enable.conf [Feature] Enabled=true
Beispiel 2. Proprietäre Treiber
Nehmen wir an, dass die Benutzer von foobarOS eine von der Firma MVISUAL hergestellte GPU verwenden. Aufgrund fehlender Dokumentation und Schwierigkeiten beim Nachkonstruieren (»Reverse Engineering«) der Hardware, können die Open-Source-Treiber für MVISUAL GPUs die verfügbare Graphik- und Rechenleistung nicht vernünftig ausnutzen. MVISUAL stellt einen proprietären Treiber für diese Karten bereit, der weiterverteilt werden darf und die Entwickler von foobarOS verteilen ihn weiter, um die Bedürfnisse ihrer Benutzer zu berücksichtigen.
Der Treiber MVISUAL enthält eine Reihe von verschiedenen Teilen, die zum Funktionieren installiert werden müssen: eine UKI-Ergänzung, um die Kernel-Befehlszeile zu konfigurieren, ein Initrd-System-Erweiterungsabbild, um das MVISUAL-Kernelmodul in die Initrd zu installieren und ein normales Systemerweiterungsabbild, um die proprietären OpenGL- und Vulkan-Benutzerraumtreiber hinzuzufügen. Alle diese sollten in der Version fest mit dem Kernbetriebssystem verzahnt werden.
Zuerst wird eine optionale Funktionalität names »mvisual-driver« definiert:
# /usr/lib/sysupdate.d/mvisual-driver.feature [Feature] Description=Proprietärer MVISUAL-GPU-Treiber Documentation=https://support.example.com/foobarOS/mvisual AppStream=https://metadata.example.com/mvisual-driver-%A.xml.gz
Beachten Sie, dass AppStream-Metadaten für diese Funktionalität definiert werden, da Software-Verwaltungsprogramme sie Endanwendern zeigen sollen. Als nächstes werden die entsprechenden Übertragungen definiert:
# /usr/lib/sysupdate.d/50-mvisual-userspace.transfer [Transfer] Features=mvisual-driver ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_mvisual_userspace.raw.xz [Target] Type=regular-file Path=/var/lib/extensions MatchPattern=foobarOS_@v_mvisual.raw Mode=0444 InstancesMax=2
# /usr/lib/sysupdate.d/70-mvisual-initrd.transfer [Transfer] Features=mvisual-driver ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_mvisual_initrd.raw.xz [Target] Type=regular-file Path=/EFI/Linux PathRelativeTo=boot MatchPattern=foobarOS_@v.efi.extra.d/foobarOS_mvisual.raw Mode=0444 InstancesMax=2
# /usr/lib/sysupdate.d/90-mvisual-addon.transfer [Transfer] Features=mvisual-driver ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_mvisual_addon.efi.xz [Target] Type=regular-file Path=/EFI/Linux PathRelativeTo=boot MatchPattern=foobarOS_@v.efi.extra.d/foobarOS_mvisual.addon.efi Mode=0444 InstancesMax=2
Beispiel 3. Schnittmenge von Funktionalitäten
Nehmen wir an, dass MVISUAL einen besonderen Werkzeugssatz veröffentlicht, der Distributionsentwicklern bei der Fehlersuche in Abstürzen in ihren proprietären Treibern hilft. Dazu wird eine Übertragung definiert:
# /usr/lib/sysupdate.d/50-mvisual-debugger.transfer [Transfer] RequisiteFeatures=devel mvisual-driver ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_devel.raw.xz [Target] Type=regular-file Path=/var/lib/extensions MatchPattern=foobarOS_@v_devel.raw Mode=0444 InstancesMax=2
Diese Übertragung wird nur verwandt, falls sowohl die Funktionalität »devel« als auch »mvisual-driver« aktiviert sind.
SIEHE AUCH¶
ANMERKUNGEN¶
- 1.
- AppStream-Katalog
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
systemd 257.1 |