Scroll to navigation

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

NUME

dnf5.conf-vendorpolicy-v1_1 - referință fișier pentru politica de schimbare a furnizorului DNF5 - v1.1

DESCRIERE

Acest document descrie structura și sintaxa fișierelor de configurare ale politicii de schimbare a furnizorului DNF5, care utilizează formatul versiunea 1.1.

Pentru informații generale despre fișierele de politici privind schimbarea furnizorului, consultați Referința fișierelor de politici privind schimbarea furnizorului DNF5 <#dnf5-vendor-change-policy-label>.

STRUCTURA FIȘIERULUI

Câmpuri obligatorii

Șir

Versiunea formatului fișierului de configurare.

Pentru acest format, trebuie să fie stabilită la „1.1”.

Acest câmp este obligatoriu și trebuie specificat la nivelul superior al fișierului TOML.

Exemplu:

version = '1.1'



Notă:

Pentru ca fișierul de configurare să aibă vreun efect asupra politicii de schimbare a furnizorilor, acesta trebuie să conțină cel puțin una dintre listele acceptate (vezi mai jos): outgoing_vendors, incoming_vendors, equivalent_vendors, outgoing_packages sau incoming_packages.

Dacă fișierul nu conține liste de furnizori, acesta va fi încărcat și versiunea sa va fi validată, dar nu va defini nicio regulă și nu va influența comportamentul gestionarului de furnizori.



Definiția listei furnizorilor

Următoarele liste de furnizori pot fi utilizate pentru a defini corespondențele între furnizori. Toate listele sunt opționale și pot fi combinate în mod liber. Toate condițiile sunt evaluate împreună.

[[outgoing_vendors]]
Matrice de tabele

Lista furnizorilor de la care sunt permise modificările (furnizori de pachete de ieșire).

[[incoming_vendors]]
Matrice de tabele

Lista furnizorilor de la care sunt permise modificările (furnizori de pachete de intrare).

[[equivalent_vendors]]
Matrice de tabele

Lista furnizorilor care sunt echivalenți între ei. Se permit schimbări în ambele sensuri între toți furnizorii din această listă.

Notă:

equivalent_vendors este, de fapt, o notare prescurtată. Aceasta echivalează cu enumerarea acelorași furnizori atât în outgoing_vendors, cât și în incoming_vendors.



Important:

Schimbarea furnizorului în timpul înlocuirii pachetului este permisă numai dacă ambele condiții sunt îndeplinite simultan:
  • Furnizorul pachetului care urmează să fie eliminat (cel instalat) este menționat în outgoing_vendors sau equivalent_vendors (sau lipsesc atât outgoing_vendors, cât și equivalent_vendors, ceea ce permite orice furnizor)
  • Furnizorul pachetului (nou) din lista „incoming” este menționat în incoming_vendors sau equivalent_vendors (sau ambele liste, incoming_vendors și equivalent_vendors, lipsesc, ceea ce permite orice furnizor)



Câmpuri de introducere a datelor furnizorului

Fiecare intrare din [[outgoing_vendors]], [[incoming_vendors]] sau [[equivalent_vendors]] poate conține următoarele câmpuri:

Șir

Câmp obligatoriu.

Numele furnizorului sau modelul pentru potrivire.

Șir

Câmp opțional.

Metoda de comparare care trebuie utilizată la compararea șirurilor de caractere ale furnizorilor.

Implicit: "EXACT"

Valorile acceptate:

  • "EXACT" - potrivire exactă (se ține cont de diferența dintre majuscule și minuscule)
  • "IEXACT" - potrivire exactă (NU se ține cont de diferența dintre majuscule și minuscule)
  • "GLOB" - model global (se ține cont de diferența dintre majuscule și minuscule)
  • "IGLOB" - model global (NU se ține cont de diferența dintre majuscule și minuscule)
  • "REGEX" - expresie regulată (se ține cont de diferența dintre majuscule și minuscule)
  • "IREGEX" - expresie regulată (NU se ține cont de diferența dintre majuscule și minuscule)
  • "CONTAINS" - conține șirul (se ține cont de diferența dintre majuscule și minuscule)
  • "ICONTAINS" - conține șirul (NU se ține cont de diferența dintre majuscule și minuscule)
  • "STARTSWITH" - începe cu (se ține cont de diferența dintre majuscule și minuscule)
  • "ISTARTSWITH" - începe cu (NU se ține cont de diferența dintre majuscule și minuscule)
  • "ENDSWITH" - se termină cu (se ține cont de diferența dintre majuscule și minuscule)
  • "IENDSWITH" - se termină cu (sNU e ține cont de diferența dintre majuscule și minuscule)
  • "NOT_EXACT", "NOT_IEXACT", "NOT_GLOB", "NOT_IGLOB", "NOT_CONTAINS", "NOT_ICONTAINS" - variantele negate

Boolean

Câmp opțional.

Dacă true, furnizorul este exclus din regulă. Acest lucru este util pentru definirea excepțiilor de la reguli mai generale. Regulile (înregistrările furnizorilor) sunt procesate în ordinea în care sunt definite. Aceasta înseamnă că o regulă de excludere trebuie să apară înaintea regulilor din care furnizorul trebuie exclus.

Implicit: false


FILTRAREA PACHETELOR

Politicile privind schimbarea furnizorului pot fi restricționate în continuare, astfel încât să se aplice numai anumitor pachete, prin utilizarea filtrelor de pachete. Acestea sunt opționale și permit un control detaliat asupra pachetelor cărora li se permite schimbarea furnizorului.

[[outgoing_packages]]
Matrice de tabele

Lista filtrelor de pachete care restricționează pachetele de ieșire (instalate) cărora li se permite să schimbe furnizorul. Dacă este omisă, tuturor pachetelor li se permite să schimbe furnizorul actual.

[[incoming_packages]]
Matrice de tabele

Lista filtrelor de pachete care restricționează pachetele (noi) primite care pot fi instalate cu o schimbare a furnizorului. Dacă este omisă, toate pachetele pot fi instalate, indiferent de furnizor.


Câmpuri de introducere a datelor pentru filtrarea pachetelor

Fiecare intrare din [[outgoing_packages]] sau [[incoming_packages]] poate conține:

Matrice de tabele

Câmp obligatoriu.

Lista condițiilor de filtrare care trebuie îndeplinite în totalitate pentru ca pachetul să fie vizat de această regulă. Fiecare filtru este un tabel cu următoarele câmpuri:

Șir

Câmp obligatoriu.

Atributul pachetului pe care se aplică filtrarea.

Valorile acceptate:

  • "name" - numele pachetului
  • "source_name" - numele pachetului sursă
  • "evr" - șirul „Epoch-Version-Release”
  • "epoch" - numărul epocii
  • "version" - șirul versiunii
  • "release" - șirul lansării
  • "arch" - arhitectura pachetului
  • "repoid" - ID-ul depozitului
  • "cmdline_repo" - dacă pachetul provine dintr-un depozit accesibil prin linia de comandă (boolean)

Șir

Câmp obligatoriu.

Valoarea cu care trebuie să se facă comparația.

  • Pentru filtrul cmdline_repo, folosiți „true”/„1” sau „false”/„0”
  • Pentru filtrul epoch, utilizați un șir numeric (de exemplu, „0”, „1”)
  • Pentru celelalte filtre, utilizați valorile corespunzătoare ale șirurilor de caractere

Șir

Câmp opțional.

Metoda de comparare(potrivire) care trebuie utilizată.

Implicit: "EXACT"

Pentru filtrele bazate pe șiruri de caractere (name, source_name , arch, repoid):

Aceleași valori ca pentru comparatorul furnizorului: EXACT, NOT_EXACT, IEXACT, NOT_IEXACT, CONTAINS, NOT_CONTAINS, ICONTAINS, NOT_ICONTAINS, STARTSWITH, ISTARTSWITH, ENDSWITH, IENDSWITH, REGEX, IREGEX, GLOB, NOT_GLOB, IGLOB, NOT_IGLOB

Pentru filtrele bazate pe versiune (evr, epoch, version, release):

  • "EXACT" - egal cu
  • "NOT_EXACT" - neegal cu
  • "GT" - mai mare decât
  • "GTE" - mai mare sau egal cu
  • "LT" - mai mic decât
  • "LTE" - mai mic sau egal cu

Notă:

Filtrele bazate pe versiune utilizează o semantică adecvată de comparare a versiunilor RPM, în loc de o comparație lexicală a șirurilor de caractere. Acest lucru asigură ordonarea corectă a versiunilor (de exemplu, „1.10” > „1.9”).


Notă:

Filtrul cmdline_repo acceptă doar comparatorul „EXACT”.



Boolean

Câmp opțional.

Dacă este true, pachetele care corespund filtrelor sunt excluse din regulă. Acest lucru este util pentru definirea excepțiilor. Regulile de excludere trebuie să apară înaintea regulilor din care trebuie excluse pachetele.

Implicit: false


EXEMPLE

Exemplul 1: Permite schimbarea de la „Furnizorul A” la „Furnizorul B”

Acest exemplu ilustrează configurația minimă necesară, care permite trecerea de la „Furnizorul A” la „Furnizorul B”, dar nu și invers.

version = '1.1'
[[outgoing_vendors]]
vendor = 'FurnizorA'
[[incoming_vendors]]
vendor = 'FurnizorB'


Exemplul 2: Permite schimbarea oricărui furnizor cu „Furnizorul meu de încredere”

Acest exemplu ilustrează permisiunea de a schimba furnizorul cu „Furnizorul meu de încredere”, dar nu și invers. Lipsa elementului outgoing_vendors înseamnă că orice furnizor este permis.

version = '1.1'
[[incoming_vendors]]
vendor = 'Furnizorul meu de încredere'


Exemplul 3: Furnizori echivalenți

Acest exemplu ilustrează relații de echivalență reciprocă între furnizori, care permit schimbări în ambele sensuri.

version = '1.1'
# Toți furnizorii de mai jos sunt echivalenți
[[equivalent_vendors]]
vendor = 'Fedora Project'
[[equivalent_vendors]]
vendor = 'Red Hat'
comparator = 'ISTARTSWITH'
[[equivalent_vendors]]
vendor = 'CentOS'
comparator = 'ISTARTSWITH'


Exemplul 4: Furnizori echivalenți cu o excludere

Acest exemplu prezintă o politică privind furnizorii pentru furnizorii asociați cu SUSE, cu o excepție pentru openSUSE Build Service.

version = '1.1'
# Toți furnizorii de mai jos sunt echivalenți între ei, cu excepția celor excluși
[[equivalent_vendors]]
vendor = 'openSUSE Build Service'
comparator = 'ISTARTSWITH'
exclude = true
[[equivalent_vendors]]
vendor = 'SUSE'
comparator = 'ISTARTSWITH'
[[equivalent_vendors]]
vendor = 'openSUSE'
comparator = 'ISTARTSWITH'


Exemplul 5: Combinarea furnizorilor echivalenți cu furnizorii noi

Acest exemplu ilustrează combinarea equivalent_vendors cu incoming_vendors, o funcționalitate introdusă în versiunea „1.1”. „Primul furnizor” și „Al doilea furnizor” sunt echivalente între ele, iar ambele pot fi înlocuite cu „Al treilea furnizor”.

version = '1.1'
[[equivalent_vendors]]
vendor = 'Primul furnizor'
[[equivalent_vendors]]
vendor = 'Al doilea furnizor'
[[incoming_vendors]]
vendor = 'Al treilea furnizor'


Exemplul 6: Permite pachetele pentru linia de comandă de la orice furnizor

Acest exemplu permite instalarea pachetelor din depozitul din linia de comandă al oricărui furnizor, ocolind restricțiile impuse furnizorului.

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

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


Exemplul 7: Pachete pentru linia de comandă cu excluderi

Acest exemplu permite instalarea pachetelor din depozitul din linia de comandă de la orice furnizor, cu excepția pachetelor ale căror nume încep cu „pachetul-meu”.

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

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


Exemplul 8: Permite trecerea de la orice furnizor la unul specific prin filtrarea pachetelor

Acest exemplu permite schimbarea furnizorului cu „Furnizorul meu”, dar numai pentru pachetele primite al căror nume de pachet sursă este „pachetul-meu” și a căror versiune este mai mare sau egală cu „2.0”.

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

{ filter = 'source_name', value = 'pachetul-meu' },
{ filter = 'version', value = '2.0', comparator = 'GTE' } ] [[incoming_vendors]] vendor = 'Furnizorul meu'


CONSULTAȚI ȘI

  • Referință fișier Politica de schimbare a furnizorului DNF5 <#dnf5-vendor-change-policy-label>
  • Referință fișier Politica de schimbare a furnizorului DNF5 - v1.0 <#dnf5-vendor-change-policy-v1-0-label>
  • dnf5-conf(5), Referință configurare DNF5 <#dnf5-conf-label>

Autor

A se vedea AUTHORS.md în distribuția sursei dnf5.

Drepturi de autor

Contribuitori la proiectul dnf5.

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

19 februarie 2026