On Monday 04 December 2006 12:06, Lyvim Xaphir wrote: >On Mon, 2006-12-04 at 08:51 -0500, Gene Heskett wrote: >> On Monday 04 December 2006 06:42, Jim Cornette wrote: >> >If we all work together, we can totally disrupt the system. >> >> I think we've succeeded in this case. :( > >Gene, the hanging problem that you had initially is documented in the >following URL: > > >http://www.rpm.org/hintskinks/repairdb/ > > >It also seems to be something that's not completely out of date. There >is another approach, which I originally posted to the Mandrake lists a >long time ago. It is a cookbook procedure showing how to do a manual >reconstruction of an rpm database using actually installed file >information from the system. It's a little dated but the commands used >are not, I feel the procedure is good. Here's the original link and the >content: > >http://www.informatimago.com/linux/rpm-rebuilddb.html >___ That part was in fact solved by nuking the __db.00# files first, so that seems to be fixed. Thanks for the links though. >_________________________________________________________________ > > > > On one of my Mandrake Linux systems, I had once this problem: > [pascal@hermes pascal]$ su > Password: > [root@hermes pascal]# rpm -q -a > failed to open //var/lib/rpm/packages.rpm > > rpmQuery: rpmdbOpen() failed > [root@hermes pascal]# rpm --rebuilddb > failed to open //var/lib/rpm/packages.rpm > > [root@hermes pascal]# rpm --initdb > [root@hermes pascal]# rpm -q -a > failed to open //var/lib/rpm/packages.rpm > > rpmQuery: rpmdbOpen() failed > [root@hermes pascal]# rpm --version > RPM version 3.0.3 > > >Well, clearly the RPM database was completely out of usage. I had to >rebuild it.You may think that it's simply a matter of using : > > rpm --rebuilddb > > However, I learned that --rebuilddb is REALLY AND COMPLETELY USELESS. >Maybe the authors and contributors to rpm could take some idea from this >NFAQ to actually > implement a true --rebuilddb option. > >The main idea of the process is to use: > > rm -f /var/lib/rpm/* ; rpm --initdb > > and: > > rpm -i -v --nodeps --noscripts --notriggers --excludepath / >packages... > > to fill a package database without really installing anything (not >overriding installed files, not running any script, ...). This is done >in the seventh step; everything before I made to recover a list of >installed packages. > >This is not perfect, since some packages I have upgraded or modified the >sourcesand upgraded. I should have checked for /usr/src/RPMS too; I'll >update the database later by hand to synchronize it with the handful of >packages I touched after the initial installation. > > > >+------------------------------------------------------------------+ > >| COOKBOOK PROCEDURE TO REBUILD A RPM DATABASE DAMAGED BEYOND HOPE | > >+------------------------------------------------------------------+ > >#### >#### BEWARE, THIS IS NOT AN AUTOMATIC SCRIPT! >#### >#### Use this only as a guideline to rebuild your rpm database. >#### > > >##### ># 1 # Find the files currently installed. ># # ON THE HOST WHO LOST ITS RPM DATABASE. >##### > >find / -print | sort > /tmp/dsk-contents > > > >##### ># 2 # Find all the files installed by the installation RPMs, ># # with their corresponding RPM. >##### > >losetup /dev/loop0 /mnt/usr3/mandrake/mandrake61-1.iso >mount -o ro -t iso9660 /dev/loop0 /mnt/cdrom > >cd /mnt/cdrom/Mandrake/RPMS >rm -f /tmp/rpm-contents >for f in *.rpm ; do > rpm -q -l -p $f \ > > | awk -v pn=$f '{printf "%s:%s\n",pn,$0;}' >> /tmp/rpm-contents > >done >sort -t: +1 -o /tmp/rpm-contents /tmp/rpm-contents > > > >##### ># 3 # Obtain the actually installed RPMs. >##### > > > >gzip -d < lgetvalue-src.tar.gz | tar xf - >cd lgetvalue-src >make all test > > >./lgetvalue --field-separator=: \ > --key-position=2 \ > --value-position=1 \ > /tmp/rpm-contents /tmp/dsk-contents \ > >| sort -u > /tmp/rpm-installed > >##### ># 4 # Reinitialize a new rpm database. >##### > >mv /var/lib/rpm /var/lib/rpm-damaged-beyond-hope >mkdir /var/lib/rpm >rpm --initdb > > > >##### ># 5 # Let rpm say what problems there may be ># # (trying to do a pseudo-installation. >##### > >cd /mnt/cdrom/Mandrake/RPMS >rpm -i -v --noscripts --notriggers --excludepath / >`cat /tmp/rpm-installed` > > > >##### ># 6 # Correct the list of installed RPMs. >##### > >emacs /tmp/rpm-installed > > >##### ># 7 # Rebuild the rpm data base, without installing any file ># # nor running any script. >##### > >rpm -i -v --nodeps --noscripts --notriggers --excludepath / \ > `cat /tmp/rpm-installed ` > > >##### ># 8 # Check you have a valid rpm database. >##### > >rpm -q -a >________________________________________________________________ > > >LX >-- >°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° >Kites rise highest against the wind -- not with it. >-- Winston Churchill >Registered Linux User #268899 http://counter.li.org/ >°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° -- Cheers, Gene "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) Yahoo.com and AOL/TW attorneys please note, additions to the above message by Gene Heskett are: Copyright 2006 by Maurice Eugene Heskett, all rights reserved.