Node.js教程 node环境安装和node-oracledb环境部署相关问题浅析
沉沙 2018-06-27 来源 : 阅读 1126 评论 0

摘要:使用node-oracledb的伙伴可以参考本文进行环境安装,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。

使用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 instantclientcd 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-windows或 nodist
这里介绍使用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下环境:

本文同样列举相关操作进行自动环境部署作为方案之一: 首先确认你的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 instantclientset PATH=%cd%\instantclient;%USERPROFILE%\.windows-build-tools\python27;%PATH%set OCI_LIB_DIR=%cd%\instantclient\sdk\lib\msvcset 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=x64export 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.js频道,学习更多WEB前端知识!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程