[exim-conf] использование dlfunc в exim из pkgsrc под QNX

Victor Ustugov victor на corvax.kiev.ua
Сб Янв 26 00:34:19 EET 2013


Victor Ustugov wrote:

> реализован механизм сборки exim 4.80 из pkgsrc под QNX:
> http://mta.org.ua/exim-4.76-conf/packages/pkgsrc-qnx/exim-4.80/
> 
> использовалось дерево pkgsrc, полученное с community.qnx.com.
> оно немного отстает, поэтому сборка exim отрабатывалась на версии 4.80,
> а не 4.80.1.
> 
> для работы с pkgsrc нужно добавить в /root/.profile строку:
> export PATH=${PATH}:/usr/pkg/bin:/usr/pkg/sbin
> 
> также нужно выполнить команду
> setconf CS_LIBPATH $(getconf CS_LIBPATH):/usr/pkg/lib

как оказалось, этого мало.

нужно добавить в файл /etc/rc.d/rc.local правку переменной конфигурации
CS_LIBPATH:

echo '/usr/bin/setconf CS_LIBPATH $(/usr/bin/getconf
CS_LIBPATH):/usr/pkg/lib' >> /etc/rc.d/rc.local

в противном случае могут возникнуть проблемы при использовании dlfunc:

#  echo
'${dlfunc{/usr/pkg/libexec/exim/exim-dlfunc.so}{ip2country}{212.9.224.1}}'
| exim -be
> 2013-01-26 00:16:23 dlopen "/usr/pkg/libexec/exim/exim-dlfunc.so"
failed: Library cannot be found
Failed: dlopen "/usr/pkg/libexec/exim/exim-dlfunc.so" failed: Library
cannot be found
>

проблемы решаются добавлением в значение переменной CS_LIBPATH пути на
каталог с библиотеками, проблемы при загрузке которых наблюдаются (т. е.
не смотря на сообщение об ошибке, приведенное выше, не найдена не
библиотека /usr/pkg/libexec/exim/exim-dlfunc.so, в том конкретном случае
не была найдена библиотека libGeoIP.so.1).

узнать, какая именно библиотека не найдена, можно так:

export DL_DEBUG=libs
echo
'${dlfunc{/usr/pkg/libexec/exim/exim-dlfunc.so}{ip2country}{212.9.224.1}}'
| exim -be
export DL_DEBUG=

скорее всего просто нужно будет выполнить вышеупомянутые команды:

/usr/bin/setconf CS_LIBPATH $(/usr/bin/getconf CS_LIBPATH):/usr/pkg/lib
echo '/usr/bin/setconf CS_LIBPATH $(/usr/bin/getconf
CS_LIBPATH):/usr/pkg/lib' >> /etc/rc.d/rc.local


после этого dlfunc работает корректно:

#  echo
'${dlfunc{/usr/pkg/libexec/exim/exim-dlfunc.so}{ip2country}{212.9.224.1}}'
| exim -be
> UA
>

встречаются еще советы править значение переменной _CS_LIBPATH.
вроде как документация по QNX сейчас ссылается именно на это значение.
но работают до сих пор оба. т. е. при изменении значения _CS_LIBPATH
меняется значение CS_LIBPATH и наоборот.



-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC




Подробная информация о списке рассылки exim-conf