SYSUPDATE.FEATURES(5) sysupdate.features SYSUPDATE.FEATURES(5) BEZEICHNUNG sysupdate.features - Definitionsdateien fur Optionale Funktionalitaten UBERSICHT /etc/sysupdate.d/*.feature /run/sysupdate.d/*.feature /usr/local/lib/sysupdate.d/*.feature /usr/lib/sysupdate.d/*.feature BESCHREIBUNG >>Optionale Funktionalitaten<< sind Funktionalitaten, die durch systemd-sysupdate(8) bereitgestellt werden, die es Distributionen erlauben, einen Satz von sysupdate.d(5)-Ubertragungsdefinitionen zu definieren, die dazu gedacht sind, vom Systemadministrator aktiviert oder deaktiviert zu werden. Wenn eine Funktionalitat aktiviert ist, werden zugehorige Ubertragungen betrachtet, wenn auf Aktualisierungen gepruft und diese heruntergeladen werden, wenn Datentrager bereinigt werden und in allen anderen Situationen. Effektiv werden Ubertragungen, die zu einer Funktionalitat gehoren, immer fest mit dem Rest ihres Ziels verzahnt aktualisiert. Dies ist der Hauptunterschied zwischen einer Optionalen Funktionalitat und der Komponente systemd-sysupdate(8). Wenn eine Funktionalitat deaktiviert ist, werden ihre Ubertragungen nicht betrachtet, wenn auf Aktualisierungen gepruft und diese heruntergeladen werden, aber systemd-sysupdate(8) wird sie weiterhin betrachten, wenn Datentrager bereinigt werden und in anderen Situationen, bei denen die Eigentumerschaft uber vorher heruntergeladene Systemressourcen bestimmt werden muss. systemd-sysupdate(8) wird alle Instanzen der Ubertragungen der Funktionalitat bereinigen, wenn sie deaktiviert wird und sie damit effektiv deinstallieren. Optionale Funktionalitaten werden durch Dateien sysupdate.d/*.feature beschrieben, die nachfolgend definiert sind. Ubertragungen konnen mit der Einstellung Features= erklaren, dass sie zu einer Funktionalitat gehoren. Funktionalitatsdefinitionen unterstutzen Erganzungsdateien, die am haufigsten dazu verwandt werden, die Einstellung Enabled= ausser Kraft zu setzen. Sie konnen auch maskiert werden, um die Verfugbarkeit der Funktionalitat komplett zu verstecken. Jede Datei *.feature enthalt einen Abschnitt: >>[Feature]<<. [FEATURE]-ABSCHNITTOPTIONEN Dieser Abschnitt beschreibt die allgemeinen Eigenschaften dieser Funktionalitat. Description= Eine kurze, menschenlesbare Beschreibung dieser Funktionalitat. Dies kann als Kennzeichnung fur diese Funktionalitat verwandt werden, so dass die Zeichenkette mit einer Bedeutung belegt werden sollte, die sie von den in sysupdate.d/ verfugbaren Funktionalitaten hervorhebt. Hinzugefugt in Version 257. Documentation= Eine URL, die dem Benutzer gezeigt werden kann, um die Funktionalitat zu dokumentieren. Diese Einstellung unterstutzt Kennzeichnerexpansionen; nachfolgend finden Sie die unterstutzten Kennzeichner. Hinzugefugt 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 uber diese Funktionalitat bereitzustellen. Dazu gehoren Namen, Verlaufsprotokolle, Icons und weiteres. Diese Einstellung unterstutzt die Expansion von Kennzeichnern; die unterstutzten Kennzeichner werden weiter unten dargestellt. Hinzugefugt in Version 257. Enabled= Gibt an, ob diese Funktionalitat (nicht) aktiviert ist. Falls nicht festgelegt, ist diese Funktionalitat standardmassig deaktiviert. Hinzugefugt in Version 257. KENNZEICHNER In den Einstellungen Documentation= und AppStream= konnen Kennzeichner verwandt werden. Es werden die Folgenden verstanden: Tabelle 1. Verfugbare 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 fur | | | | ConditionArchitecture= in systemd.unit(5) | | | | definierten Architekturen fur die | | | | vollstandige 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 aufgelost. Siehe | | | | os-release(5) fur weitere Informationen. | +-------------+--------------------------------+-------------------------------------------+ |"%b" | Boot-Kennung | Die Boot-Kennung des laufenden Systems, | | | | formatiert als Zeichenkette. Siehe | | | | random(4) fur 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 aufgelost. Siehe | | | | os-release(5) fur 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) fur 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) fur | | | | weitere Informationen. | +-------------+--------------------------------+-------------------------------------------+ |"%o" | Betriebssystemkennung | Die Betriebssystemkennung des laufenden | | | | Systems, wie aus dem Feld ID= in | | | | /etc/os-release ausgelesen. Siehe | | | | os-release(5) fur weitere Informationen. | +-------------+--------------------------------+-------------------------------------------+ |"%v" | Kernelveroffentlichung | 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) fur 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) fur weitere Informationen. | +-------------+--------------------------------+-------------------------------------------+ |"%T" | Verzeichnis fur temporare | Dies ist entweder /tmp oder der Pfad, auf | | | Dateien | den >>$TMPDIR<<, >>$TEMP<< oder >>$TMP<< | | | | gesetzt ist. (Beachten Sie, dass das | | | | Verzeichnis ohne abschliessenden | | | | Schragstrich angegeben werden kann.) | +-------------+--------------------------------+-------------------------------------------+ |"%V" | Verzeichnis fur grossere und | Dies ist entweder /var/tmp oder der Pfad, | | | dauerhafte temporare Dateien | auf den >>$TMPDIR<<, >>$TEMP<< oder | | | | >>$TMP<< gesetzt ist. (Beachten Sie, dass | | | | das Verzeichnis ohne abschliessenden | | | | Schragstrich angegeben werden kann.) | +-------------+--------------------------------+-------------------------------------------+ |"%%" | Einzelnes Prozentzeichen | Verwenden Sie >>%%<< anstelle von >>%<<, | | | | um ein einzelnes Prozentzeichen | | | | anzugeben. | +-------------+--------------------------------+-------------------------------------------+ BEISPIELE Beispiel 1. Entwicklungswerkzeuge fur Abbild-basiertes Betriebssystem Als Beispielbetriebssystem wird das in sysupdate.d(5) beschriebene hypothetische >>foobarOS<< verwandt. Die grosse Mehrheit der Benutzer von foobarOS benotigen keine Compiler, kein Bausystem, Debugger und andere solche Entwicklungswerkzeuge als Teil ihres Betriebssystems. Die Entwickler von foobarOS selbst benotigen die Verfugbarkeit der Entwicklungswerkzeuge. Daher muss foobarOS ein Systemerweiterungsabbild (siehe systemd-sysext(8)) bereitstellen, das diese Entwicklungswerkzeuge enthalt, und dieses Abbild muss fest verzahnt mit dem zugrundeliegenden Betriebssystem aktualisiert werden. Dies ist ein wunderbarer Anwendungsfall fur eine optionale Betriebssstemfunktionalitat, 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 Funktionalitat >>devel<< und deaktiviert sie standardmassig. Jetzt wird eine Ubertragung definiert, die das dieser Funktionalitat 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 Funktionalitat 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<< wahrend jeder Betriebssystemaktualisierung herunterladt und entpackt. Die Entwickler von foobarOS konnen die Funktionalitat >>devel<< auf ihren Maschinen durch Erstellung der folgenden Erganzung aktivieren: # /etc/sysupdate.d/devel.feature.d/enable.conf [Feature] Enabled=true Beispiel 2. Proprietare 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, konnen die Open-Source-Treiber fur MVISUAL GPUs die verfugbare Graphik- und Rechenleistung nicht vernunftig ausnutzen. MVISUAL stellt einen proprietaren Treiber fur diese Karten bereit, der weiterverteilt werden darf und die Entwickler von foobarOS verteilen ihn weiter, um die Bedurfnisse ihrer Benutzer zu berucksichtigen. Der Treiber MVISUAL enthalt eine Reihe von verschiedenen Teilen, die zum Funktionieren installiert werden mussen: eine UKI-Erganzung, 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 proprietaren OpenGL- und Vulkan-Benutzerraumtreiber hinzuzufugen. Alle diese sollten in der Version fest mit dem Kernbetriebssystem verzahnt werden. Zuerst wird eine optionale Funktionalitat names >>mvisual-driver<< definiert: # /usr/lib/sysupdate.d/mvisual-driver.feature [Feature] Description=Proprietarer 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 fur diese Funktionalitat definiert werden, da Software-Verwaltungsprogramme sie Endanwendern zeigen sollen. Als nachstes werden die entsprechenden Ubertragungen 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 Funktionalitaten Nehmen wir an, dass MVISUAL einen besonderen Werkzeugssatz veroffentlicht, der Distributionsentwicklern bei der Fehlersuche in Absturzen in ihren proprietaren Treibern hilft. Dazu wird eine Ubertragung 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 Ubertragung wird nur verwandt, falls sowohl die Funktionalitat >>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 UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . systemd 260.2 SYSUPDATE.FEATURES(5)