Package: apache2-mpm-worker Version: 2.0.47-1 Severity: important seed:~# apt-get --purge remove apache2-common Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: apache2-common* apache2-mpm-worker* 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. Need to get 0B of archives. After unpacking 15.8MB disk space will be freed. Do you want to continue? [Y/n] Reading changelogs... Done (Reading database ... 156772 files and directories currently installed.) Removing apache2-mpm-worker ... Stopping web server: Apache2/usr/sbin/apache2: relocation error: /usr/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno invoke-rc.d: initscript apache2, action "stop" failed. dpkg: error processing apache2-mpm-worker (--purge): subprocess pre-removal script returned error exit status 127 Starting web server: Apache2/usr/sbin/apache2: relocation error: /usr/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno invoke-rc.d: initscript apache2, action "start" failed. dpkg: error while cleaning up: subprocess post-installation script returned error exit status 127 Removing apache2-common ... Purging configuration files for apache2-common ... Errors were encountered while processing: apache2-mpm-worker
seed:~# /usr/sbin/apache2 --version /usr/sbin/apache2: relocation error: /usr/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno seed:~# LD_PRELOAD=/usr/lib/libgdbm.so.3 /usr/sbin/apache2 --version apache2: could not open document config file /etc/apache2/apache2.conf Upgrading apache2-common and apache2-mpm-worker to 2.0.48-5 fixed the problem. Looks like the dependency on libapr0 should be tightened to avoid mixing different versions of libapr0 and the apache2 executables, or libaprutil-0.so.0 should be linked with libgdbm3: seed:~# ldd /usr/lib/libaprutil-0.so.0 libdl.so.2 => /lib/tls/libdl.so.2 (0x40023000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40026000) libc.so.6 => /lib/tls/libc.so.6 (0x40035000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) seed:~# nm --dynamic /usr/lib/libaprutil-0.so.0 | fgrep gdbm 000155c0 D apr_dbm_type_gdbm U gdbm_close U gdbm_delete U gdbm_errno U gdbm_exists U gdbm_fetch U gdbm_firstkey U gdbm_nextkey U gdbm_open U gdbm_store U gdbm_strerror libgdbm3 was probably being brought in by the main apache2 executable, which was the wrong version. Because of that, libapr0 was magically depending on apache2 too, and the versions need to be exactly matched. Making the libraries on libapr0 depend on the proprer libraries would probably allow the current looser versioning on the dependency. -- System Information: Debian Release: testing/unstable Architecture: i386 Kernel: Linux seed 2.6.1-rc1-reiserfsaclea-seed #1 Thu Jan 1 18:44:41 BRST 2004 i586 Locale: LANG=C, LC_CTYPE=en_US.UTF-8 Versions of packages apache2-mpm-worker depends on: pn apache2-common Not found. ii libapr0 2.0.48-5 The Apache Portable Runtime ii libc6 2.3.2.ds1-10 GNU C Library: Shared libraries an ii libdb4.1 4.1.25-16 Berkeley v4.1 Database Libraries [ ii libexpat1 1.95.6-6 XML parsing C library - runtime li ii libldap2 2.1.23-1 OpenLDAP libraries ii libssl0.9.7 0.9.7c-5 SSL shared libraries ii zlib1g 1:1.2.1-3 compression library - runtime -- no debconf information