npm install oracledb 给出错误:找不到 $OCI_LIB_DIR/libclntsh.dylib

Posted

技术标签:

【中文标题】npm install oracledb 给出错误:找不到 $OCI_LIB_DIR/libclntsh.dylib【英文标题】:npm install oracledb giving error : Cannot find $OCI_LIB_DIR/libclntsh.dylib 【发布时间】:2017-05-30 21:20:10 【问题描述】:

我正在尝试使用 npm 在我的 Mac 上安装 oracledb 驱动程序。我已经按照给定的link 中提到的每一个步骤进行操作。当我尝试安装 oracledb 软件包时:npm install oracledb 我收到以下错误

> oracledb@1.12.2 install /opt/oracle/instantclient/node_modules/oracledb
> node-gyp rebuild
node-oracledb ERR! Error: Cannot find $OCI_LIB_DIR/libclntsh.dylib
node-oracledb ERR! Error: Do you need to run 'cd $OCI_LIB_DIR && ln -s libclntsh.dylib.* libclntsh.dylib'?
node-oracledb ERR! Error: See https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instosx
gyp: Call to 'INSTURL="https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instosx"; ERR="node-oracledb ERR! Error:"; if [ -z $OCI_LIB_DIR ]; then if [ -f /opt/oracle/instantclient/libclntsh.dylib ]; then echo "/opt/oracle/instantclient/"; else echo "$ERR Cannot find /opt/oracle/instantclient/libclntsh.dylib" >&2; echo "$ERR Do you need to run 'cd /opt/oracle/instantclient && ln -s libclntsh.dylib.* libclntsh.dylib'?" >&2; echo "$ERR See $INSTURL" >&2; echo "" >&2; fi; else if [ -f "$OCI_LIB_DIR/libclntsh.dylib" ]; then echo $OCI_LIB_DIR; else echo "$ERR Cannot find \$OCI_LIB_DIR/libclntsh.dylib" >&2; echo "$ERR Do you need to run 'cd \$OCI_LIB_DIR && ln -s libclntsh.dylib.* libclntsh.dylib'?" >&2; echo "$ERR See $INSTURL" >&2; echo "" >&2; fi; fi;' returned exit status 0 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:305:16)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Darwin 16.1.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/oracle/instantclient/node_modules/oracledb
gyp ERR! node -v v7.0.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 
npm WARN enoent ENOENT: no such file or directory, open '/opt/oracle/instantclient/package.json'
npm WARN instantclient No description
npm WARN instantclient No repository field.
npm WARN instantclient No README data
npm WARN instantclient No license field.
npm ERR! Darwin 16.1.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "oracledb"
npm ERR! node v7.0.0
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! oracledb@1.12.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the oracledb@1.12.2 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the oracledb package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs oracledb
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls oracledb
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /opt/oracle/instantclient/npm-debug.log

我的节点版本是v7.0.0,我的npm版本是v3.10.8。有人可以告诉我我做错了什么吗?

【问题讨论】:

【参考方案1】:

阅读install doc。总结:

    安装 XCode 安装 Instant Client 创建 Instant Client 12c 使用的符号链接 将 OCI_LIB_DIR 和 OCI_INC_DIR 设置为 Instant Client 目录 如果您位于防火墙后面,请设置 http_proxy 运行npm install oracledb 如果使用sudo,你可能需要运行sudo -E npm install oracledb

为了帮助诊断您的问题,请向我们展示您尝试过的步骤的日志。

【讨论】:

使用 node-oracledb 2.x 您应该将 Instant Client 'Basic' 或 'Basic Light' 包放在 ~/lib 中。不需要 Instant Client SDK。不需要 OCI_LIB_DIR 或 OCI_INC_DIR。对于最近的“npm”版本,您可能需要设置 https_proxy。

以上是关于npm install oracledb 给出错误:找不到 $OCI_LIB_DIR/libclntsh.dylib的主要内容,如果未能解决你的问题,请参考以下文章

npm install 给出错误:EPERM,取消链接

NEXUS npm install 给出 403 错误

“npm install”给出错误消息“无效”,它是啥?

npm install 在这么多警告后给出错误

npm install -g create-react-app 给出错误

npm install from tfs feed(在构建过程中)给出错误:无法验证