(Dan Bent) wrote:
> Can't load '/.../auto/Cyrus/IMAP/IMAP.so' for module Cyrus::IMAP:
> /.../auto/Cyrus/IMAP/IMAP.so: Undefined symbol "db_version" at
> /.../DynaLoader.pm line 229.
>
> I've been discussing this with a fellow who solved a similar problem
> on Suse 7.1. He says:
> i have de-installed berkeley 3.1 devel-packages (comes with suse
> standard-install). after that - cyradm runs fine. i think it was the
> additional installation of an different berkeley-version that course
> the problem. the devel-pkg make some sym-links for berkeley < 3.1 ->
> and that's the prob!
>
> So, we're clearly on the trail. I just need to learn how to identify,
> and un-install the offending berkeley db libraries. I installed
> Berkeley 4.2 earlier in this process, and I'm afraid I might break
> something if I am not careful.
It certainly looks like the db libs are the problem... on my machine,
I have 3 versions installed: libdb-1.so with no symbol db_version,
libdb-3.2.so with db_version, libdb-4.0.so with db_version_4000, and a
bunch of symlinks. The headers for db4 have
#define db_version db_version_4000
so I wonder if this may be part of your problem... What versions do
you have installed, and what db_version symbols do they define (nm -D
/usr/lib/libdb-1.so | grep db_version)? Also, which libs is IMAP.so
trying to load (ldd /.../Cyrus/IMAP/IMAP.so | grep db)?
I suspect that in your friend's case, IMAP.so was built against db <
3.1 and thus it failed, whereas yours is built against db-3.*, and
thus is looking for a db_version rather than a db_version_4000 symbol;
the answer if this is the case is to rebuild IMAP.so against the
currently installed libraries.
Ben
--
If you put all the prophets, | You'd have so much more reason
Mystics and saints | Than ever was born
In one room together, | Out of all of the conflicts of time.
|----------------+---------------| The Levellers, 'Believers'