【问题标题】:How to install node-oracledb module on AWS centos6 through command line?如何通过命令行在 AWS centos6 上安装 node-oracledb 模块?
【发布时间】:2017-12-23 06:47:20
【问题描述】:

我正在做一个项目,我希望我的基于 Node.js 的后端与 Oracle DB 进行通信,在 Windows 系统上进行本地开发时,安装这里提到的 node-oracledb 模块的先决条件并不困难@987654321 @ 但是现在当我想为 centos6 安装相同的先决条件时,我遇到了问题。

先决条件列表,

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

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

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

【问题讨论】:

    标签: javascript node.js oracle centos6 node-oracledb


    【解决方案1】:

    经过所有的搜索和努力,我终于能够通过命令行在我的 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。

    【讨论】:

      【解决方案2】:

      即时客户端 RPM 可用于 32-bit64-bit Linux。 (Instant Client 主页是here。)由于 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 会自动引入此依赖项,或者您可以单独安装它。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 我认为您的意思是 NPM 而不是 RPM?
        • 我指的是命令行工具中的 RPM,而不是文件格式。 Yum 和 NPM 也是如此! :)
        • Instant Client RPM 必须使用 rpm 或 yum 命令行工具安装。 (我在要解决的一般问题中遗漏了什么?)对于支持 Oracle Linux 的用户,Instant Client RPM 软件包也在 ULN 上,因此这些用户甚至不需要单独下载它们。
        • 我认为问题在于他无法通过命令行获取 RPM。我建议他获取它们一次,然后将它们放在可以通过命令行获取它们的地方。
        • 谢谢,你们的cmets帮了我。
        猜你喜欢
        • 2015-08-23
        • 2012-11-16
        • 2017-01-27
        • 2020-11-11
        • 2023-03-28
        • 2018-12-06
        • 2015-11-05
        • 2015-12-21
        • 2020-01-10
        相关资源
        最近更新 更多