Instalarea unui pachet RPM când apare eroarea „no digest”
Uneori, la instalarea unui pachet RPM, procesul eșuează cu un mesaj de eroare de tipul:
error: <nume-pachet>.rpm: no digest for header (rpmReadPackageFile)
sau, în cazul instalării prin dnf/yum:
Error: Transaction check error: package <nume-pachet> 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.
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 –nofiledigestpâ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 |