2017-07-18 42 views
0

我正在开发一个项目,我希望基于Node.js的后端能够与Oracle DB进行通信,而在本地开发Windows系统时,并不难安装node-oracledb模块的必要条件,如https://community.oracle.com/docs/DOC-931127当我想为centos6安装相同的先决条件时,我正面临着问题。如何通过命令行在AWS centos6上安装node-oracledb模块?

列表预必需的,

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

安装前两个并不是一个挑战,但找到3的rpm包是一个凝灰任务。

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

回答

0

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

请按照下面的命令行以根用户身份的步骤(假设的Python已经安装):

1)下载所需的转速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的回购文件,这是一个包含支持的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了。

之前,你可以编译C++ 11与DevTools2编译代码,你需要启用它在一个新的shell:

scl enable devtoolset-2 bash 

现在,安装OracleDB的

npm install oracledb 

这将安装OracleDB的。

1

Oracle Instant Client库目前不能通过RPM使用。作为一种解决方法,许多人以正常的方式下载这些库,然后将它们放置在可通过网络访问的地方。然后他们使用卷曲等命令行工具在需要时将其拉入。

+0

我认为你的意思是NPM不是RPM? –

+0

我的意思是RPM,就像在命令行工具中那样,而不是文件格式。百胜和NPM同样如此! :) –

+0

即时客户端RPM必须安装rpm或yum命令行工具。 (我在解决一般问题时缺少什么?)对于拥有Oracle Linux支持的用户,Instant Client RPM软件包也处于ULN状态,因此这些用户甚至不需要单独下载它们。 –

0

即时客户端RPM可用于Linux的32-bit64-bit。 (即时客户端主页为here。)由于Centos不是官方支持的Linux,而是带有RPM的YMMV。

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

的即时客户端库将需要在LD_LIBRARY_PATH,也可以使用类似LDCONFIG到:

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

你还需要安装操作系统的libaio包。在RPM上使用yum将自动提取此依赖关系,或者可以单独安装。