linux - Nodejs模块oracle找不到LD_LIBRARY_PATH

标签 linux node.js oracle centos6

我在 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/

相关文章:

php - mkdir 给出 'File exists' 警告,即使我在尝试创建目录之前调用 is_dir

mysql不想启动

python - Node.js 是否有相当于 Python 迭代器工具?

javascript - NodeJS 的命令字符串解析工具

python - 在Python中使用callproc调用包含记录集合的存储过程

c - bash 解释器 linux 的读/写标准输入/输出,fork - execl

linux - 将查找结果复制到另一个目录时出现问题

node.js - 通过 webhook 将 Google Home 连接到 node.js

sql - 查找第二列中的任何位置是否存在值并返回结果

sql - 在Oracle SQL Developer中按相对路径执行脚本