Had a remarkably trouble-free time upgrading from RedHat 6.2 (don't ask) to Fedora Core 2. Well, if you must know, it's a development server that hasn't been broken. After the upgrade, Oracle and ColdFusion still worked. There was one thing that could be a niggle.
# rpm -qa error: cannot open Packages database in /var/lib/rpm no packages
In fact, any attempt to use rpm
resulted in the same message. Strange thing was that looking at the underlying database everything looked fine.
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages # echo $? 0 #
After some flailing around, I decided to try seeing what was really happening. This is a habit I picked up from SnoopDOS
. On Linux, the equivalent command is strace
# strace rpm -qa 2>&1| less execve("/bin/rpm", ["rpm", "-qa"], [/* 24 vars */]) = 0 [... lots of splurging gobbledygook here ... ] [... not having a lot to go on, I searched for instances of "rpm" ... ] [... many lines later ...] open("/etc/rpm/macros.db1.rpmorig", O_RDONLY|O_LARGEFILE) = 3
Ok, I don't know all that much about rpm
but it should surely
not be reading files with ".rpmorig
" tagged onto the name. Feeling brave, I decided to try a fairly radical fix.
# cd /etc/rpm # mkdir STUFF # mv macros* STUFF/ # rpm -qa
... and it worked. It looks like the one line in macros.db1.rpmorig
was the culprit:
%_dbapi 1
It seems that this was causing rpm
to try accessing the database using an obsolete API. Oh well, now it's noted for future reference.
This solution helps me too.
I was upgrading RH9 with Fedora 3 and have the same error message as you.
Thanks a lot. :)
HELPED ME too. THANKS