libclntsh.so.12.1:运行node-oracledb的样本时无法打开共享对象文件错误
我的目标是从Ubuntu连接到VMWare客户机(OpenSuse)上的oracle数据库。
现在我只安装了oracledb驱动程序,并试图运行示例连接程序给出。
我在下面的步骤是从github INSTALL页面。 我到现在为止所做的是:
1)由于我已经安装了node.js,我跳过了步骤3.1 。
2)我已经成功下载并提取了基本和sdk,如步骤3.2所述 。
3)由于我找不到任何名为libaio
软件包,但是我find了libaio1
。 所以我安装了libaio1
。
4)我创build了环境variablesLD_LIBRARY_PATH
,在我的电脑上它的内容是/opt/oracle/instantclient
。
5)如步骤3.3所述 ; 尽pipe在我的情况下这不是强制性的; 我创build了两个环境variables:内容为/opt/oracle/instantclient
OCI_INC_DIR
和内容为/opt/oracle/instantclient/sdk/include
OCI_INC_DIR
。
6)安装node-oracledb
。
我正在尝试运行示例连接程序。 我使用的代码是https://github.com/ishanatmuz/oracle-test 。 当我运行node connect.js
我得到这个错误。
/home/ishan/node.js/oracle-test/node_modules/oracledb/lib/oracledb.js:28 throw err; ^ Error: libclntsh.so.12.1: cannot open shared object file: No such file or directory at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/ishan/node.js/oracle-test/node_modules/oracledb/lib/oracledb.js:23:15) at Module._compile (module.js:456:26) at Object.Module._extensions..js (modullibclntsh.so.12.1e.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17)
由于我还没有启动VMware客机, 我希望得到一个没有find这样的数据库实例的错误。 然后才运行VMWare机器并连接到其中的数据库。 但相反,我得到的libclntsh.so.12.1
cannot open shared object file
的错误。
我的第一个怀疑是LD_LIBRARY_PATH实际上没有设置或导出正确。 三重检查它被设置,并且该目录可以被尝试启动节点的实际shell读取。
我还要检查在机器上安装了哪些Oracle库。
出口仅适用于一个过程。 看来,它不出现在你的terminal窗口(这是单独的过程)。 因此,在开始node connect.js
之前(在您要开始节点的同一个terminal窗口中),您应该再次执行以下操作:
export LD_LIBRARY_PATH=/opt/oracle/instantclient:$LD_LIBRARY_PATH
这对我工作:
ORACLE_HOME=/opt/ora/instantclient_12_1 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
看到这个职位信息: 安装python的cx_oracle