Yadda ake Sake Gina Ruɓataccen Database RPM a cikin CentOS


Bayanan RPM sun ƙunshi fayiloli a ƙarƙashin /var/lib/rpm/ directory a cikin CentOS da sauran rabe-raben Linux na kasuwanci kamar RHEL, openSUSE, Oracle Linux da ƙari.

Idan bayanan RPM ya lalace, RPM ba zai yi aiki daidai ba, don haka ba za a iya amfani da sabuntawa ga tsarin ku ba, kuna fuskantar kurakurai yayin sabunta fakiti akan tsarin ku ta rpm da yum umarni cikin nasara.

Akwai abubuwa da yawa da za su iya haifar da ɓarna a cikin bayanan RPM, kamar rashin cika ma'amala a baya, shigar da wasu software na ɓangare na uku, cire takamaiman fakiti, da sauran su.

A cikin wannan labarin, za mu nuna yadda ake sake gina bayanan RPM da aka lalata; ta wannan hanyar zaku iya murmurewa daga lalata bayanan RPM a cikin CentOS. Wannan yana buƙatar gata na tushen mai amfani, in ba haka ba, yi amfani da umarnin sudo don samun waɗannan gata.

Sake Gina Ruɓataccen Database na RPM a cikin CentOS

Da farko fara da adana bayanan RPM ɗinku na yanzu kafin ci gaba (zaku iya buƙatar ta nan gaba), ta amfani da umarni masu zuwa.

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

Na gaba, tabbatar da amincin babban fakitin metadata fayil /var/lib/rpm/Packages; wannan shine fayil ɗin da ke buƙatar sake ginawa, amma da farko cire /var/lib/rpm/__db* fayiloli don hana kulle-kulle ta amfani da bin umarni.

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

Idan aikin da ke sama ya gaza, ma'ana har yanzu kuna ci karo da kurakurai, to sai ku jujjuya kuma ku loda sabon rumbun adana bayanai. Hakanan tabbatar da ingancin fayil ɗin Fakitin da aka ɗora a baya kamar haka.

# 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

Yanzu don bincika bayanan bayanan bayanan, bincika duk fakitin da aka shigar ta amfani da -q da -a tutoci, kuma kuyi ƙoƙarin kiyaye kowane kuskure (s) da aka aika zuwa stderror.

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

A ƙarshe amma ba kalla ba, sake gina bayanan RPM ta amfani da umarni mai zuwa, zaɓin -vv yana ba da damar nuna bayanai masu yawa na gyara kuskure.

# rpm -vv --rebuilddb

Yi amfani da kayan aikin dcrpm don Ganewa da Gyara Bayanan RPM

Mun kuma gano kayan aikin layin umarni dcrpm (gano kuma daidai rpm) wanda aka yi amfani da shi don ganowa da gyara sanannun batutuwan da suka shafi lalata bayanan RPM. Kayan aiki ne mai sauƙi kuma mai sauƙin amfani wanda zaku iya gudu ba tare da zaɓi ba. Don ingantaccen amfani da abin dogaro, yakamata ku gudanar da shi akai-akai ta cron.

Kuna iya shigar da shi daga tushe; zazzage itacen tushen kuma shigar da shi ta amfani da setup.py (wanda ya kamata ya kama dogaron psutil daga pypi shima), kamar yadda aka nuna.

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

Da zarar kun shigar da dcrpm, kunna shi kamar yadda aka nuna.

# dcrpm

A ƙarshe, gwada sake gudanar da rpm ko yum umarnin ku don ganin ko komai yana aiki lafiya.

dcrpm Github wurin ajiya: https://github.com/facebookincubator/dcrpm
Kuna iya samun ƙarin bayani daga shafin dawo da bayanai na RPM.

Shi ke nan! A cikin wannan labarin, mun bayyana yadda ake sake gina bayanan RPM da aka lalata a cikin CentOS. Don yin kowace tambaya ko raba ra'ayoyinku game da wannan jagorar, yi amfani da fom ɗin amsa da ke ƙasa.