DNF5-CACHING(7) dnf5 DNF5-CACHING(7)

dnf5-caching - stocare în cache

Această pagină își propune să ofere o prezentare generală a diferitelor instrumente, cum ar fi opțiunile de configurare, parametrii din linia de comandă și comenzile, disponibile în DNF5 pentru manipularea datelor din cache și scenariile asociate acestora.

Următoarea structură de directoare ilustrează un director tipic de cache DNF5:

/var/cache/libdnf5/
├── fedora-*
│   ├── metalink.xml
│   ├── repodata
│   │   ├── *-comps-Everything.x86_64.xml
│   │   ├── *-primary.xml.zck
│   │   └── repomd.xml
│   └── solv
│       ├── fedora-group.solvx
│       └── fedora.solv
├── temporary_files.toml
└── updates-*
    ├── metalink.xml
    ├── packages
    │   └── bash-5.2.21-1.fc38.x86_64.rpm
    ├── repodata
    │   ├── *-primary.xml.zck
    │   ├── *-updateinfo.xml.zck
    │   ├── *-comps-Everything.x86_64.xml.gz
    │   └── repomd.xml
    └── solv
        ├── updates-group.solvx
        ├── updates-updateinfo.solvx
        └── updates.solv

Directorul cache rădăcină implicit este /var/cache/libdnf5, dar când DNF5 rulează ca alt utilizator, utilizează cache-ul din ~/.cache/libdnf5 cu aceeași structură. Directorul cache rădăcină poate fi redefinit folosind opțiunea de configurare system_cachedir, iar directorul cache al utilizatorului cu opțiunea cachedir.

În directorul cache, există subdirectoare corespunzătoare fiecărui depozit configurat, cum ar fi fedora-* și updates-*. Acestea conțin fișiere de metadate în directorul repodata și fișiere cache generate de solver în directorul solv. Fișierele solver, utilizate pentru a îmbunătăți performanța în rezolvarea dependențelor de pachete sau în rularea interogărilor, pot fi activate sau dezactivate la nivel de depozit prin opțiunea de configurare build_cache. Directorul packages poate stoca pachete descărcate dintr-un depozit, iar un fișier metalink sau mirrorlist furnizează informații despre locațiile la distanță ale datelor din depozit.

În plus, directorul cache rădăcină conține un fișier temporary_files.toml referitor la pachetele stocate temporar în sistem.

Există mai multe tipuri de metadate descărcate din locații de la distanță și prelucrate în DNF5.

Unele metadate sunt obligatorii și întotdeauna luate în considerare. Fișierul principal de metadate al depozitului, repomd.xml, conține informații despre fișiere de tip metadate specifice legate de un depozit, cum ar fi sumele de control, dimensiunile fișierelor și locațiile acestora în ierarhia metadatelor. Un alt fișier obligatoriu este fișierul de metadate primary, care furnizează informații detaliate despre pachetele disponibile, inclusiv numele pachetelor, versiunile, dependențele etc. Dacă DNF5 este compilat cu suport pentru modularitate, metadatele modules sunt, de asemenea, descărcate și prelucrate.

Alte tipuri de metadate sunt opționale și pot fi încărcate în DNF5 în următoarele moduri:

  • Cerere explicită a utilizatorului prin adăugarea tipului solicitat la opțiunea de configurare optional_metadata_types
  • Automat în timpul rulării, în funcție de comanda CLI utilizată
  • Pentru metadatele filelists, atunci când utilizatorul trece orice argument pentru ruta fișierului „filepath”

Iată lista tipurilor de metadate opționale acceptate:

  • comps: Metadate care conțin grupuri de pachete și descrieri ale mediului
  • filelists: Informații despre toate fișierele furnizate de pachete
  • updateinfo: Informații privind actualizările și avizele legate de securitate
  • presto: Informații referitoare la RPM-urile delta
  • other: Metadate suplimentare, cum ar fi changelogs (jurnalele de modofocări)

În cazul în care metadatele necesare nu sunt prezente în sistem, pot apărea diferite scenarii, cum ar fi returnarea unei interogări goale, emiterea unei erori pentru că nu există nicio potrivire pentru un argument sau o eroare la rezolvarea unei tranzacții.

În mod implicit, DNF5 nu stochează în cache datele pachetelor descărcate, deoarece opțiunea keepcache este configurată la False. Cu această opțiune, de fiecare dată când DNF5 descarcă un pachet din locația la distanță, îl urmărește în temporary_files.toml din directorul cache al depozitului. După următoarea execuție cu succes a tranzacției, toate fișierele sunt eliminate pe baza acestei liste. Acest proces are loc numai atunci când tranzacția conține orice acțiune de intrare; în caz contrar, pachetele sunt păstrate, luând în considerare cazurile potențiale de utilizare.

Atunci când opțiunea keepcache este definită la True, fișierele descărcate nu sunt urmărite și ar putea fi eliminate ulterior, fie manual, fie prin executarea comenzii clean, de exemplu, dnf5 clean packages.

Pachetele sunt întotdeauna păstrate atunci când sunt descărcate utilizând comanda download.

De obicei, DNF5 este rulat cu privilegii de superutilizator pentru a efectua modificări ale sistemului. Cu toate acestea, există scenarii în care executarea interogărilor fără privilegii ridicate este suficientă. În astfel de cazuri, este posibil să fie necesară descărcarea de la distanță a tuturor metadatelor de depozit pentru contul de utilizator, chiar dacă există date existente în memoria cache a rădăcinii.

În DNF5, atunci când se verifică dacă există metadate de depozit goale, expirate sau nevalide în timpul rulării sub un cont non-root, se examinează mai întâi locația utilizatorului root. Dacă metadatele sunt prezente acolo, acestea sunt copiate în locația cache a utilizatorului. Rețineți că această clonare a metadatelor este optimizată atunci când funcționalitatea „copy-on-write” este prezentă în cadrul sistemului de fișiere, cum ar fi btrfs.

Pentru a instrui DNF5 să opereze exclusiv cu date din cache, evitând descărcările din locații la distanță, sunt disponibile două instrumente. În primul rând, folosind opțiunea de configurare cacheonly, putem specifica fie metadata pentru a utiliza numai metadatele de depozit din cache, fie all pentru a include întregul cache, interzicând descărcarea oricărui pachet. Alternativ, atunci când parametrul --cacheonly este utilizat, acesta stabilește automat opțiunea de configurare la all, rezultând o operație complet bazată pe cache.

Utilizarea valorii metadata pentru configurația cacheonly poate fi avantajoasă atunci când depozitele opționale sunt temporar indisponibile sau când știm că nu sunt necesare pentru cazul nostru actual de utilizare. De asemenea, este utilă atunci când metadatele din cache nu sunt cele mai recente sau au expirat, dar sunt încă funcționale.

ȘTERGERE, CREARE, ACTUALIZARE

Următoarele comenzi sunt utilizate pentru ștergerea și crearea manuală a cache-ului:

dnf5-clean(8), Comanda «clean»
dnf5-makecache(8), Comanda «makecache»

Pentru a forța actualizarea metadatelor înainte de executarea unei comenzi, utilizați parametrul --refresh.

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

Contribuitori la proiectul dnf5.

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.

25 august 2025