Kuidas taastada rikutud RPM-i andmebaas CentOS-is


RPM-i andmebaas koosneb failidest, mis asuvad CentOS-i kataloogis/var/lib/rpm/CentOS ja teistes ettevõtte Linuxi distributsioonides nagu RHEL, openSUSE, Oracle Linux ja palju muud.

Kui RPM-i andmebaas on rikutud, ei tööta RPM õigesti, seega ei saa värskendusi teie süsteemile rakendada. Teie süsteemipakettide värskendamisel rpm ja yum käskude kaudu ilmnevad tõrked.

RPM-i andmebaasi rikkumiseni võivad viia mitmed tegurid, näiteks varasemad poolikud tehingud, teatud kolmanda osapoole tarkvara installimine, konkreetsete pakettide eemaldamine ja paljud teised.

Selles artiklis näitame, kuidas rikutud RPM-i andmebaasi taastada; nii saate taastuda CentOS-i RPM-i andmebaasi korruptsioonist. See nõuab root kasutaja õigusi, vastasel juhul kasutage nende õiguste saamiseks käsku sudo.

Taastada korrigeeritud RPM-i andmebaas CentOS-is

Kõigepealt alustage praeguse RPM-i andmebaasi varundamisest enne jätkamist (teil võib seda tulevikus vaja minna), kasutades järgmisi käske.

# mkdir /backups/
# tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz  /var/lib/rpm

Järgmisena kontrollige põhipaketi metaandmete faili/var/lib/rpm/Packages terviklikkust; see on fail, mis vajab ümberehitamist, kuid eemaldage kõigepealt/var/lib/rpm/__ db * failid, et vältida vananenud lukustamist järgmiste käskude abil.

# rm -f /var/lib/rpm/__db*		
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages

Juhul kui ülaltoodud toiming ebaõnnestub, see tähendab, et teil on endiselt vigu, peaksite uue andmebaasi laadima ja laadima. Samuti kontrollige värskelt laaditud paketifaili terviklikkust järgmiselt.

# 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

Nüüd andmebaasi päiste kontrollimiseks pärige kõigilt installitud pakettidelt lippude -q ja -a abil ning proovige hoolikalt jälgida kõiki veateateid, mis on saadetud stderrorile.

# rpm -qa >/dev/null	#output is discarded to enable printing of errors only

Kõige lõpuks ehitage RPM-i andmebaas uuesti järgmise käsu abil, valik -vv võimaldab kuvada palju silumisteavet.

# rpm -vv --rebuilddb

RPM-i andmebaasi tuvastamiseks ja parandamiseks kasutage tööriista dcrpm

Samuti avastasime käsurea tööriista dcrpm (rpm tuvastamine ja parandamine), mida kasutatakse RPM-i andmebaasi korruptsiooniga seotud tuntud probleemide tuvastamiseks ja parandamiseks. See on lihtne ja hõlpsasti kasutatav tööriist, mida saate käivitada ilma lisavarustuseta. Tõhusaks ja usaldusväärseks kasutamiseks peaksite seda regulaarselt käitama croni kaudu.

Saate selle installida allikast; laadige allikapuu alla ja installige see saidi setup.py abil (mis peaks haarama psutili sõltuvuse ka pypist), nagu näidatud.

# git clone https://github.com/facebookincubator/dcrpm.git
# cd dcrpm
# python setup.py install

Kui olete installinud dcrpm, käivitage see nagu näidatud.

# dcrpm

Lõpuks proovige uuesti käivitada käsk ebaõnnestunud rpm või yum, et näha, kas kõik töötab hästi.

dcrpm Githubi hoidla: https://github.com/facebookincubator/dcrpm
Lisateavet leiate RPM-i andmebaasi taastamise lehelt.

See on kõik! Selles artiklis oleme selgitanud, kuidas rikutud RPM-i andmebaasi CentOS-is üles ehitada. Selle juhendi kohta küsimuste esitamiseks või oma mõtete jagamiseks kasutage allolevat tagasiside vormi.