Le Sat, Feb 19, 2005 at 11:49:13PM -0500, Stephen Gran a ecrit : > > # freshclam -v --debug > > freshclam: relocation error: freshclam: undefined symbol: cli_strtok > > This looks like a stale library lying around. Can you paste the output > of for i in `locate libclamav.so`; do ls -l $i; done
Ok, I had two versions of libclamav. Then I solve the bug. # for i in $(locate libclamav.so); do ls -l $i; done lrwxrwxrwx 1 root root 18 2005-02-19 17:35 /usr/lib/libclamav.so.1 -> libclamav.so.1.0.8 -rw-r--r-- 1 root root 270928 2005-02-18 02:08 /usr/lib/libclamav.so.1.0.8 lrwxrwxrwx 1 root staff 18 2003-04-01 14:36 /usr/local/lib/libclamav.so -> libclamav.so.1.0.2 lrwxrwxrwx 1 root staff 18 2003-04-01 14:36 /usr/local/lib/libclamav.so.1 -> libclamav.so.1.0.2 -rwxr-xr-x 1 root staff 272911 2003-04-01 14:36 /usr/local/lib/libclamav.so.1.0.2 And I used the bad library : # ldd $(which freshclam) | grep libclam libclamav.so.1 => /usr/local/lib/libclamav.so.1 (0xb7fcf000) Remove old library solve the bug because cli_strtok() is a function introduced recently. Note that my desktop is powered by Debian unstable for several years. Then the presence of libclamav.so.1.0.2 says that an old version oflibclamav1 was badly desinstalled. Perhaps a (pre/post)inst script could check if clamav library is compatible with clamav-freshclam version... Script could be like : LIBCLAMAVSO1_VERSION=0.8 for i in `locate libclamav.so | cut -d "." -f4,5`; do if [ $i != $LIBCLAMAV_VERSION ]; then db_get clamav-fresclam/purgeoldlib || true; if [ "$RET" = "true" ]; then echo "Purging old clamav libraries..." purge_old_lib(); fi fi done Thanks, -- Gregory Colpart <[EMAIL PROTECTED]> GnuPG:1024D/C1027A0E Evolix - Informatique et Logiciels Libres http://www.evolix.fr
signature.asc
Description: Digital signature