[freebsd] oracle_fdw

Denis deniska64 at ya.ru
Wed Jul 11 11:00:00 EEST 2018


> 09.07.2018 9:48, Denis Bezkrovniy пишет:
> > Добрый день
> > на гитхаб есть проект https://github.com/laurenz/oracle_fdw
> > работает как расщирение в postgresql
> > Так вот. мне нужно прикрутить это расширение в postgresql. Для
> > работы нужен oralcle-instantclient
> > (databases/linux-oracle-instantclient) который я установил.
> > Собираю/устанавливаю oracle_fdw, все отрабатыает, но не работает. 
> > В постгрес пробую установить oracle_fdw, в ответ получаю ошибку
> > 
> > ОШИБКА:  загрузить библиотеку
> > "/usr/local/lib/postgresql/oracle_fdw.so" не удалось: dlopen
> > (/usr/local/lib/postgresql/oracle_fdw.so)
> > failed: /usr/local/lib/postgresql/oracle_fdw.so: Undefined symbol
> > "OCICollGetElem"
> > 
> > полагаю для работы нужен libclntsh.so (библиотека из состава
> > linux_oracle-instantclient), но как ее прикрутить не знаю.  
> 
> Подгрузить линуксовую библиотеку в фрёвый бинарник? Никак afaik.
> Подгрузить линуксовую библиотеку в линуксовый бинарник под
> линуксолятором можно - положить её внутрь линуксолятора и указывать
> путь относительно корня линуксолятора (/compat/linux или как там его).
> 
> 

Добрый день.
Как указать? 
Собрал oracle_fdw под centos6, скопировал на машину c FreeBSD, положил
в /compat/linux/usr/lib, сделал символическую ссылку

cd /usr/local/lib/postgesql
ln -s /compat/linux/usr/lib/oracle_fdw.so oracle_fdw.so

перезапустил postgres.
в postgres пробую подключить раширение и получаю ошибку
ОШИБКА:  загрузить библиотеку "/usr/local/lib/postgresql/oracle_fdw.so" не удалось: dlopen (/usr/local/lib/postgresql/oracle_fdw.so) failed: Shared object "libclntsh.so.12.1" not found, required by "oracle_fdw.so"

если чрутиться в /compat/linux и экспортнуть путь до библиотеки, то
ldd показывает слинкованные библиотеки.
Пробовал добавить
export/setenv
LD_LIBRARY_PATH="/compat/linux/usr/lib/oracle/client64/lib"  в 
/compat/linux/etc/csh.cshrc
/compat/linux/etc/csh.login
/compat/linux/etc/bashrc
даже в
/compat/linux/etc/ld.so.conf прописал путь до бибилиотеки
из chroot нивкакую не линкуется, и в postgres не подключает библиотеку
Если в freebsd в ~/.cshrc добавить строки
setenv  ORACLE_HOME /usr/lib/oracle/12.2/client64
setenv  LD_LIBRARY_PATH /usr/lib/oracle/12.2/client64/lib то
чрутясь библиотеки линкуются. 
Как сделать подобное, чтобы подгружалась библиотека в postgresql?

-- 
С Уважением,
Безкровный Денис


More information about the freebsd mailing list