Michael Schroeder wrote:
On Wed, Jul 16, 2008 at 04:35:09PM +0100, Rui Santos wrote:
When I booted into the system again I tried fixing the mentioned database but, I'm experiencing a lot of errors. I'll enumerate the attempts and errors:
1) rpmdb --rebuilddb Error: error: rpmdbNextIterator: skipping h# 881 blob size(21356): BAD, 8 + 16 * il(0) + dl(0) error: rpmdbNextIterator: skipping h# 913 blob size(13820): BAD, 8 + 16 * il(0) + dl(0) error: rpmdbNextIterator: skipping h# 945 blob size(67712): BAD, 8 + 16 * il(0) + dl(0) ... error: rpmdbNextIterator: skipping h# 5086 blob size(16084): BAD, 8 + 16 * il(0) + dl(0) error: rpmdbNextIterator: skipping h# 5118 blob size(28752): BAD, 8 + 16 * il(0) + dl(0) error: rpmdbNextIterator: skipping h# 5135 blob size(4740): BAD, 8 + 16 * il(0) + dl(0) Segmentation fault
2) db_verify fails on the files /var/lib/rpm/{Basenames,Filemd5s,Packages}
There's only one critical Database, it's "Packages". All other databases are just indices and get regenerated by 'rpm --rebuildb'.
If Packages is corrupt (like in your case), you're in big trouble. The only way to recover is to use db_dump/db_load to salvage all undamaged parts of the old database. Then do 'rpm --rebuilddb'.
The result will be that some packages are missing from the database, i.e. rpm no longer knows that the package is installed. There's no way to get the old data back, but you can run "zypper verify" to reinstall missing packages.
You mean that "zypper verify" tries to check all dependencies on the few installed rpm's and goes from there in the hope that it will reverse check all others ? Even so, I'm using openSUSE 10.3, witch does not contain the verify option. I'm trying to install the Backported 11.0 version of zypper but the dependencies problems of packages that are installed but not reported as such is beginning. Well, wish me luck :) Thanks for you quick reply Michael. I'll post the results later on...
Cheers, Michael.
-- Rui Santos http://www.ruisantos.com/ Veni, vidi, Linux! -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org