После жесткого рестарта не удается запустить amavisd-new.
Вот такая ошибка:# ./amavisd.sh start
Starting amavisd.
/usr/libexec/ld-elf.so.1: /usr/local//mach/auto/BerkeleyDB/BerkeleyDB.so: Undefined symbol "db_version"Пробовал заново переустановить из портов и заодно обновить версию до последней - установка прошла нормально, но ошибка так и осталась.
ОС - FreeBSD 4.11
У меня была такая проблема, я просто скопировал /usr/libexec/ld-elf.so.1 с другого сервера, и все!
:)
Цивильного решения найти, небыло времени!
>У меня была такая проблема, я просто скопировал /usr/libexec/ld-elf.so.1 с другого сервера,
>и все!
> :)
>Цивильного решения найти, небыло времени!а если версии разные?
при копировании/замене пишет permission denied, как скопировать?
>У меня была такая проблема, я просто скопировал /usr/libexec/ld-elf.so.1 с другого сервера,
>и все!
> :)
>Цивильного решения найти, небыло времени!
ответ неверный и абсолютно неправельный.>Starting amavisd.
>/usr/libexec/ld-elf.so.1: /usr/local//mach/auto/BerkeleyDB/BerkeleyDB.so: Undefined
>symbol "db_version"это говорит только о том, что у вас слетела либа(BerkeleyDB.so) после ребута. Переинстальте её. либо прекомпильте amavisd без поддержки BerkeleyDB, точнее софт из зависимостей.
ldconfig -r | grep BerkeleyDB.so
ldd /usr/local//mach/auto/BerkeleyDB/BerkeleyDB.so
>это говорит только о том, что у вас слетела либа(BerkeleyDB.so) после ребута.
>Переинстальте её. либо прекомпильте amavisd без поддержки BerkeleyDB, точнее софт из
>зависимостей.
>
>
переинсталлировал amavisd и заодно BerkeleyDB>ldconfig -r | grep BerkeleyDB.so
в ответ тишина, т.е. либа отсутствует>ldd /usr/local//mach/auto/BerkeleyDB/BerkeleyDB.so
/usr/local//mach/auto/BerkeleyDB/BerkeleyDB.so:
а здесь либа на местеГде еще копать?
>>ldconfig -r | grep BerkeleyDB.so
>в ответ тишина, т.е. либа отсутствует
>
>>ldd /usr/local//mach/auto/BerkeleyDB/BerkeleyDB.so
>/usr/local//mach/auto/BerkeleyDB/BerkeleyDB.so:
>а здесь либа на месте
>
>Где еще копать?попробовать сделать
ldconfig -R /usr/local/mach/auto/BerkeleyDB/
Попробовать сделать линк в /usr/local/lib , /usr/lib/ Это иногда помогает. Например для pam_winbindв 6-й ветке фряли, приходиться делать линк из /usr/local/lib в /usr/lib/ и только после этого начинает работать либа, ибо в противном случае либа не находиться.lf /usr/local/mach/auto/BerkeleyDB/
ll /usr/local/mach/auto/BerkeleyDB/Убедиться, что BerkeleyDB.so не линк на какую либо другую либу.
lf /var/db/pkg | grep db
lf /var/db/pkg | grep BerkleyDB
perl -vпокажите какая версия стоит каждого. Вспоснте, ненакатывали ли вы perl ибо на версии, кажется 5.8.7 имеет мето похожего плана проблема именно с перловым модулем. Причем BerkleyDB используется 4.0-4.1
сделайте
cd /usr/ports/databases/p5-BerkeleyDB
make deinstall
make clean
make all install clean
ldconfig -RИ попробуйте еще раз запустить. Так же не помешает пересобратьи сам порт /usr/ports/databases/db-_num_of_version_
Кстати, батенька, а почему вы не указываете конкретного местоположения BerkleyDB?
/usr/local/lib/perl5/site_perl/5.8.7/mach/auto/BerkeleyDB/BerkeleyDB.so
Вот к примеру где уменя он лег, а у вас как-то базис того, пролетел мимо... Или вы не из портов его ставили?
Это сразу бы навело на мысль того, что непорядки идут с перлом и его модулями, а так пришлось ставить сей порт длля диагностики...
Тоесть, точно укажите куда легла либа и perl -v дайте
>Кстати, батенька, а почему вы не указываете конкретного местоположения BerkleyDB?
>/usr/local/lib/perl5/site_perl/5.8.7/mach/auto/BerkeleyDB/BerkeleyDB.so
>Вот к примеру где уменя он лег, а у вас как-то базис
>того, пролетел мимо... Или вы не из портов его ставили?
>Это сразу бы навело на мысль того, что непорядки идут с перлом
>и его модулями, а так пришлось ставить сей порт длля диагностики...
>
>Тоесть, точно укажите куда легла либа и perl -v дайте
>
>
вобщем переустановил из портов perl, заодно и обновил до 5.8.8, переустановил также все модули из портов, но ошибка так и осталась......# ldconfig -R
-r-xr-xr-x 1 root wheel 140590 May 23 20:06 /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/BerkeleyDB/BerkeleyDB.so# lf /var/db/pkg | grep db
db3-3.3.11_2,1/
db4-4.0.14_1,1/
pkgdb.db
ruby18-bdb4-0.5.7/# lf /var/db/pkg | grep BerkeleyDB
p5-BerkeleyDB-0.27_3/# perl -v
This is perl, v5.8.8 built for i386-freebsd-64int
# amavisd
/usr/libexec/ld-elf.so.1: /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/BerkeleyDB/BerkeleyDB.so: Undefined symbol "db_version"Что делать???
попробуйте откатиться на предыдущую версию p5-BerkeleyDB
Паокажите
ldconfig -r | grep dblf /var/db/pkg | grep db
Если присутствуют 3 и 4-я версии снесите обе, несмотря на зависимости (из зависимостей должен быть p5-BerkeleyDB и amavisd-new) и скомпильте p5-BerkeleyDB с поддержкой 3-й ветки db (в принципе это должно компилиться по дефолту)
Еще покажите
lf /var/db/pkg | grep amavisd
>попробуйте откатиться на предыдущую версию p5-BerkeleyDB
>Паокажите
>ldconfig -r | grep db
>
>lf /var/db/pkg | grep db
>
>Если присутствуют 3 и 4-я версии снесите обе, несмотря на зависимости (из
>зависимостей должен быть p5-BerkeleyDB и amavisd-new) и скомпильте p5-BerkeleyDB с поддержкой
>3-й ветки db (в принципе это должно компилиться по дефолту)
>
>Еще покажите
>lf /var/db/pkg | grep amavisd
Да, еще попробуйте явно указать линковку p5-BerkeleyDB с 3-й веткой (детальнее Makefile) И с 4-й и посмотрите результат.
>>попробуйте откатиться на предыдущую версию p5-BerkeleyDB
>>Паокажите
>>ldconfig -r | grep db
>>
>>lf /var/db/pkg | grep db
>>
>>Если присутствуют 3 и 4-я версии снесите обе, несмотря на зависимости (из
>>зависимостей должен быть p5-BerkeleyDB и amavisd-new) и скомпильте p5-BerkeleyDB с поддержкойрискованно сносить, т.к. стоит много разного софта.
>>3-й ветки db (в принципе это должно компилиться по дефолту)
>>
>>Еще покажите
>>lf /var/db/pkg | grep amavisd
># ldconfig -r |grep db
тишина...# lf /var/db/pkg |grep db
db3-3.3.11_2,1/
db4-4.0.14_1,1/
pkgdb.db
ruby18-bdb4-0.5.7/# lf /var/db/pkg | grep amavisd
amavisd-new-2.4.1,1/попробую откатиться на старый порт
>Да, еще попробуйте явно указать линковку p5-BerkeleyDB с 3-й веткой (детальнее Makefile)
>И с 4-й и посмотрите результат.и это попробую.
>>>попробуйте откатиться на предыдущую версию p5-BerkeleyDB
>>>Паокажите
>>>ldconfig -r | grep db
>>>
>>>lf /var/db/pkg | grep db
>>>
>>>Если присутствуют 3 и 4-я версии снесите обе, несмотря на зависимости (из
>>>зависимостей должен быть p5-BerkeleyDB и amavisd-new) и скомпильте p5-BerkeleyDB с поддержкой
>
>рискованно сносить, т.к. стоит много разного софта.
>
>
>>>3-й ветки db (в принципе это должно компилиться по дефолту)
>>>
>>>Еще покажите
>>>lf /var/db/pkg | grep amavisd
>>
>
># ldconfig -r |grep db
>тишина...
>
># lf /var/db/pkg |grep db
>db3-3.3.11_2,1/
>db4-4.0.14_1,1/
>pkgdb.db
>ruby18-bdb4-0.5.7/
>
># lf /var/db/pkg | grep amavisd
>amavisd-new-2.4.1,1/
>
>попробую откатиться на старый порт
>
>>Да, еще попробуйте явно указать линковку p5-BerkeleyDB с 3-й веткой (детальнее Makefile)
>>И с 4-й и посмотрите результат.
>
>и это попробую.Выяснилось, что предыдущая версия p5-BerkeleyDB по умолчанию компилиться с 3-й версией db, а новая версия компилиться с db4.3, которая не была установлена. Причем сам модуль при компиляции выдал только warning, после установки db4.3 все заработало!!!
Спасибо за помощь!