what has happened to my zypper

when try to install libqt4-devel, it stucked like this

/usr/share/man> sudo zypper install libqt4-devel
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  dbus-1-devel libdrm-devel libjpeg-devel liblcms-devel libmng-devel libqt4-devel 
  libtiff-devel Mesa-devel sqlite3 sqlite3-devel 

10 new packages to install.
Overall download size: 8.6 MiB. After the operation, additional 44.2 MiB will be used.
Continue? [y/n/?] (y): 
Installing: sqlite3-3.6.23-4.1 [error]
Installation of sqlite3-3.6.23-4.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM 失败:warning: waiting for exclusive lock on /var/lib/rpm/Packages
error: cannot get exclusive lock on /var/lib/rpm/Packages
error: cannot open Packages index using db3 - Operation not permitted (1)
error: cannot open Packages database in /var/lib/rpm

Abort, retry, ignore? [a/r/i] (a):

And then I tried to install smplayer, the same problem occured…

who can help me

Try running as su -

zypper clean --all
rpmdb --rebuilddb

It works, thanks a lot!

You are most welcome

caf4926 wrote:
>> It works, thanks a lot!
> You are most welcome

but, while the problem was solved (zypper works again) the question of
“what happened to my zypper” didn’t get addressed…so, it is likely
to happen again…

what happened was a running instance of zypper was interrupted leaving
a particular file ‘locked’ and corrupting the RPM database which was
open and in use by zypper when it was interrupted…

that interruption may have come because the electricity ran out and
the machine shut down…but, i guess it was probably interrupted by
the user…

because zypper is not an instant acting program–it has lots of work
to do contacting and downloading from far away sites, checking long
lists of what is installed and blah blah blah blah blah…my advice
is to never begin a zypper operation unless you are willing to put
your hands in your pockets for TEN minutes, at least…

don’t even consider aborting either YaST or zypper operation…

if you do kill zypper you can expect a murdered RPM database at the
very least, and very possibly the entire system…depending on just
where it is in the process (it also rewrites a heap of config files)
it is when when the rug is removed…

CAVEAT: http://is.gd/bpoMD [posted via NNTP w/openSUSE 10.3]

good suggestion, I remember that.