2015-04-03 121 views
4

我們正試圖在Amazon Elastic Beanstalk實例上安裝節點模塊oracledbElastic Beanstalk上的環境變量/ oracledb

我們可以得到​​本地正常工作,並且我們已經到了Beanstalk實例通過rpms安裝instantclient的地步。我們現在堅持的是npm install預計或者使用LD_LIBRARY_PATH爲即時客戶端在/opt/oracle/instantclient。目前,RPM包安裝到/usr/lib/oracle/12.1/client64

看來,有兩種可能的解決方案:

  1. 獲取RPM的instantclient安裝到/opt/oracle/instantclient或將其移動/其實
  2. 設置後,將其鏈接LD_LIBRARY_PATH環境變量,以便npm install知道使用instantclient從/usr/lib/oracle/12.1/client64

我們不知道該怎麼做在任何這些東西正常但是,Beanstalk配置。

我找不到任何有關Beanstalk實例實際運行的信息npm install並且我們沒有明確告訴它這樣做,但它正在運行。

通過環境屬性更改環境變量as the documentation suggests here不起作用。看似當服務器實際運行中

LD_LIBRARY_PATH=x node app.js 

它們不用於npm install這些只是設定。

我們如何更新我們的彈性青苗配置,要麼把我們想要的instantclient或設置LD_LIBRARY_PATH期間npm install?

回答

0

選項1:在/ opt/ORACLE/instantclient安裝OracleDB的/

你可以試試使用--prefix選項

rpm --prefix=/opt/oracle/instantclient/ <oracledb_pack_name>.rpm

它的工作原理只有在包reloca改變rpm包的安裝目錄文件夾表。

rpm -ql <oracledb_pack_name>.rpm

選項2:您可以檢查此更改LD_LIBRARY_PATH

正如customize-containers-format-commands

描述您可以使用的命令鍵對EC2實例執行命令。這些命令按字母順序按名稱處理,並且在設置應用程序和Web服務器並提取應用程序版本文件之前運行。

您可以嘗試導出配置文件commands:部分中的LD_LIBRARY_PATH。這應該爲npm導出env變量。喜歡的東西:

commands: 
    export-ld-lib: 
     command: export LD_LIB_PATH=//usr/lib/oracle/12.1/client64 
+0

如何用amazon elastic beanstalk配置指定前綴? – 2015-04-04 18:57:29

+0

我不確定您可以從Elastic Beanstalk配置rpm包安裝程序。你現在怎麼安裝它?上面的命令是用於shell的 – AndreiDMS 2015-04-04 19:21:36

+0

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-packages – 2015-04-04 23:27:38

0

在Linux上安裝節點OracleDB的,安裝驗看Oracle庫順序如下:

  1. 使用安裝時的環境變量$ OCI_LIB_DIR和$ OCI_INC_DIR
  2. 在最高版本的即時客戶端的RPM安裝
  3. 在$ ORACLE_HOME
  4. 在/ opt/ORACLE/instantclient

https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#linuxadv

你可以看到,確實這個邏輯https://github.com/oracle/node-oracledb/blob/master/binding.gyp

所以日前提,問題是不正確的,你不應該需要改變即時客戶端。使用Instant Client RPM時,運行'npm install oracledb'時不需要設置環境變量,並且不需要在運行時設置LD_LIBRARY_PATH。上面的鏈接有詳細信息。

問題是,什麼是你的安裝失敗?

相關問題