我正在开发一个使用node.js的应用程序。开发环境是在windows操作系统上连接到Oracle DB,而QAT环境是在带有linux风格的云上。它在dev上工作得很好,当涉及到QAT时,它会抛出以下错误。如果我可以在QAT中部署之前捆绑oracledb,我希望
ERR 1047:找不到64位Oracle客户端库:"libclntsh.so:无法打开共享对象文件:没有这样的文件或目录“。请参见oracledb获取帮助错误节点-oracledb安装说明: Oracle ERR您必须在LD_LIBRARY_PATH中具有64位https://oracle.github.io/odpi/doc/installation.html#linux客户端库,或者使用ldconfig进行配置。ERR如果此计算机上没有Oracle数据库,请安装ERR提供的即时客户端基本或基本轻量级软件包
我试着设置LIB路径。这也没有用。
发布于 2019-06-05 07:35:45
当你到达QAT后,你有没有尝试过npm安装?我相信依赖node-gyp的包通常会进行一些编译,并且依赖于当前的操作系统。
发布于 2019-06-05 12:39:42
错误消息看起来非常清楚:您需要为Linux安装64位Oracle客户端库。您已经在Windows的开发机器上安装了这些工具。
错误URL链接显示了如何在QAT环境中执行此操作。最简单的是即时客户端,它被链接到消息中。
从技术上讲,您可以将Linux库与应用程序捆绑在一起,但在调用应用程序之前,您需要以某种方式设置操作系统库搜索路径,例如LD_LIBRARY_PATH。您可以使用包装器shell脚本来完成此操作:
#!/bin/sh
export LD_LIBRARY_PATH=/whatever/instantclient_19_3
node myapp.js
这可能会变得混乱,而且您还需要在部署时上载所有Instant客户端库。
对于Linux,我建议将Instant Client视为基础操作系统的一部分,并将其作为机器的一个要求。您可以安装即时客户端RPM,而不需要任何点击,请参阅此Dockerfile。
https://stackoverflow.com/questions/56452510
复制相似问题