Provided by: manpages-de_4.26.0-1_all 

BEZEICHNUNG
sysupdate.features - Definitionsdateien für Optionale Funktionalitäten
ÜBERSICHT
/etc/sysupdate.d/*.feature
/run/sysupdate.d/*.feature
/usr/local/lib/sysupdate.d/*.feature
/usr/lib/sysupdate.d/*.feature
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=
Eine kurze, menschenlesbare Beschreibung dieser Funktionalität. Dies kann als Kennzeichnung für diese
Funktionalität verwandt werden, so dass die Zeichenkette mit einer Bedeutung belegt werden sollte,
die sie von den in sysupdate.d/ verfügbaren Funktionalitäten hervorhebt.
Hinzugefügt in Version 257.
Documentation=
Eine URL, die dem Benutzer gezeigt werden kann, um die Funktionalität zu dokumentieren. Diese
Einstellung unterstützt Kennzeichnerexpansionen; nachfolgend finden Sie die unterstützten
Kennzeichner.
Hinzugefügt in Version 257.
AppStream=
Eine URL zu einer AppStream catalog[1]-XML-Datei. Dies kann von Software-Verwaltungsprogrammen (wie
»GNOME Software« oder »KDE Discover«) verwandt werden, um umfangreiche Metadaten über diese
Funktionalität bereitzustellen. Dazu gehören Namen, Verlaufsprotokolle, Icons und weiteres. Diese
Einstellung unterstützt die Expansion von Kennzeichnern; die unterstützten Kennzeichner werden weiter
unten dargestellt.
Hinzugefügt in Version 257.
Enabled=
Gibt an, ob diese Funktionalität (nicht) aktiviert ist. Falls nicht festgelegt, ist diese
Funktionalität standardmäßig deaktiviert.
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 │ Dies ist entweder /tmp oder der Pfad, auf │
│ │ Dateien │ 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 │ Dies ist entweder /var/tmp oder der Pfad, │
│ │ dauerhafte temporäre Dateien │ 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
systemd(1), systemd-sysupdate(8), sysupdate.d(5)
ANMERKUNGEN
1. AppStream-Katalog
https://www.freedesktop.org/software/appstream/docs/chap-CatalogData.html
Ü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.3 SYSUPDATE.FEATURES(5)