Otu esi ewughachi ọdụ data RPM mebiri emebi na CentOS


Ihe nchekwa data RPM bụ faịlụ n'okpuru /var/lib/rpm/ ndekọ na CentOS na nkesa Linux ndị ọzọ dị ka RHEL, openSUSE, Oracle Linux na ndị ọzọ.

Ọ bụrụ na nchekwa data RPM mebiri emebi, RPM agaghị arụ ọrụ nke ọma, yabụ enweghị ike itinye mmelite na sistemụ gị, ị na-ezute njehie mgbe ị na-emelite ngwugwu na sistemụ gị site na iwu rpm na yum nke ọma.

Enwere ọtụtụ ihe nwere ike iduga nrụrụ aka nchekwa data RPM, dị ka azụmahịa ezughị ezu na mbụ, ntinye nke ụfọdụ ngwanrọ ndị ọzọ, wepụ ngwugwu kpọmkwem, na ọtụtụ ndị ọzọ.

N'isiokwu a, anyị ga-egosi otu esi ewughachi nchekwa data RPM mebiri emebi; otu a ị nwere ike nwetaghachi na nrụrụ aka nchekwa data RPM na CentOS. Nke a chọrọ ohere onye ọrụ mgbọrọgwụ, ma ọ bụghị ya, jiri iwu sudo nweta ikike ndị ahụ.

Wụghachi ọdụ data RPM mebiri emebi na CentOS

Buru ụzọ malite site n'ịkwado nchekwa data RPM gị dị ugbu a tupu ịga n'ihu (ị nwere ike ịchọ ya n'ọdịnihu), na-eji iwu ndị a.

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

Na-esote, nyochaa iguzosi ike n'ezi ihe nke faịlụ metadata ngwugwu /var/lib/rpm/Packages; nke a bụ faịlụ nke chọrọ iwughachi, mana buru ụzọ wepụ faịlụ /var/lib/rpm/__db* iji gbochie mkpọchi stale site na iji iwu ndị a.

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

Ọ bụrụ na ọrụ a dị n'elu dara, nke pụtara na ị ka na-ezute mperi, mgbe ahụ, ị ga-atụfu ma buo data ọhụrụ. Nyochaakwa iguzosi ike n'ezi ihe nke faịlụ ngwugwu a dojuru ọhụrụ dị ka ndị a.

# 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

Ugbu a iji lelee nkụnye ndị isi nchekwa data, jụọ ngwungwu niile arụnyere site na iji ọkọlọtọ -q na -a, ma gbalịa jiri nlezianya hụ njehie ọ bụla ezigara na stderror.

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

N'ikpeazụ ma ọ dịghị ihe ọzọ, wughachi nchekwa data RPM site na iji iwu na-esonụ, nhọrọ -vv na-enye ohere maka igosipụta ọtụtụ ozi nbipu.

# rpm -vv --rebuilddb

Jiri ngwa dcrpm chọpụta ma mezie RPM database

Anyị chọpụtakwara ngwá ọrụ ahịrị iwu dcrpm (chọpụta na dozie rpm) iji chọpụta ma mezie okwu amaara nke ọma metụtara nrụrụ nchekwa data RPM. Ọ bụ ngwa dị mfe ma dị mfe iji nke ị nwere ike ịgba ọsọ na-enweghị nhọrọ. Maka ojiji dị irè na ntụkwasị obi, ị kwesịrị ị na-agba ya mgbe niile site na cron.

Ị nwere ike iwunye ya site na isi iyi; budata osisi iyi wee wụnye ya site na iji setup.py (nke kwesiri ijide psutil dabere na pypi kwa), dị ka egosiri.

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

Ozugbo itinyechara dcrpm, mee ya ka egosiri.

# dcrpm

N'ikpeazụ, gbalịa ịgba ọsọ rpm gị dara ada ọzọ ma ọ bụ yum iji hụ ma ihe niile na-arụ ọrụ nke ọma.

dcrpm Github ebe nchekwa: https://github.com/facebookincubator/dcrpm
Ị nwere ike ịchọta ozi ndị ọzọ na ibe mgbake nchekwa data RPM.

Ọ gwụla! N'ime edemede a, anyị akọwala otu esi arụghachi nchekwa data RPM mebiri emebi na CentOS. Iji jụọ ajụjụ ọ bụla ma ọ bụ kesaa echiche gị gbasara ntuziaka a, jiri ụdị nzaghachi dị n'okpuru.