Should RPM check its database?
Jim Cornette
fc-cornette at insight.rr.com
Sat Nov 18 02:08:38 UTC 2006
Tony Nelson wrote:
> Should RPM check its database periodically? (Currently I don't believe it
> does.) It would be helpful if, say, there were a daily cron task that
> syslog'ed and / or emailed root if there were a problem with the RPM
> database. The check appears to be pretty fast. The following takes well
> under a minute on my old machine:
>
> []# cd /var/lib/rpm ; for name in * ; do echo $name ; /usr/lib/rpm/rpmdb_verify $name ; done
>
> Note that this appears to only check the individual files' integrity, and
> not for referential integrity.
>
> It may be necessary to lock the database before checking it; if so,
> whatever in RPM that is supposed to run rpmdb_verify probably already does
> so. (I didn't see anything in man rpm about this, only about verifying
> packages.)
>
> While I'm at it, should Anaconda check the RPM database before doing an
> upgrade, and offer to repair the database if there is a problem and the
> Packages file is OK?
There is a fear with the common user to be afraid of too much
information. I guess rhgb is designed for that. A quiet check of the
database and compaction before an upgrade should speed up the upgrade
process since there would be less seeking of records during
installation. An RFE to add a pre-upgrade check of the database sounds
productive and maybe even will speed up the process of upgrading. I
don't know if fragmented records exist in the rpmdb or not. I suppose
they do.
>
> Should the Installation Guide suggest checking the RPM database before
> upgrading?
I think that this suggestion is good since someone ended up with a very
large log file because of corruption. The file probably is sort of
fragmented when transactions are added and removed frequently to the
records.
>
> I'll decide what to RFE in Bugzilla based partly on feedback here.
Great ideas! Thanks!
Jim
--
Life is a healthy respect for mother nature laced with greed.
More information about the users
mailing list