Scroll to navigation

DNF5.CONF-VENDORPOLICY-V1_1(5) dnf5 DNF5.CONF-VENDORPOLICY-V1_1(5)

BEZEICHNUNG

dnf5.conf-vendorpolicy-v1_1 – Referenz zur DNF5-Richtliniendatei zu Anbieteränderungen – Version 1.1

BESCHREIBUNG

Dieses Dokument beschreibt die Struktur und Syntax der DNF5-Anbieteränderungsrichtlinien-Konfigurationsdateien im Version 1.1-Format.

Allgemeine Informationen zu Richtliniendateien für Anbieteränderungen finden Sie in der Referenz zur DNF5-Richtliniendatei zu Anbieteränderungen <#dnf5-vendor-change-policy-label>.

DATEISTRUKTUR

Erforderliche Felder

Zeichenkette

Version des Formats der Konfigurationsdatei.

Die Version muss für dieses Format auf "1.1" gesetzt sein.

Dieses Feld ist obligatorisch und muss auf oberster Ebene der TOML-Datei angegeben werden.

Beispiel:

version = '1.1'



Hinweis:

Damit die Konfigurationsdatei Einfluss auf die Richtlinie zum Anbieterwechsel hat, muss sie mindestens eine der unterstützten Listen enthalten (siehe unten): outgoing_vendors, incoming_vendors, equivalent_vendors, outgoing_packages oder incoming_packages.

Falls die Datei keine Listen enthält, wird sie geladen und die Version geprüft, aber da sie keine Regeln definiert, wird sie das Verhalten von Anbieteränderungen nicht beeinflussen.



Definition der Anbieterzuordnung

Die folgenden Anbieterlisten können zum Definieren von Anbieterzuordnungen verwendet werden. Alle Listen sind optional und können frei miteinander kombiniert werden. Alle Bedingungen werden gemeinsam ausgewertet.

[[outgoing_vendors]]
Tabellenfeld

Liste der Anbieter, für die Änderungen erlaubt sind (ausgehende Paketanbieter).

[[incoming_vendors]]
Tabellenfeld

Liste der Anbieter, die für Änderungen herangezogen werden können (eingehende Paketanbieter).

[[equivalent_vendors]]
Tabellenfeld

Liste gleichwertiger Anbieter. Änderungen sind in beide Richtungen zwischen allen Anbietern in dieser Liste möglich.

Hinweis:

equivalent_vendors ist eigentlich eine Kurzform. Sie ist gleichbedeutend mit der Auflistung der gleichen Anbieter in outgoing_vendors und incoming_vendors.



Wichtig:

Eine Anbieteränderung während der Ersetzung von Paketen ist nur dann zulässig, wenn beide Bedingungen gleichzeitig erfüllt sind:
  • Der Anbieter des ausgehenden (installierten) Pakets ist in outgoing_vendors oder equivalent_vendors aufgeführt (oder fehlt sowohl in outgoing_vendors als auch in equivalent_vendors, wodurch jeder Anbieter erlaubt ist)
  • Der Anbieter des eingehenden (neuen) Pakets ist in incoming_vendors oder equivalent_vendors aufgeführt (oder fehlt sowohl in incoming_vendors als auch in equivalent_vendors, wodurch jeder Anbieter erlaubt ist)



Felder für Anbietereinträge

Jeder Eintrag in [[outgoing_vendors]], [[incoming_vendors]] oder [[equivalent_vendors]] kann die folgenden Felder enthalten:

Zeichenkette

Erforderliches Feld.

Anbietername oder Muster für den Abgleich.

Zeichenkette

Optionales Feld.

Die beim Vergleich von Anbieterzeichenketten anzuwendende Vergleichsmethode.

Vorgabe: 'EXACT'

Unterstützte Werte:

  • 'EXACT' – exakte Übereinstimmung (Groß-/Kleinschreibung wird berücksichtigt)
  • 'IEXACT' – exakte Übereinstimmung (Groß-/Kleinschreibung wird nicht berücksichtigt)
  • 'GLOB' – Glob-Muster (Groß-/Kleinschreibung wird berücksichtigt)
  • 'IGLOB' – Glob-Muster (Groß-/Kleinschreibung wird nicht berücksichtigt)
  • 'REGEX' – regulärer Ausdruck (Groß-/Kleinschreibung wird berücksichtigt)
  • 'IREGEX' – regulärer Ausdruck (Groß-/Kleinschreibung wird nicht berücksichtigt)
  • 'CONTAINS' – enthält die Zeichenkette (Groß-/Kleinschreibung wird berücksichtigt)
  • 'ICONTAINS' – enthält die Zeichenkette (Groß-/Kleinschreibung wird nicht berücksichtigt)
  • 'STARTSWITH' – beginnt mit (Groß-/Kleinschreibung wird berücksichtigt)
  • 'ISTARTSWITH' – beginnt mit (Groß-/Kleinschreibung wird nicht berücksichtigt)
  • 'ENDSWITH' – endet mit (Groß-/Kleinschreibung wird berücksichtigt)
  • 'IENDSWITH' – endet mit (Groß-/Kleinschreibung wird nicht berücksichtigt)
  • 'NOT_EXACT', 'NOT_IEXACT', 'NOT_GLOB', 'NOT_IGLOB', 'NOT_CONTAINS', 'NOT_ICONTAINS' – negierte Varianten

Boolesch

Optionales Feld.

Falls true, wird der Anbieter von der Regel ausgenommen. Dies ist nützlich, um Ausnahmen von allgemeineren Regeln zu definieren. Regeln (Anbietereinträge) werden in der Reihenfolge ihrer Definition verarbeitet. Das bedeutet, dass eine Ausschlussregel vor den Regeln stehen muss, von denen der Anbieter ausgenommen werden soll.

Vorgabe: false


Paketfilterung

Die Richtlinien für Anbieteränderungen können mithilfe von Paketfiltern weiter eingeschränkt werden, so dass sie nur für bestimmte Pakete gelten. Diese Filter sind optional und ermöglichen eine detaillierte Kontrolle darüber, für welche Pakete eine Anbieteränderung zulässig ist.

[[outgoing_packages]]
Tabellenfeld

Liste der Paketfilter, die bestimmen, für welche ausgehenden (installierten) Pakete Anbieterwechsel erlaubt sind. Falls weggelassen, ist ein Wechsel des derzeitigen Anbieters für alle Pakete erlaubt.

[[incoming_packages]]
Tabellenfeld

Liste der Paketfilter, die einschränken, welche neuen Pakete bei einer Anbieteränderung installiert werden dürfen. Wird dieser Filter weggelassen, dürfen alle Pakete unabhängig vom Anbieter installiert werden.


Felder für Paketfiltereinträge

Jeder Eintrag in [[outgoing_packages]] oder [[incoming_packages]] darf Folgendes enthalten:

Tabellenfeld

Erforderliches Feld.

Liste der Filterbedingungen, die alle erfüllt sein müssen, damit das Paket von dieser Regel betroffen ist. Jeder Filter ist eine Tabelle mit den folgenden Feldern:

Zeichenkette

Erforderliches Feld.

Das Paketattribut, anhand dessen gefiltert werden soll.

Unterstützte Werte:

  • name – Paketname
  • source_name – Quellpaketname
  • evr – Epoche-Version-Release-Zeichenkette
  • epoch – Epochennummer
  • version – Versionszeichenkette
  • release – Release-Zeichenkette
  • arch – Paketarchitektur
  • repoid – Paketquellen-ID
  • cmdline_repo – gibt an, ob das Paket über die Befehlszeile installiert wurde (boolesch)

Zeichenkette

Erforderliches Feld.

Der Wert, mit dem verglichen werden soll.

  • Für den Filter cmdline_repo verwenden Sie 'true'/'1' oder 'false'/'0'
  • Für den Filter epoch verwenden Sie eine numerische Zeichenkette (zum Beispiel '0' oder '1')
  • Für andere Filter verwenden Sie die entsprechenden Zeichenkettenwerte

Zeichenkette

Optionales Feld.

Die anzuwendende Vergleichsmethode.

Vorgabe: 'EXACT'

Für zeichenkettenbasierte Filter (name, source_name, arch, repoid):

Gleiche Werte wie für den Anbietervergleich: EXACT, NOT_EXACT, IEXACT, NOT_IEXACT, CONTAINS, NOT_CONTAINS, ICONTAINS, NOT_ICONTAINS, STARTSWITH, ISTARTSWITH, ENDSWITH, IENDSWITH, REGEX, IREGEX, GLOB, NOT_GLOB, IGLOB, NOT_IGLOB

Für versionsbasierte Filter (evr, epoch, version, release):

  • 'EXACT' – gleich
  • 'NOT_EXACT' – ungleich
  • 'GT' – größer als
  • 'GTE' – größer als oder gleich
  • 'LT' – kleiner als
  • 'LTE' – kleiner als oder gleich

Hinweis:

Versionsbasierte Filter verwenden die korrekte Semantik des RPM-Versionsvergleichs anstelle eines lexikalischen Zeichenkettenvergleichs. Dies gewährleistet die korrekte Versionsreihenfolge (zum Beispiel »1.10« > »1.9«).


Hinweis:

Der cmdline_repo-Filter unterstützt nur den 'EXACT'-Vergleich.



Boolesch

Optionales Feld.

Wenn true, werden Pakete, die den Filtern entsprechen, von der Regel ausgeschlossen. Dies ist nützlich, um Ausnahmen zu definieren. Ausschlussregeln müssen vor den Regeln stehen, von denen Pakete ausgeschlossen werden sollen.

Vorgabe: false


BEISPIELE

Beispiel 1: Änderung von »AnbieterA« zu »AnbieterB« erlauben

Dieses Beispiel zeigt die minimal erforderliche Konfiguration, die eine Änderung von »AnbieterA« zu »AnbieterB« erlaubt, jedoch nicht umgekehrt.

version = '1.1'
[[outgoing_vendors]]
vendor = 'AnbieterA'
[[incoming_vendors]]
vendor = 'AnbieterB'


Beispiel 2: Änderung von einem beliebigen Anbieter zu »Mein vertrauenswürdiger Anbieter« erlauben

Dieses Beispiel zeigt, wie eine Änderung von einem beliebigen Anbieter zu »Mein vertrauenswürdiger Anbieter« erlaubt wird, jedoch nicht umgekehrt. Wenn outgoing_vendors fehlt, bedeutet dies, dass alle Anbieter erlaubt sind.

version = '1.1'
[[incoming_vendors]]
vendor = 'Mein vertrauenswürdiger Anbieter'


Beispiel 3: Gleichwertige Anbieter

Dieses Beispiel zeigt Anbieter, die einander gleichwertig sind und Änderungen in beide Richtungen ermöglichen.

version = '1.1'
# Alle folgenden Anbieter sind einander gleichwertig
[[equivalent_vendors]]
vendor = 'Fedora Project'
[[equivalent_vendors]]
vendor = 'Red Hat'
comparator = 'ISTARTSWITH'
[[equivalent_vendors]]
vendor = 'CentOS'
comparator = 'ISTARTSWITH'


Beispiel 4: Gleichwertige Anbieter mit einem Ausschluss

Dieses Beispiel zeigt eine Anbieterrichtlinie für SUSE-bezogene Anbieter mit einer Ausnahme für den »openSUSE Build Service«.

version = '1.1'
# Alle folgenden Anbieter sind gleichwertig,
# außer jene, die ausgeschlossen sind
[[equivalent_vendors]]
vendor = 'openSUSE Build Service'
comparator = 'ISTARTSWITH'
exclude = true
[[equivalent_vendors]]
vendor = 'SUSE'
comparator = 'ISTARTSWITH'
[[equivalent_vendors]]
vendor = 'openSUSE'
comparator = 'ISTARTSWITH'


Beispiel 5: Kombination von gleichwertigen Anbietern mit eingehenden Anbietern

Dieses Beispiel demonstriert die Kombination von equivalent_vendors mit incoming_vendors, einer Funktion, die in Version "1.1" eingeführt wurde. »Erster Anbieter« und »Zweiter Anbieter" sind gegenseitig gleichwertig und können beide zu »Dritter Anbieter« geändert werden.

version = '1.1'
[[equivalent_vendors]]
vendor = 'Erster Anbieter'
[[equivalent_vendors]]
vendor = 'Zweiter Anbieter'
[[incoming_vendors]]
vendor = 'Dritter Anbieter'


Beispiel 6: Wechsel zu beliebigen Anbietern bei über die Befehlszeile installierten Paketen

Dieses Beispiel erlaubt die bei über die Befehlszeile installierten Paketen den Wechsel zu jedem Anbieter, wobei Anbietereinschränkungen umgangen werden.

version = '1.1'
[[incoming_packages]]
filters = [

{ filter = 'cmdline_repo', value = 'true' } ]


Beispiel 7: Über die Befehlszeile installierte Pakete mit Ausschluss

Dieses Beispiel ermöglicht bei über die Befehlszeile installierten Paketen den Wechsel zu beliebigen Anbietern, außer Paketen, deren Namen mit »meinpaket« beginnen.

version = '1.1'
[[incoming_packages]]
filters = [

{ filter = 'name', value = 'meinpaket', comparator = 'STARTSWITH' } ] exclude = true [[incoming_packages]] filters = [
{ filter = 'cmdline_repo', value = 'true' } ]


Beispiel 8: Änderung von einem beliebigen Anbieter zu einem bestimmten Anbieter mit Paketfilterung erlauben

Dieses Beispiel ermöglicht einen Wechsel von einem beliebigen Anbieter zu »Mein Anbieter«, jedoch nur für eingehende Pakete, deren Quellpaketname »meinpaket« lautet und deren Version größer oder gleich »2.0« ist.

version = '1.1'
[[incoming_packages]]
filters = [

{ filter = 'source_name', value = 'meinpaket' },
{ filter = 'version', value = '2.0', comparator = 'GTE' } ] [[incoming_vendors]] vendor = 'Mein Anbieter'


SIEHE AUCH

  • Referenz zur DNF5-Richtliniendatei zu Anbieteränderungen – <#dnf5-vendor-change-policy-v--label>
  • Referenz zur DNF5-Richtliniendatei zu Anbieteränderungen – Version 1.0 <#dnf5-vendor-change-policy-v1-0-label>
  • dnf5.conf(5), DNF5-Konfigurationsreferenz <#dnf5-conf-label>

Autor

Siehe AUTHORS.md in der dnf5-Quelldistribution.

Copyright

Mitwirkende am DNF5-Projekt.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> 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.

19. Februar 2026