Мне нужно добавить /oracle/v10.2.0/lib в LD_LIBRARY_PATH, чтобы использовать модуль DBI для подключения к Oracle.Ошибка инициализации LD_LIBRARY_PATH в блоке BEGIN
Если я установил LD_LIBRARY_PATH в оболочку перед выполнением скрипта perl, все в порядке.
Но он не работает из сценария:
BEGIN {
$ENV{'LD_LIBRARY_PATH'}='/oracle/v10.2.0/lib';
}
use DBI;
Когда я выполнить сценарий, я получаю ошибку:
install_driver(Oracle) failed: Can't load '/usr/apps/perl5/site_perl/5.8.8/i686-linux/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory at /usr/apps/perl5/5.8.8/i686-linux/DynaLoader.pm line 230. at (eval 3) line 3 Compilation failed in require at (eval 3) line 3. Perhaps a required shared library or dll isn't installed where expected at /var/tmp/getTraceDB.pl line 23
Exec - это правильный путь, но я думаю, вы попали в бесконечный цикл. Вы должны выполнять только тогда, когда правильный путь еще не был в '$ ENV {LD_LIBRARY_PATH}', потому что нет условия хвоста. – Axeman
с exec он работает, спасибо. Единственная проблема заключается в том, что отладчик perl («-d») больше не работает ... exec запускает скрипт сразу –
Greg Dan- Welcome. –