cyradm undefined symbol: db_version

Andi Voss andi at andis.mine.nu
Fri Oct 6 05:48:29 EDT 2006


Hi,

I'm using cyrus-sasl-2.1.22 and cyrus-imap-2.2.12 on two Slackware boxes.
On one system everything is fine, everything works like it should be, but
on the other system cyradm is not working at all. When I try to login
with: #cyradm --user cyrus --server localhost --auth login
this error appears:

Can't load
'/usr/lib/perl5/site_perl/5.8.8/i486-linux/auto/Cyrus/IMAP/IMAP.so' for
module Cyrus::IMAP:
/usr/lib/perl5/site_perl/5.8.8/i486-linux/auto/Cyrus/IMAP/IMAP.so:
undefined symbol: db_version at
/usr/lib/perl5/5.8.8/i486-linux/DynaLoader.pm line 230.
 at /usr/lib/perl5/site_perl/5.8.8/i486-linux/Cyrus/IMAP/Admin.pm line 44
Compilation failed in require at
/usr/lib/perl5/site_perl/5.8.8/i486-linux/Cyrus/IMAP/Admin.pm line 44.
BEGIN failed--compilation aborted at
/usr/lib/perl5/site_perl/5.8.8/i486-linux/Cyrus/IMAP/Admin.pm line 44.
Compilation failed in require at
/usr/lib/perl5/site_perl/5.8.8/i486-linux/Cyrus/IMAP/Shell.pm line 60.
BEGIN failed--compilation aborted at
/usr/lib/perl5/site_perl/5.8.8/i486-linux/Cyrus/IMAP/Shell.pm line 60.
Compilation failed in require.
BEGIN failed--compilation aborted.

login to imap is working:
telnet localhost imap
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK Fax Cyrus IMAP4 v2.2.12 server ready
. logout
* BYE LOGOUT received
. OK Completed
Connection closed by foreign host.

I know this error is "well known" and I spent much time to solve the
problem but I didn't. On my other box I solved this problem with
installing the BerkeleyDB-4.4.
As I understand the error, the "undefined symbol: db_version at
/usr/lib/perl5/5.8.8/i486-linux/DynaLoader.pm line 230." is the problem.
This problem, I've located, belongs to BerkeleyDB - Am I right?
Or is perl the problem? I've no more idea...

What I did:
installed BerkeleyDB-4.4 from source:
../build_unix/configure && make && make install
ALL OK

compiled cyrus-sasl:
#./configure --enable-plain --enable-login --enable-cram --enable-digest
--enable-sql --with-mysql=/usr/local/mysql --with-openssl=/usr/local/ssl
--with-dblib=berkeley --with-bdb-libdir=/usr/local/BerkeleyDB.4.4/lib
--with-bdb-incdir=/usr/local/BerkeleyDB.4.4/include
#make && make install
ALL OK

#saslpasswd2 -c cyrus
Password:
Again (for verification):
ALL OK

compiled cyrus-imapd:
#./configure --with-auth=unix --with-sasl=/usr/lib/sasl2
--with-openssl=/usr/local/ssl --with-dblib=berkeley
--with-bdb-libdir=/usr/local/BerkeleyDB.4.4/lib
--with-bdb-incdir=/usr/local/BerkeleyDB.4.4/include
#make && make install
ALL OK

#cd src/cyrus_imap/tools
#su cyrus
#./mkimap
reading configure file...
i will configure directory /var/imap.
i saw partition /var/spool/imap.
done
configuring /var/imap...
creating /var/spool/imap...
done

#perl -MCPAN -eshell
#>install IMAP::Admin
#>installed OK

#cd /src/cyrus_imap/perl/imap
#su cyrus
#perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Cyrus::IMAP
#make && make install
ALL OK

I upgraded and reinstalled perl (now 5.8.8 binary from slackware).

#ldd /usr/cyrus/bin/master
linux-gate.so.1 =>  (0xffffe000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb7f3e000)
libresolv.so.2 => /lib/tls/libresolv.so.2 (0xb7f29000)
libdb-4.4.so => /usr/local/BerkeleyDB.4.4/lib/libdb-4.4.so (0xb7e49000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7d1a000)
/lib/ld-linux.so.2 (0xb7f48000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7d08000)

#ldd /usr/local/sbin/saslpasswd2
linux-gate.so.1 =>  (0xffffe000)
libresolv.so.2 => /lib/tls/libresolv.so.2 (0xb7ee9000)
libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0xb7ed3000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb7ecf000)
libdb-4.4.so => /usr/local/BerkeleyDB.4.4/lib/libdb-4.4.so (0xb7def000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7cc0000)
/lib/ld-linux.so.2 (0xb7f04000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7cae000)

#ls -l /lib/libdb.so
lrwxrwxrwx 1 root root 12 2006-10-05 17:26 /lib/libdb.so -> libdb-3.1.so

The only thing which is different on the two systems is that ldd contains
linux-gate.so.1 =>  (0xffffe000) in the system where it is not working.
linux-gate.so.1 tells that a file is not found by that name, but not which
file.
http://www.trilithium.com/johan/2005/08/linux-gate/

Perhaps this is the problem?
Is anybody able to help me solving this cyrus-imap/cyradm/berkeley problem?

Thanks for help
Andi




More information about the Info-cyrus mailing list