美文网首页
node环境安装和node-oracledb环境部署相关问题

node环境安装和node-oracledb环境部署相关问题

作者: 乐帅 | 来源:发表于2017-09-09 11:31 被阅读619次

    使用node-oracledb的伙伴可以参考本文进行环境安装,前言建议,如你项目是属于node-oracledb进行类客户端开发,可直接放弃该方案,node-oracledb是本机C++编译模块,node-oracledb的运行环境是必须环境,就是说,就算项目打包出来运行,node-oracledb这些环境依然是你目标机要求环境,相关问题参考官方issue,博主以失败方案为你亲身实验了一波,你应该将node-oracledb作为服务驱动,而不是客户端级别的驱动使用。

    Mac环境

    要求环境:

    • node基本环境
    • Python 环境,通常MacOS10.12版本以上自带python环境
    • 成功安装instantclient-basic-macos.x64-12.1.0.2.0.zip 及instantclient-sdk-macos.x64-12.1.0.2.0.zip

    Mac环境node安装

    搭建node环境,建议通过node版本管理工具,当然也可以去官网下载安装包安装,这里介绍mac系统node版本管理工具nvm

    curl工具现在成为了mac内置命令,通常mac电脑自带curl工具,如未安装curl请自行下载安装,

    • 下载与执行远程安装nvm脚本
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
    
    • 添加系统变量,mac电脑可用~/.bashrc, ~/.bash_profile, 或者 ~/.zshrc来管理系统变量,在你电脑中用户根文件夹执行
    ls -a
    

    查看是否已有上诉文件,如无,新建.bash_profile文件,或者另外两种之一亦可,并用vi编辑文件,黏贴以下变量:

    touch .bash_profile //新建.bash_profile文件
    
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
    
    source .bash_profile // 重新加载
    

    重启命令行工具

    nvm -v // 查看nvm工具是否安装成功
    nvm ls-remote // 查看远程可选node安装版本
    nvm install 8.3.0 // 安装node 版本8.3.0
    nvm ls // 查看本机已安装node版本并进行管理
    

    oracle即时客户端及SDK安装

    进入官网下载Mac版instantclient-basic-macos.x64-12.1.0.2.0.zip和 instantclient-sdk-macos.x64-12.1.0.2.0.zip

    将两个文件夹解压到系统根目录下某一新文件夹,通常为/opt/oracle,如无路径可自行新建,这里将使用路径/usr/local/oracle, 打开路径后,把上述文件拷贝到该路径下,执行以下操作

    cd /usr/local/oracle
    unzip instantclient-basic-macos.x64-12.2.0.2.0.zip
    unzip instantclient-sdk-macos.x64-12.2.0.2.0.zip
    mv instantclient_12_2 instantclient
    cd instantclient
    ln -s libclntsh.dylib.12.1 libclntsh.dylib
    

    添加系统变量:

    同样是之前的用户根目录下,vi打开文件.bash_profile文件,添加变量

    export OCI_LIB_DIR=/usr/local/oracle/instantclient
    export OCI_INC_DIR=/usr/local/oracle/instantclient/sdk/include
    

    npm install

    到此oracledb必要环境即安装基本完成,可进入项目执行

    npm install oracledb
    

    如oracledb安装成功,即可进行node_modules全量安装,否则解决oracledb安装问题。

    npm install 
    

    Windows环境

    要求环境:

    • node基本环境
    • Visual Studio 2005 redistributable 对应Oracle client 11.2 或 Visual Studio 2010 redistributable及以上版本对应Oracle client 12.1
    • Python 2.7 环境
    • 成功安装instantclient-basic-windows.x64-12.2.0.1.0.zip 及 instantclient-sdk-windows.x64-12.2.0.1.0.zip

    node安装

    搭建node环境,建议通过node版本管理工具,当然也可以去官网下载安装包安装,可选管理工具:nvm-windowsnodist
    这里介绍使用nvm-windows安装node,安装成功nvm-windows后重启电脑,打开cmd命令界面执行:

    nvm -v
    

    查看nvm是否安装成功,未成功,请重新安装,接下来执行

    nvm arch 64 //如电脑是32位系统应设置为32
    nvm list available //查看远程可安装node 版本
    

    选择版本安装node v8.3.0

    nvm install 8.3.0
    
    node -v // 查看node是否安装成功
    nvm list // 查看当前已安装node 版本及进行相应管理
    

    Visual studio安装

    Visual Studio 2013 (VC++ 12.0)及以上版本安装,各机型有可能会遇到问题,建议进行全量安装Visual C++ Build Tools,直接避免后期问题,或者强迫症也可以坚持部分安装,只进行安装Visual Studio 2013 redistributable。官网Visual C++ 支持包下载列表

    进入Visual C++ 2015 Build Tools官网下载Visual C++ 2015 Build Tools进行全量安装
    安装过程中可能需要.Net Framework 版本环境要求请按要求自行安装

    python安装

    1 官网下载安装包下载,默认安装在C:\Python27
    2 环境变量添加:
    点击我的电脑—属性—高级系统设置—环境变量—系统变量Path——编辑,添加 C:\Python27 及 C:\Python27\Scripts,变量之间以分号“;”间隔

     python // 检测是否安装成功
    

    oracle即时客户端及SDK安装

    1 进入官网下载 instantclient-basic-windows.x64-12.2.0.1.0.zip和 instantclient-sdk-windows.x64-12.2.0.1.0.zip

    2 C盘建立oracle文件夹,将下载的两个安装包全部解压至该文件夹下面,
    3 添加系统环境变量

    • Path下添加:C:\oracle\instantclient_12_2;
    • 新建变量 OCI_INC_DIR=C:\oracle\instantclient_12_2\sdk\include\
    • 新建变量 OCI_LIB_DIR=C:\oracle\instantclient_12_2\sdk\lib\msvc\

    4 如电脑还有设置防火墙,请查看官网文档.

    npm install

    到此oracledb必要环境即安装基本完成,可进入项目执行

    npm install oracledb
    

    如oracledb安装成功,即可进行node_modules全量安装,否则解决oracledb安装问题。

    npm install 
    

    关于另一种方式安装win下环境:

    网上相关资料有 windows-build-tools包同样能全自动解决所有部署环境,但是在操作过程中,同样试了一下,但是没有成功,但是有部分人成功了,本文同样列举相关操作进行自动环境部署作为方案之一:
    首先确认你的npm版本应该大于5版本以上,以管理员身份进行操作,导航至你项目下,同样注意电脑.Net Framework版本环境4.5.1及以上:

    // navigate to your app folder
    npm install --global npm // 如npm版本过低,才需执行
    npm install --global --production windows-build-tools
    npm install instantclient
    set PATH=%cd%\instantclient;%USERPROFILE%\.windows-build-tools\python27;%PATH%
    set OCI_LIB_DIR=%cd%\instantclient\sdk\lib\msvc
    set OCI_INC_DIR=%cd%\instantclient\sdk\include
    npm install oracledb
    

    相关设定命令补充:

    npm config set python python2.7
    npm config set msvs_version 2015 // 你应该检查当前安装的visual studio C++是2015才能设定为2015,否则为你本机安装版本。
    

    windows-build-tools库入口

    npm install和运行可能遇到问题及其解决方式:

    oracledb安装问题

    通常情况下,安装问题更容易在windows系统下遇到,Mac环境下,npm安装失败,一般都是oracle即时客户端及SDK安装时路径不对或者系统变量未正确设置,这里主要介绍我在window环境下安装遇到的各种问题,仅供参考

    • 问题一:
      C:\Program Files (x86)\MSBuild...\msbuild.exe未找到,或无默认定义MSBuild之类问题,或者是 node-gyp rebuild errors等等类似错误,即属于visual studio C++ build tools必要工具安装未成功,或node-gyp相关工具未能安装正确
      解决办法: 确认项目node_modules中node-gyp成功安装(一般不会这里出错,必要时,可全局安装执行npm install -g node-gyp), 正常情况下,应该是你的Visual studio c++ 相关环境未能正确安装,建议按之前步骤全部重新安装visual studio C++ build tools。

    • 问题二:
      未能找到oci.h,或类似xxx.h 文件,造成npm install oracledb 错误。
      解决办法: 电脑环境关于instantclient-basic-windows.x64-12.2.0.1.0.zip和 instantclient-sdk-windows.x64-12.2.0.1.0.zip两解压包环境操作不当,或环境配置错误,建议重新按照上述步骤重新部署当前两种环境。

    oracledb构建问题

    oracledb属于C++原生模块,如你项目属于electron相关项目,项目启动时构建模块时可能遇到类似问题如下:

    构建使用node版本不对

    The module '...'
    was compiled against a different Node.js version using
    NODE_MODULE_VERSION 51. This version of Node.js requires
    NODE_MODULE_VERSION 53. Please try re-compiling or re-installing
    

    或者是未能找到oci.h,或类似xxx.h 文件定义错误相关

    此类问题都是属于electron未能成功构建本地原生模块构成,可查看官方说明

    方法一:

    // 1. Install electron-rebuild
    
        npm install --save-dev electron-rebuild
    
    
    
    // 2. Rebuild
    
        # 每次运行"npm install"出错时,运行这条命令
        ./node_modules/.bin/electron-rebuild
    
        # 在windows下如果上述命令遇到了问题,尝试这个:
        .\node_modules\.bin\electron-rebuild.cmd
        
    

    方法二(不建议使用):

    // 全局设置
    # Electron 的版本。
    export npm_config_target=1.2.3
    # Electron 的系统架构, 值为 ia32 或者 x64。
    export npm_config_arch=x64
    export npm_config_target_arch=x64
    # 下载 Electron 的 headers。
    export npm_config_disturl=https://atom.io/download/electron
    # 告诉 node-pre-gyp 是为 Electron 构建。
    export npm_config_runtime=electron
    # 告诉 node-pre-gyp 从源代码构建模块。
    export npm_config_build_from_source=true
    # 下载所有依赖,并缓存到 ~/.electron-gyp。
    HOME=~/.electron-gyp npm install
    
    

    相关文章

      网友评论

          本文标题:node环境安装和node-oracledb环境部署相关问题

          本文链接:https://www.haomeiwen.com/subject/gxvojxtx.html