2017-07-18 75 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將自動提取此依賴關係,或者可以單獨安裝。

相關問題