Re: [Exim] failed to open DB file

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Sheldon Hearn
Ημερομηνία:  
Προς: exim-users
Αντικείμενο: Re: [Exim] failed to open DB file
On (2003/01/14 18:07), Martin Kaiser wrote:

> > In that case, it looks like you have a Berkeley DB version conflict.
>
> DB code is included in the libc on FreeBSD, right? Is there a way to
> figure out what version is included (other than cvsupping the complete 4.1
> sources)?


Correct. From the port's Makefile:

# DB_LIB_VERSION is the version of the Berkeley DB library to use, and
# may be 1, which corresponds to version 1.85 in the base system, or 4
# which depends on the databases/db4 port.
DB_LIB_VERSION?=1

You could find the version you have in libc by looking at
src/lib/libc/db/README, but rest assured that it's been 1.85 for a long
time. :-)

> The changes I made in Local/Makefile look like this:
>

[...]
> LOOKUP_DBM=yes
> LOOKUP_LSEARCH=yes

[...]

> For compiling with Berkeley DB4, I changed OS/Makefile-FreeBSD (there
> might be better ways to do this):
>
> # FreeBSD always ships with Berkeley DB
> USE_DB=yes
> DBMLIB= -L/usr/local/BerkeleyDB.4.0/lib/ -ldb-4
>
> For the standard DB, there's just the USE_DB=yes line.


DB 1.85:
========

Okay, as long as you didn't set DBMLIB when you tried to use DB 1.85,
then I maintain that installing the version of Exim thus built, stopping
any existing Exim processes, deleting the hints databases and starting
up the newly installed Exim should have solved your problem. :-)

DB 4.0:
=======

The problem with DB 4.0 is that it's a moving target. If you're doing
everything right and it still doesn't work, I'd put the failure down to
a subtle API change.

BOTH:
=====

If this problem was driving _me_ mad, I'd start from scratch with DB
1.85, proving beyond a shadow of a doubt that this wasn't a horrible
problem of two distinct Exim binaries both being used to instantiate
processes that then proceded to stomp all over each others' hints
databases.

Good luck! :-)

Ciao,
Sheldon.