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