====== Instalarea unui pachet RPM când apare eroarea „no digest” ====== {{tag>rpm linux fedora rhel centos pachete troubleshooting dnf}} Uneori, la instalarea unui pachet RPM, procesul eșuează cu un mesaj de eroare de tipul: error: .rpm: no digest for header (rpmReadPackageFile) sau, în cazul instalării prin ''dnf''/''yum'': Error: Transaction check error: package does not verify: no digest ===== Cauza ===== Această eroare apare când pachetul RPM a fost construit cu un algoritm de digest (sumă de control) vechi sau slab, de obicei **MD5**, iar sistemul pe care încerci să-l instalezi nu mai acceptă acel algoritm ca fiind valid pentru verificare. Situații tipice în care apare: * Distribuția rulează în modul **FIPS**, care interzice explicit MD5. * Ai o versiune nouă de RPM (de exemplu rpm 6 pe Fedora 43 și mai nou) care a renunțat la suportul pentru algoritmi vechi. * Pachetul este mai vechi și dezvoltatorul nu l-a reconstruit încă cu un digest modern (SHA256). Important: nu este vorba despre o semnătură GPG lipsă sau invalidă, ci despre lipsa sau invaliditatea sumei de control a headerului sau a conținutului pachetului. Din acest motiv, ''--nogpgcheck'' nu rezolvă întotdeauna problema. ===== Verificare ===== Poți confirma cauza rulând: rpm -Kv nume-pachet.rpm Dacă în rezultat vezi ceva similar cu: Header SHA256 digest: NOTFOUND Header SHA1 digest: OK MD5 digest: NOTFOUND înseamnă că pachetul folosește un digest pe care programul rpm de pe sistemul tău nu îl mai validează. ===== Soluția rapidă ===== Dacă ai încredere în sursa pachetului (de exemplu îl descarci direct de pe situl oficial al dezvoltatorului), poți forța instalarea, sărind peste verificarea digestului: sudo rpm -ivh --nodigest --nofiledigest nume-pachet.rpm Explicație: * ''--nodigest'' - ignoră verificarea digestului headerului pachetului * ''--nofiledigest'' - ignoră verificarea digestului fiecărui fișier din pachet Dacă instalezi o actualizare peste un pachet deja instalat, folosește: sudo rpm -Uvh --nodigest --nofiledigest nume-pachet.rpm ===== Alternativa cu dnf ===== Unii utilizatori raportează că problema se rezolvă și prin: sudo dnf install --nogpgcheck ./nume-pachet.rpm Însă acest lucru dezactivează verificarea semnăturii, nu neapărat pe cea a digestului, așa că nu funcționează în toate cazurile. Dacă eroarea persistă, revino la metoda cu ''rpm'' de mai sus. Sărind peste verificarea digestului, nu mai ai garanția integrității pachetului (că fișierul nu a fost corupt sau alterat). Folosește această metodă doar pentru pachete din surse de încredere, descărcate direct de la dezvoltator sau dintr-un depozit oficial. ===== Soluția pe termen lung ===== Cea mai bună soluție este ca pachetul să fie reconstruit de dezvoltator cu un digest modern (SHA256). Dacă problema apare frecvent cu un anumit program: - Verifică situl proiectului sau sistemul lor de suport pentru a vedea dacă există deja o versiune corectată a pachetului. - Dacă nu, raportează problema dezvoltatorilor, menționând mesajul exact de eroare. - Ca soluție temporară, folosește flag-urile ''--nodigest --nofiledigest'' până apare pachetul actualizat. ===== Rezumat ===== ^ Metodă ^ Când o folosești ^ | ''rpm -ivh --nodigest --nofiledigest'' | Instalare nouă, pachet de încredere | | ''rpm -Uvh --nodigest --nofiledigest'' | Actualizare peste o instalare existentă | | ''dnf install --nogpgcheck'' | Alternativă, funcționează uneori | | Așteptare pachet reconstruit | Soluție corectă pe termen lung |