2016-04-13 47 views
-1

我使用一個CentOS 6 VM的OracleDB的模塊收到以下錯誤在我的腳本的NodeJS:模塊的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

你沒有解釋你是如何調用腳本的。如果您正在編寫腳本,是否需要在調用節點之前調用設置LD_LIBRARY_PATH的shell腳本?

+0

當我使用非root用戶時,我只運行沒有sudo的腳本。 LD_LIBRARY_PATH只在/etc/profile.d中設置,而不在其他地方。 – newmangt

+0

你真的「出口」嗎?你如何調用節點? –