The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"compile sendmail-8.13.6"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"compile sendmail-8.13.6"  
Сообщение от noname (??) on 12-Апр-06, 15:34 
Привет всем.
Такой вопрос для знающих - пытаюсь скомпилировать новую версию, запускаю sh Build -c
Всё как бы замечательно, пару варнингов на компилятор и всё. sendmail сам запускается (версия 8.13.6 пишет), а при первом же соединении пишет ошибки на access.db, типа е могу прочитать. Вся проблема получается в том, что при makemap access > access.db пишет error opening type hash map access.db: Berkeley DB version mismatch between include file and library - что по-русски примерно - разные версии БД в инклюдах и библиотеках. ldd ./makemap | grep db говорит, что используется libdb-4.2.so. НО - проблема в том, что мне осталось наследство от человека, который уж очень много знал и делал руками все операции со всеми пакетами и т.п., в итоге в /usr/lib такая каша с этими libdb... здесь и 3.1 и 3.3 и 4.2 и 4.3, с последней тоже всё компилилось, но без успеха. похоже, что куча симлинков (все ссылаются на разные версии - 4.2 или 4.3) запутана так, что при компиляции берётся всё по разному.

Вопрос - как, если можно, исправить эту кашу? либо может установить ещё какую более свежую версию db, да только уже её установить более грамотно и без каши?
как правильно должны быть прописаны библиотеки и т.п. для одной версии?

ОС - slackware, похоже вер.10

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "compile sendmail-8.13.6"  
Сообщение от lavr email on 12-Апр-06, 16:13 
>Привет всем.
>Такой вопрос для знающих - пытаюсь скомпилировать новую версию, запускаю sh Build
>-c
>Всё как бы замечательно, пару варнингов на компилятор и всё. sendmail сам запускается (версия 8.13.6 пишет), а при первом же соединении пишет ошибки на access.db, типа е могу прочитать. Вся проблема получается в том, что при makemap access > access.db пишет error opening type hash map access.db: Berkeley DB version mismatch between include file and library - что по-русски примерно - разные версии БД в инклюдах и библиотеках. ldd ./makemap | grep db говорит, что используется libdb-4.2.so. НО - проблема в том, что мне осталось наследство от человека, который уж очень много знал и делал руками все операции со всеми пакетами и т.п., в итоге в /usr/lib такая каша с этими libdb... здесь и 3.1 и 3.3 и 4.2 и 4.3, с последней тоже всё компилилось, но без успеха. похоже, что куча симлинков (все ссылаются на разные версии - 4.2 или 4.3) запутана так, что при компиляции берётся всё по разному.
>
>Вопрос - как, если можно, исправить эту кашу? либо может установить ещё
>какую более свежую версию db, да только уже её установить более
>грамотно и без каши?
>как правильно должны быть прописаны библиотеки и т.п. для одной версии?
>
>ОС - slackware, похоже вер.10

при сборке не та библиотека Berkeley DB подцепилась, нужна 4'ая, смотришь ГДЕ
и в site.config лупишь типа:

APPENDDEF(`confLIBDIRS', `-L/path/lib')
APPENDDEF(`confINCDIRS', `-I/path/include')

где /path/lib - путь к библиотеке 4.2 или какая тебе нужна
/path/include - к заголовкам

Все это расписано в sources /path/sendmail/src/README

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "compile sendmail-8.13.6"  
Сообщение от noname (??) on 12-Апр-06, 17:23 
>при сборке не та библиотека Berkeley DB подцепилась, нужна 4'ая, смотришь ГДЕ
да уж понял я это, только вот если бы знать какие он конкретно цепляет...
до этой проблемы говорил проще - segmentation fault =)
правда компилился с версией 3.3 =)
вообще бардак...
>и в site.config лупишь типа:
>
>APPENDDEF(`confLIBDIRS', `-L/path/lib')
>APPENDDEF(`confINCDIRS', `-I/path/include')
>
>где /path/lib - путь к библиотеке 4.2 или какая тебе нужна
>/path/include - к заголовкам
>
>Все это расписано в sources /path/sendmail/src/README

да уже испробовал несколько способов, толку никакого
даже подправил симлинки на версию 4.2 (вместо 4.3, с которой он упорно космпилится).
проблема, что намешал там товарищь этих библиотек.
не можешь привести нормальный список libdb? хочу уже попробовать выложить нужные библиотеки в отдельный каталог и скомпилить, правда ка же их будет потом искать sendmail, при своей работе?
ну спасибо за подсказку, буду дальше бороть песпредел =)
но тема пока открыта

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "compile sendmail-8.13.6"  
Сообщение от lavr email on 12-Апр-06, 19:31 
>>при сборке не та библиотека Berkeley DB подцепилась, нужна 4'ая, смотришь ГДЕ
>да уж понял я это, только вот если бы знать какие он
>конкретно цепляет...
>до этой проблемы говорил проще - segmentation fault =)
>правда компилился с версией 3.3 =)
>вообще бардак...
>>и в site.config лупишь типа:
>>
>>APPENDDEF(`confLIBDIRS', `-L/path/lib')
>>APPENDDEF(`confINCDIRS', `-I/path/include')
>>
>>где /path/lib - путь к библиотеке 4.2 или какая тебе нужна
>>/path/include - к заголовкам
>>
>>Все это расписано в sources /path/sendmail/src/README
>
>да уже испробовал несколько способов, толку никакого
>даже подправил симлинки на версию 4.2 (вместо 4.3, с которой он упорно
>космпилится).
>проблема, что намешал там товарищь этих библиотек.
>не можешь привести нормальный список libdb? хочу уже попробовать выложить нужные библиотеки
>в отдельный каталог и скомпилить, правда ка же их будет потом
>искать sendmail, при своей работе?
>ну спасибо за подсказку, буду дальше бороть песпредел =)
>но тема пока открыта

http://www.sendmail.org/tips/compiling.html#BerkeleyDB

BerkeleyDB
Berkeley DB 4.1.x with x <= 24 does not work with sendmail. You need at least 4.1.25.

все остальное, как я уже говорил в src/README и devtools/

У тебя должны быть динамические библиотеки db4.2.xx и headers к ним установлены.

Для Linux можешь воспользоваться rpm -qa | grep db чтобы посмотреть какие пакеты есть
Headers должны быть в /usr/include или /usr/include/db4 - причем версия db > 4.1.25
Обычно для совместимости используется еще и db1.85
Наличие библиотеки, допустим BerkeleyDB 4.2 - man ldconfig, в /usr/lib или в /usr/local/lib - libdb4.2.so или libdb-4.2.so

Когда убедишься что у тебя ЕСТЬ:
- HEADERS
- LIBRARIES
и они ОДНОЙ версии, вот тогда делаешь devtools/Site/site.config.m4:

define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX') - это для компиляции с NEWDB(BerkeleyDB)
+ поддержка NIS map и + REGEXP

APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER') - это для поддержки milter

APPENDDEF(`conf_sendmail_LIBS', `-ldb-4.2') - для подключения библиотеки /usr/lib/libdb-4.2.so, это как пример

если у тебя HEADERS и LIBS в /usr/include и в /usr/lib соответственно, то ВСЕ,
ну разве что можешь добавить:

APPENDDEF(`confINCDIRS', `-I/usr/include/db4')

Вобщем все как обычно, если нужен SASL или SASL2 то добавляешь по аналогии, обычная
сборка Unix'овых проектов, где какие зависимости, что нужно - то и цепляем и указываем
откуда.

define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
APPENDDEF(`confINCDIRS', `-I/usr/include/db4')
APPENDDEF(`conf_sendmail_LIBS', `-ldb-4.2')

если libdb42 в /usr/local/lib(headers тогда вероятно в /usr/local/include/db4, то:

APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/include/db4')

ну и когда будет выполняться Build и install все параметры компиляции и сборки,
которые мы задали выше, будут взяты из devtools/Site/site.config.m4
и увидишь ты сие своими глазами во время сборки -D... -D... и тд и тп -L/path -llib

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "compile sendmail-8.13.6"  
Сообщение от noname (??) on 13-Апр-06, 16:00 
...
>ну и когда будет выполняться Build и install все параметры компиляции и
>сборки,
>которые мы задали выше, будут взяты из devtools/Site/site.config.m4
>и увидишь ты сие своими глазами во время сборки -D... -D... и
>тд и тп -L/path -llib


ну что ж, спасибо тебе огромное за подробный материал
я конечно малость сделал по-другому, но в итоге вроде заработало =)
почему вроде? - время покажет, не всегда то, что сейчас, будет всегда =)

спасибо

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру