Bii o ṣe le Tun data RPM ti Ibajẹ bajẹ ni CentOS
Ibi ipamọ data RPM jẹ awọn faili labẹ/var/lib/rpm/itọsọna ni CentOS ati awọn pinpin kaakiri ile-iṣẹ miiran ti Linux gẹgẹbi RHEL, openSUSE, Oracle Linux ati diẹ sii.
Ti ibi ipamọ data RPM ba jẹ ibajẹ, RPM kii yoo ṣiṣẹ ni deede, nitorinaa awọn imudojuiwọn ko le ṣee lo si eto rẹ, o ba awọn aṣiṣe pade lakoko ti o n mu awọn idii dojuiwọn lori ẹrọ rẹ nipasẹ rpm ati awọn aṣẹ yum ni aṣeyọri.
Awọn ifosiwewe pupọ lo wa ti o le ja si ibajẹ ibi ipamọ data RPM, gẹgẹbi awọn iṣowo tẹlẹ ti ko pe, fifi sori ẹrọ ti sọfitiwia ẹnikẹta kan, yiyọ awọn idii kan pato, ati ọpọlọpọ awọn omiiran.
Ninu àpilẹkọ yii, a yoo fihan bi a ṣe le tun ṣe ibi data RPM ti o bajẹ; ni ọna yii o le bọsipọ lati ibajẹ ibi ipamọ data RPM ni CentOS. Eyi nilo awọn anfaani olumulo root, bibẹkọ, lo aṣẹ sudo lati jere awọn anfani wọnyẹn.
Tun ipilẹ data RPM ti o bajẹ ni CentOS ṣe
Akọkọ bẹrẹ nipa fifipamọ data RPM lọwọlọwọ rẹ ṣaaju tẹsiwaju (o le nilo rẹ ni ọjọ iwaju), ni lilo awọn ofin wọnyi.
# mkdir /backups/ # tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz /var/lib/rpm
Itele, jẹrisi iduroṣinṣin ti faili metadata package oluwa/var/lib/rpm/Awọn idii; eyi ni faili ti o nilo atunkọ, ṣugbọn akọkọ yọ/var/lib/rpm/__ db * awọn faili lati ṣe idiwọ awọn titiipa stale ni lilo awọn ofin wọnyi.
# rm -f /var/lib/rpm/__db* # /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
Ni ọran ti iṣẹ ti o wa loke ba kuna, itumo o tun ba awọn aṣiṣe pade, lẹhinna o yẹ ki o da silẹ ki o fifuye data tuntun kan. Tun rii daju iduroṣinṣin ti faili Awọn apoti ti kojọpọ tuntun bi atẹle.
# 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
Bayi lati ṣayẹwo awọn akọle ibi ipamọ data, beere gbogbo awọn idii ti a fi sori ẹrọ ni lilo awọn asia -q
ati -a
, ki o gbiyanju lati farabalẹ kiyesi eyikeyi aṣiṣe (s) ti a firanṣẹ si stderror.
# rpm -qa >/dev/null #output is discarded to enable printing of errors only
Kẹhin ṣugbọn kii kere ju, tun tun ṣe ipilẹ data RPM nipa lilo pipaṣẹ atẹle, aṣayan -vv
gba laaye fun fifihan ọpọlọpọ alaye n ṣatunṣe aṣiṣe.
# rpm -vv --rebuilddb
Lo Ọpa dcrpm lati Ṣawari ati Ṣatunṣe aaye data RPM
A tun ṣe awari dcrpm (ri ati ṣatunṣe rpm) ọpa laini aṣẹ ti a lo lati ṣe idanimọ ati ṣatunṣe awọn ọran ti o mọ daradara lati ṣe pẹlu ibajẹ data RPM. O jẹ ohun elo ti o rọrun ati irọrun lati lo eyiti o le ṣiṣẹ laisi aṣayan. Fun lilo ti o munadoko ati igbẹkẹle, o yẹ ki o ṣiṣe ni deede nipasẹ cron.
O le fi sii lati orisun; ṣe igbasilẹ igi orisun ki o fi sii nipa lilo setup.py (eyiti o yẹ ki o gba igbẹkẹle psutil lati pypi pẹlu), bi a ṣe han.
# git clone https://github.com/facebookincubator/dcrpm.git # cd dcrpm # python setup.py install
Lọgan ti o ba ti fi sii dcrpm, ṣiṣe bi o ti han.
# dcrpm
Lakotan, gbiyanju lati ṣiṣẹ rpm ti o kuna tabi aṣẹ yum lẹẹkansii lati rii boya ohun gbogbo n ṣiṣẹ daradara.
ibi ipamọ Github dcrpm: https://github.com/facebookincubator/dcrpm
O le wa alaye diẹ sii lati oju-iwe imularada ibi ipamọ data RPM.
Gbogbo ẹ niyẹn! Ninu nkan yii, a ti ṣalaye bawo ni a ṣe le tun ṣe ibi data RPM ti o bajẹ ni CentOS. Lati beere eyikeyi ibeere tabi pin awọn ero rẹ nipa itọsọna yii, lo fọọmu esi ni isalẹ.