RPM Community Forums

Mailing List Message of <rpm-users>

Re: error: cannot open Packages database in /var/lib/rpm

From: Jeff Johnson <n3npq@mac.com>
Date: Thu 28 May 2009 - 21:24:03 CEST
Message-id: <534E6CD7-8824-40DA-A8B0-FA0375F83B28@mac.com>

On May 28, 2009, at 3:09 PM, spam.spam.spam.spam@free.fr wrote:

>>
>> Look in /var/tmp (or however you have configgered %_tmpdir)
>> and you will likely see the script that was attempted.
>>
>> You will see something like
>> 	/var/tmp/rpm-tmp.123456
>> That is the scriptlet that was attempted.
>>
>>
...
> 1)I don't see this tmp file... My tmp/var/tmp/ folder is completly  
> empty.
> I try to find my tmpdir :
> #rpm --showrc | grep tmpdir
> -14: __dbi_other        %{?_tmppath:tmpdir=%{_tmppath}} %{?__dbi_cdb}
> -14: __dbi_sqlconfig_current    perms=0644 %{?_tmppath:tmpdir=% 
> {_tmppath}}
> -14: tmpdir     %{_tmppath}
> But I am not sure to understand. Where is it?
>

Run strace on rpm if necessary. RPM is expanding
the script into a file somewhere before executing, and
RPM does not remove failed (as in exit status = 255) scripts.

Look for open/execv lines in the strace spewage.

Note that %_tmpdir is the modern macro name for the "traditional"
configuration parameter "%_tmppath" which "traditionally"
has value "/var/tmp". I cannot tell where your configuration
has chosen to map the path where scriptlets are written.

You can tell how you have configured RPM however. Examine
	rpm --showrc
and adjust any discrepancies, particularly paths, to taste.

> 2)A strange thing is when I try to install a second time the RPM  
> package :
>
> rpm --nodeps -i 8Kingdoms-1.1.0-6.fc9.i386.rpm
> warning: 8Kingdoms-1.1.0-6.fc9.i386.rpm: Header V3 DSA signature:  
> NOKEY, key ID
> 4ebfc273
> error: failed to open /etc/mtab: No such file or directory

(aside)
BTW, you can likely make this annoying message go away by doing
	touch /path/to/chroot/etc/mtab
The file in the path just needs to exist somehow, doesn't even matter  
what is inside.

>
> error: %post(8Kingdoms-1.1.0-6.fc9.i386) scriptlet failed, exit  
> status 255
> bash-4.0# rpm --nodeps -i 8Kingdoms-1.1.0-6.fc9.i386.rpm
> warning: 8Kingdoms-1.1.0-6.fc9.i386.rpm: Header V3 DSA signature:  
> NOKEY, key ID
> 4ebfc273
> error: failed to open /etc/mtab: No such file or directory
> error: ^(?:([^:-]+):)?([^:-]+)(?:-([^:-]+))?(?::([^:-]+))?$: regcomp  
> failed:
> Invalid preceding regular expression
> Segmentation fault
>

You've lost mandatory PCRE libraries somehow. We did this analysis  
already ...

> You can see now it absolutely wants I install libpcre (there is  
> regularg
> expression error because it dosen't find libpcre which is not  
> installed for the
> moment...). I tell --nodeps... But it wants to use libpcre.

Yes libpcre is mandatory. The easiest (imho) solution is configuring  
the build using

	--with-pcre=internal

>
> Why ONLY the second time I try to install, I see the error about  
> regular
> expression?

Dunno. You have lost mandatory -lpcre anytime you see the message:

> error: ^(?:([^:-]+):)?([^:-]+)(?:-([^:-]+))?(?::([^:-]+))?$: regcomp  
> failed:
> Invalid preceding regular expression
> Segmentation fault

That can happen for numerous reasons, including not controlling where  
libraries
are to be found.

73 de Jeff
Received on Thu May 28 21:24:28 2009
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.