2016-04-13 4 views
-1

Я получаю следующее сообщение об ошибке в моем nodejs сценарии с помощью модуля oracledb на Centos 6 VM:Nodejs модуль oracled не может найти LD_LIBRARY_PATH

Error: libclntsh.so.11.1: cannot open shared object file: No such file or directory 

Мы используем полный клиент Oracle. Мои поисковые запросы привели меня к ошибке LD_LIBRARY_PATH. Он установлен в /etc/profile.d/ в сценарии oracle, и я могу видеть его на выходе моего Linux-пользователя env. Но когда я проверяю process.env в скрипте узла, LD_LIBRARY_PATH просто не существует. (Если добавить другие переменные в мой /etc/profile.d сценарий, эти тестовые переменные появляются в process.env)

Другая странность в том, что, когда я бегу сценарий как root, переменная получает правильно установлен и сценарий выполняется, как ожидалось.

Так почему же LD_LIBRARY_PATH исчезает, когда мой пользователь без полномочий root запускает скрипт?

ответ

0

Вы не объяснили, как вы вызываете скрипт. Если вы используете sudo-ing, вам нужно вызвать сценарий оболочки, который устанавливает LD_LIBRARY_PATH перед вызовом узла?

+0

Когда я использую пользователя без полномочий root, я просто запускаю скрипт без sudo. LD_LIBRARY_PATH устанавливается только в /etc/profile.d и нигде. – newmangt

+0

Вы фактически «экспортировали» его? Как вы вызываете узел? –

Смежные вопросы