Wéi nei opzebauen korrupt RPM Datebank an CentOS


D'RPM Datebank besteet aus Dateien ënner dem /var/lib/rpm/ Verzeichnis an CentOS an aner Enterprise Linux Verdeelungen wéi RHEL, openSUSE, Oracle Linux a méi.

Wann d'RPM-Datebank korrupt ass, funktionnéiert RPM net korrekt, also kënnen d'Aktualiséierunge net op Äre System applizéiert ginn, Dir stéisst Feeler beim Update vun Packagen op Ärem System iwwer RPM- a Yum Kommandoen erfollegräich.

Et ginn eng Rei vu Faktoren, déi zu der Korruptioun vun der RPM-Datebank féieren kënnen, sou wéi onvollstänneg fréier Transaktiounen, Installatioun vu bestëmmten Drëtt-Partei Software, Ewechhuele vu spezifesche Packagen, a vill anerer.

An dësem Artikel wäerte mir weisen wéi Dir eng korrupt RPM-Datebank opbaut; sou kënnt Dir vun enger RPM Datebank Korruptioun an CentOS recuperéieren. Dëst erfuerdert Root Benotzer Privilegien, soss benotzt de sudo Kommando fir dës Privilegien ze kréien.

Neibau korrupt RPM Datebank an CentOS

Fänkt als éischt un andeems Dir Är aktuell RPM-Datebank Backupsatellit ier Dir weidergeet (Dir kéint et an Zukunft brauchen), andeems Dir déi folgend Kommandoen benotzt.

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

Nächst, z'iwwerpréiwen d'Integritéit vun der Master Package Metadatendatei /var/lib/rpm/Packages; dëst ass d'Datei déi nei opbaue muss, awer fir d'éischt /var/lib/rpm/__db* Dateien ze läschen fir stale Spären ze vermeiden mat de folgende Kommandoen.

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

Am Fall wou déi uewe genannte Operatioun feelt, dat heescht datt Dir nach ëmmer Feeler begéint, da sollt Dir eng nei Datebank dumpen a lueden. Verifizéiert och d'Integritéit vun der frësch geluedener Packages Datei wéi follegt.

# 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

Elo fir d'Datebank Header ze kontrolléieren, frot all installéiert Pakete mat de -q an -a Fändelen, a probéiert suergfälteg all Feeler ze observéieren, déi un de stderror geschéckt ginn.

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

Lescht awer net zulescht, baut d'RPM-Datebank mat dem folgenden Kommando op, d'Optioun -vv erlaabt vill Debugging-Informatiounen ze weisen.

# rpm -vv --rebuilddb

Benotzt dcrpm Tool fir RPM Datebank z'entdecken an ze korrigéieren

Mir hunn och d'dcrpm (detect and correct rpm) Kommandozeilinstrument entdeckt fir bekannte Probleemer ze identifizéieren an ze korrigéieren mat der RPM Datebank Korruptioun. Et ass en einfachen an einfach ze benotzen Tool dat Dir ouni Optioun lafen kann. Fir effektiv an zouverlässeg Notzung, sollt Dir et regelméisseg iwwer cron lafen.

Dir kënnt et aus der Quell installéieren; Luet de Quellbaum erof an installéiere se mat setup.py (wat och d'Psutil Ofhängegkeet vu pypi sollt gräifen), wéi gewisen.

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

Wann Dir dcrpm installéiert hutt, lafen se wéi gewisen.

# dcrpm

Schlussendlech probéiert Äert gescheitert Rpm oder Yum Kommando nach eng Kéier auszeféieren fir ze kucken ob alles gutt funktionnéiert.

dcrpm Github Repository: https://github.com/facebookincubator/dcrpm
Dir kënnt méi Informatioun vun der RPM Datebank Erhuelung Säit fannen.

Dat ass alles! An dësem Artikel hu mir erkläert wéi Dir eng korrupt RPM-Datebank an CentOS opbaut. Fir Froen ze stellen oder Är Gedanken iwwer dëse Guide ze deelen, benotzt de Feedbackformular hei ënnen.