gpt4 book ai didi

node.js - Elastic Beanstalk 上的环境变量/oracledb

转载 作者:搜寻专家 更新时间:2023-10-31 23:24:56 24 4
gpt4 key购买 nike

我们正在尝试安装 Node 模块 oracledb在 Amazon Elastic Beanstalk 实例上。

我们可以让 oracledb 在本地正常工作,并且我们已经到了 Beanstalk 实例通过 rpms 安装 instantclient 的地步。我们现在坚持的是 npm install 期望使用 LD_LIBRARY_PATH 让 instantclient 在 /opt/oracle/即时客户端。目前,rpms 将其安装到 /usr/lib/oracle/12.1/client64

似乎有两种可能的解决方案:

  1. 获取 rpm 以将 instantclient 安装到 /opt/oracle/instantclient 或在事后移动/链接它
  2. 设置 LD_LIBRARY_PATH 环境变量,以便 npm install 知道使用 /usr/lib/oracle/12.1/client64/中的 instantclient

不过,我们不知道如何在 Beanstalk 配置中正确地完成这些事情。

我找不到任何关于 Beanstalk 实例何时实际运行 npm install 的信息,我们没有明确告诉它这样做,但它正在运行。

通过环境属性更改环境变量 as the documentation suggests here 不起作用。看似这些仅在服务器实际运行时设置,如

LD_LIBRARY_PATH=x node app.js

它们不用于 npm install

我们如何更新我们的弹性 beantalk 配置以将 instantclient 放在我们想要的地方或在 npm install 期间设置 LD_LIBRARY_PATH

最佳答案

在 Linux 上安装 node-oracledb v1 时,安装会按以下顺序查找 Oracle 库:

  1. 使用安装时环境变量 $OCI_LIB_DIR 和 $OCI_INC_DIR
  2. 安装了最高版本的 Instant Client 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 中看到执行此操作的逻辑

所以问题的前提是不正确的,你不应该需要改变即时客户端。使用即时客户端 RPM,您不需要在运行“npm install oracledb”时设置环境变量,也不需要在运行时设置 LD_LIBRARY_PATH。上面的链接有详细信息。

问题是,您的安装失败的原因是什么?

更新:对于 node-oracledb v2,您确实需要设置 ORACLE_HOME(仅适用于完整的 Oracle 安装)或使用 LD_LIBRARY_PATH 或使用 ldconfig,如 installation manual 中所述

关于node.js - Elastic Beanstalk 上的环境变量/oracledb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29436994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com