Kif terġa 'tinbena Database RPM Korrotta f'CentOS
Id-database RPM hija magħmula minn fajls taħt id-direttorju /var/lib/rpm/ f'CentOS u distribuzzjonijiet oħra tal-Linux ta' intrapriżi bħal RHEL, openSUSE, Oracle Linux u aktar.
Jekk id-database tal-RPM tkun korrotta, l-RPM ma jaħdimx b'mod korrett, għalhekk l-aġġornamenti ma jistgħux jiġu applikati għas-sistema tiegħek, tiltaqa 'ma' żbalji waqt li taġġorna l-pakketti fis-sistema tiegħek permezz tal-kmandi rpm u yum b'suċċess.
Hemm numru ta 'fatturi li jistgħu jwasslu għall-korruzzjoni tad-database RPM, bħal tranżazzjonijiet preċedenti mhux kompluti, installazzjoni ta' ċertu softwer ta 'parti terza, tneħħija ta' pakketti speċifiċi, u ħafna oħrajn.
F'dan l-artikolu, se nuru kif terġa 'tinbena database RPM korrotta; b'dan il-mod tista 'tirkupra minn korruzzjoni ta' database RPM f'CentOS. Dan jeħtieġ privileġġi tal-utent root, inkella, uża l-kmand sudo biex tikseb dawk il-privileġġi.
Ibni mill-ġdid Database RPM Korrotta f'CentOS
L-ewwel ibda billi tagħmel backup tad-database RPM attwali tiegħek qabel ma tipproċedi (jista 'jkollok bżonnha fil-futur), billi tuża l-kmandi li ġejjin.
# mkdir /backups/ # tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz /var/lib/rpm
Sussegwentement, ivverifika l-integrità tal-fajl tal-metadejta tal-pakkett prinċipali /var/lib/rpm/Packages; dan huwa l-fajl li jeħtieġ bini mill-ġdid, iżda l-ewwel neħħi l-fajls /var/lib/rpm/__db* biex jipprevjenu serraturi skaduti bl-użu tal-kmandi li ġejjin.
# rm -f /var/lib/rpm/__db* # /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
F'każ li l-operazzjoni ta 'hawn fuq tfalli, jiġifieri li għadek tiltaqa' ma 'żbalji, allura għandek tispiċċa u tagħbija database ġdida. Ivverifika wkoll l-integrità tal-fajl tal-Pakketti mgħobbija friska kif ġej.
# cd /var/lib/rpm/ # mv Packages Packages.back # /usr/lib/rpm/rpmdb_dump Packages.back | /usr/lib/rpm/rpmdb_load Packages # /usr/lib/rpm/rpmdb_verify Packages
Issa biex tiċċekkja l-headers tad-database, fittex il-pakketti installati kollha billi tuża l-bnadar -q
u -a
, u pprova tosserva bir-reqqa kwalunkwe żball(i) mibgħut lill-istderror.
# rpm -qa >/dev/null #output is discarded to enable printing of errors only
Fl-aħħar iżda mhux l-inqas, ibni mill-ġdid id-database tal-RPM billi tuża l-kmand li ġej, l-għażla -vv
tippermetti li turi ħafna informazzjoni dwar id-debugging.
# rpm -vv --rebuilddb
Uża dcrpm Tool biex Tiskopri u Tikkoreġi Database RPM
Skoprejna wkoll l-għodda tal-linja tal-kmand dcrpm (detect and correct rpm) użata biex tidentifika u tikkoreġi kwistjonijiet magħrufa sew li għandhom x'jaqsmu mal-korruzzjoni tad-database RPM. Hija għodda sempliċi u faċli biex tużah li tista 'taħdem mingħajr għażla. Għal użu effettiv u affidabbli, għandek tħaddem regolarment permezz ta 'cron.
Tista 'tinstallah mis-sors; niżżel is-siġra tas-sors u installaha billi tuża setup.py (li għandu jaqbad id-dipendenza tal-psutil minn pypi ukoll), kif muri.
# git clone https://github.com/facebookincubator/dcrpm.git # cd dcrpm # python setup.py install
Ladarba tkun installat dcrpm, mexxiha kif muri.
# dcrpm
Fl-aħħarnett, ipprova erġa' tħaddem l-rpm jew il-kmand yum fallut tiegħek biex tara jekk kollox hux qed jaħdem tajjeb.
dcrpm Repożitorju Github: https://github.com/facebookincubator/dcrpm
Tista 'ssib aktar informazzjoni mill-paġna ta' rkupru tad-database RPM.
Dak kollox! F'dan l-artikolu, spjegajna kif terġa 'tinbena database RPM korrotta f'CentOS. Biex tistaqsi xi mistoqsijiet jew taqsam il-ħsibijiet tiegħek dwar din il-gwida, uża l-formola ta' feedback hawn taħt.