我在 Centos 6 VM 上使用 oracledb 模块时在 Nodejs 脚本中遇到以下错误:
Error: libclntsh.so.11.1: cannot open shared object file: No such file or directory
我们正在使用完整的 Oracle 客户端。我的谷歌搜索让我发现LD_LIBRARY_PATH
是问题所在。它在 oracle 脚本中的 /etc/profile.d/
中设置,我可以在我的 linux 用户的 env
输出中看到它。但是当我在 Node 脚本中检查 process.env
时,LD_LIBRARY_PATH
根本不存在。 (如果我将其他变量添加到我的 /etc/profile.d
脚本中,这些测试变量将出现在 process.env
中)
另一个奇怪的地方是,当我以 root
身份运行脚本时,变量被正确设置并且脚本按预期执行。
那么当我的非 root 用户运行脚本时,为什么 LD_LIBRARY_PATH
会消失?
最佳答案
您没有解释如何调用该脚本。如果您使用 sudo,是否需要在调用 Node 之前调用设置 LD_LIBRARY_PATH 的 shell 脚本?
关于linux - Nodejs模块oracle找不到LD_LIBRARY_PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603643/