![Apple va lansa un iPhone cu cameră selfie în ecran](/f/b11b28245b7262025b515afc30d9503b.jpg?width=100&height=100)
RPM baza de date este alcătuită din fișiere sub /var/lib/rpm/ director în CentOS și alte distribuții Linux pentru întreprinderi, cum ar fi RHEL, openSUSE, Oracle Linux și altele.
Dacă RPM baza de date este coruptă, RPM nu va funcționa corect, astfel actualizările nu pot fi aplicate sistemului dvs., întâmpinați erori în timp ce actualizați pachetele din sistemul dvs. prin Manager de pachete YUM. Cel mai rău scenariu este imposibilitatea de a rula niciunul rpm și da comanda cu succes.
Citește și: 20 Exemple practice de comandă RPM în Linux
Există o serie de factori care pot duce la corupția bazei de date RPM, cum ar fi anterioară incompletă tranzacții, instalarea anumitor programe terță parte, eliminarea anumitor pachete și multe altele.
În acest articol, vom arăta cum să reconstruiți o bază de date RPM coruptă; în acest fel vă puteți recupera de la o corupție a bazei de date RPM în CentOS. Acest lucru necesită privilegii de utilizator root, în caz contrar, utilizați comanda sudo pentru a obține aceste privilegii.
Începeți mai întâi făcând o copie de rezervă a bazei de date RPM curente înainte de a continua (s-ar putea să aveți nevoie de ea în viitor), folosind următoarele comenzi.
# mkdir / backups / # tar -zcvf / backups / rpmdb - $ (data + "% d% m% Y"). tar.gz / var / lib / rpm.
Apoi, verificați integritatea fișierului de metadate al pachetului principal /var/lib/rpm/Packages; acesta este fișierul care trebuie reconstruit, dar mai întâi eliminați /var/lib/rpm/__db* fișiere pentru a preveni blocările învechite folosind următoarele comenzi.
# rm -f / var / lib / rpm / __ db * # / usr / lib / rpm / rpmdb_verify / var / lib / rpm / Pachete.
În cazul în care operațiunea de mai sus eșuează, ceea ce înseamnă că întâmpinați încă erori, atunci ar trebui să aruncați și să încărcați o nouă bază de date. De asemenea, verificați integritatea fișierului Pachete proaspăt încărcat, după cum urmează.
# cd / var / lib / rpm / # mv Packages Packages.back. # / usr / lib / rpm / rpmdb_dump Packages.back | / usr / lib / rpm / rpmdb_load Pachete. # / usr / lib / rpm / rpmdb_verify Pachete.
Acum, pentru a verifica anteturile bazei de date, interogați toate pachetele instalate folosind -q
și -A
și încercați să observați cu atenție orice eroare trimise către stderror.
# rpm -qa> / dev / null #output este eliminat pentru a permite imprimarea numai a erorilor.
Nu în ultimul rând, reconstruiți baza de date RPM folosind următoarea comandă, -vv
opțiunea permite afișarea multor informații de depanare.
# rpm -vv --rebuilddb.
De asemenea, am descoperit dcrpm (detectează și corectează rpm) instrument de linie de comandă folosit pentru a identifica și corecta problemele bine cunoscute legate de corupția bazei de date RPM. Este un instrument simplu și ușor de utilizat pe care îl puteți rula fără opțiune. Pentru o utilizare eficientă și fiabilă, ar trebui să o rulați în mod regulat prin cron.
Puteți să-l instalați de la sursă; descărcați arborele sursă și instalați-l folosind setup.py (care ar trebui să apuce psutil dependenta de pypi la fel), așa cum se arată.
# git clona https://github.com/facebookincubator/dcrpm.git. # cd dcrpm. # instalare python setup.py.
Odată ce ați instalat dcrpm, rulați-l așa cum se arată.
# dcrpm.
În cele din urmă, încercați să rulați din nou rpm sau comanda yum eșuată pentru a vedea dacă totul funcționează bine.
dcrpm Github depozit: https://github.com/facebookincubator/dcrpm
Puteți găsi mai multe informații de la Recuperarea bazei de date RPM pagină.
Asta e tot! În acest articol, am explicat cum să reconstruiți o bază de date RPM coruptă în CentOS. Pentru a pune întrebări sau a vă împărtăși părerile despre acest ghid, utilizați formularul de feedback de mai jos.