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.