-1

我正在开发一个项目,我希望基于 Node.js 的后端与 Oracle DB 进行通信,在 Windows 系统上进行本地开发时,安装 node-oracledb 模块的先决条件并不困难,如此处所述https://community .oracle.com/docs/DOC-931127但现在当我想为 centos6 安装相同的先决条件时,我遇到了问题。

先决条件清单,

  1. 支持 C++ 11 的 C 编译器。
  2. Python。
  3. Oracle Instant Client“基本”和“SDK”包。

安装前两个不是挑战,但为 3 找到 rpm 包是一项艰巨的任务。

注意:一切都必须使用命令行完成。

4

3 回答 3

1

Oracle Instant Client 库目前无法通过 RPM 获得。作为一种解决方法,许多人以正常方式下载库,然后将它们放在可以通过网络访问的地方。然后他们使用 curl 之类的命令行工具在需要时将它们拉入。

于 2017-07-18T15:52:50.757 回答
0

经过所有的搜索和努力,我终于能够通过命令行在我的 Centos 系统上安装 oracledb。

请以 root 用户身份在命令行上执行以下步骤(假设 Python 已安装):

1) 下载所需的 rpm Oracle 即时客户端软件包。

wget ftp://ftp.icm.edu.pl/vol/rzm6/linux-slc/centos/7.1.1503/cernonly/x86_64/Packages/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

wget ftp://ftp.icm.edu.pl/vol/rzm6/linux-slc/centos/7.0.1406/cernonly/x86_64/Packages/oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

wget ftp://ftp.icm.edu.pl/vol/rzm6/linux-slc/centos/7.0.1406/cernonly/x86_64/Packages/oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

以上命令将为 oracle 即时客户端下载 rpm 包。

2)安装下载的rpm包。

[~]: sudo rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
Preparing...                ########################################### [100%]
   1:oracle-instantclient12.########################################### [100%]
[~]: sudo rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
Preparing...                ########################################### [100%]
   1:oracle-instantclient12.########################################### [100%]
[~]: sudo rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:oracle-instantclient12.########################################### [100%]

3) 下载 DevTools2 的 repo 文件,这是一个包含受支持的 C++11 编译器的 Red Hat 软件包。

wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo

4) 安装编译器和支持工具。

yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

以上步骤将下载 Oracle 即时客户端、C++ 编译器和 DevTools2 编译器。现在是安装 oracledb 的时候了。

在使用 DevTools2 编译器编译 C++11 代码之前,您需要在新的 shell 中启用它:

scl enable devtoolset-2 bash

现在,安装 oracledb

npm install oracledb

这将安装 oracledb。

于 2017-08-08T13:22:53.513 回答
0

Instant Client RPM 可用于32 位64 位Linux。(Instant Client 主页在此处。)由于 Centos 不是官方支持的 Linux,因此带有 RPM 的 YMMV。

如果 RPM 由于某种原因无法使用,请下载 Instant Client ZIP 文件,解压缩它们,然后创建符号链接ln -s libclntsh.so.12.1 libclntsh.so

Instant Client 库需要在 中LD_LIBRARY_PATH,或者您可以使用 ldconfig 类似于:

sudo sh -c "echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig

您还需要安装 OS libaio 软件包。在 RPM 上使用yum将自动引入此依赖项,或者您可以单独安装它。

于 2017-07-19T01:54:33.390 回答