why is database location under /${prefix} ?

Panu Matilainen pmatilai at laiskiainen.org
Fri Jul 10 06:25:41 UTC 2009


On Fri, 10 Jul 2009, Panu Matilainen wrote:

> On Tue, 7 Jul 2009, Rob Maidment wrote:
>
>> 
>> I have built RPM 4.7.0 and installed it as per the instructions in the
>> INSTALL file, culminating in a successful call to “make install”.  My
>> linux is “from scratch”, the kernel version is 2.6.27.4. 
>> 
>> Following the install of RPM there is no RPM database (the Packages file
>> does not exist anywhere).  If I execute “rpm --initdb” a folder called
>> “${prefix}” (literally, but without the quotes) is created under root and
>> I end up with the following files:
>> 
>>  
>> 
>> /${prefix}/var/lib/rpm/Packages
>> 
>> /${prefix}/var/lib/rpm/__db.000
>> 
>> /${prefix}/var/lib/rpm/__db.001
>> 
>> /${prefix}/var/lib/rpm/__db.002
>> 
>> /${prefix}/var/lib/rpm/__db.003
>> 
>> /${prefix}/var/lib/rpm/__db.004
>> 
>>  
>> 
>> If I then try to install a package I get the following error: “ERROR:
>> Cannot get shared lock on RPM Database.”
>> 
>>  
>> 
>> Does anyone know why my database is in such a strange location, and why I
>> cannot install any packages?
>
> This is obviously a bug that needs fixing, but giving an explicit 
> prefix such as --prefix=/usr to ./configure should work.

Actually more to the point, it's just localstatedir which ends up being 
wrong, so instead of --prefix just give it --localstatedir=/var or such 
to get a sensible location for the rpmdb.

 	- Panu -


More information about the Rpm-list mailing list