在 Ubuntu 16 服务器上运行使用 Firebird 的 nodejs 应用程序
Posted
技术标签:
【中文标题】在 Ubuntu 16 服务器上运行使用 Firebird 的 nodejs 应用程序【英文标题】:Run nodejs app that uses Firebird on a Ubuntu 16 Server 【发布时间】:2018-02-19 13:36:56 【问题描述】:我在 javascript 和 nodejs 中开发了一个 API,现在我尝试在 Ubuntu16 服务器上运行它。 API 在我的本地计算机上运行良好,但在服务器上运行良好。当我在服务器上启动它时,我有这个错误:
body-parser deprecated undefined extended:提供扩展选项 app.js:12:20 模块.js:328 抛出错误; ^
错误:找不到模块“火鸟” 在 Function.Module._resolveFilename (module.js:326:15) 在 Function.Module._load (module.js:277:25) 在 Module.require (module.js:354:17) 在要求(内部/module.js:12:17) 在对象。 (/root/Serveur/apishopline/app.js:17:10) 在 Module._compile (module.js:410:26) 在 Object.Module._extensions..js (module.js:417:10) 在 Module.load (module.js:344:32) 在 Function.Module._load (module.js:301:12) 在 Function.Module.runMain (module.js:442:10)
我已经在服务器上安装了 Firebird 2.5、nodejs v4.2.6、python v2.7.12 和 npm v3.5.2。
所以我尝试使用命令行安装 firebird 模块:
sudo npm install firebird
但我也有这个错误:
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libfbclient.so when
> searching for -lfbclient
> /usr/bin/ld: skipping incompatible /usr/lib/../lib/libfbclient.so when searching for -lfbclient
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/../../../libfbclient.so when searching
> for -lfbclient
> /usr/bin/ld: skipping incompatible //usr/lib/libfbclient.so when searching for -lfbclient
> /usr/bin/ld: cannot find -lfbclient
> collect2: error: ld returned 1 exit status
> binding.target.mk:133: recipe for target 'Release/obj.target/binding.node' failed
> make: *** [Release/obj.target/binding.node] Error 1
> make: Leaving directory '/root/node_modules/firebird/build'
> gyp ERR! build error gyp ERR! stack Error: `make` failed with exit
> code: 2 gyp ERR! stack at ChildProcess.onExit
> (/usr/local/lib/node_modules/node-gyp/lib/build.js:258:23) gyp ERR!
> stack at emitTwo (events.js:87:13) gyp ERR! stack at
> ChildProcess.emit (events.js:172:7) gyp ERR! stack at
> Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
> gyp ERR! System Linux 4.4.0-93-generic gyp ERR! command
> "/usr/bin/nodejs" "/usr/local/bin/node-gyp" "rebuild" gyp ERR! cwd
> /usr/local/lib/node_modules/firebird gyp ERR! node -v v4.2.6 gyp ERR!
> node-gyp -v v3.6.2 gyp ERR! not ok npm ERR! Linux 4.4.0-93-generic
> npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "firebird"
> "-g" npm ERR! node v4.2.6 npm ERR! npm v3.5.2 npm ERR! code
> ELIFECYCLE
>
> npm ERR! firebird@0.1.1 install: `node-gyp rebuild` npm ERR! Exit
> status 1 npm ERR! npm ERR! Failed at the firebird@0.1.1 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 firebird 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 firebird
> npm ERR! Or if that isn't available, you can get their info via: npm
> ERR! npm owner ls firebird npm ERR! There is likely additional
> logging output above.
>
> npm ERR! Please include the following file with any support request:
> npm ERR! /root/Serveur/apishopline/npm-debug.log
【问题讨论】:
来自错误跟踪:“确保您安装了最新版本的 node.js 和 npm。” (nodejs 4.2.6 和 npm 3.5.2 比较老)。顺便说一句:您能否使用代码而不是引号格式重新格式化所有错误消息,这将使它们更具可读性 @MarkRotteveel 我安装了最新版本,但问题出在这一行:/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/5/../ ../../../lib/libfbclient.so 搜索 -lfbclient 时 您的问题中找不到该错误。考虑使用当前的错误状态对其进行更新。 @MarkRotteveel 现在完成了 您的错误日志仍然显示您仍在使用旧的 NPM 和 NodeJS 版本。 【参考方案1】:您缺少 -lfbclient 库。当前名称和版本是libfbclient2,因此创建一个指向 libfbclient 的符号链接。
寻找 libfbclient2
find /usr/ libfb | grep libfb
进入libfbclient2所在目录
cd /path/to/lib/
创建符号链接以允许脚本找到 lfbclient
ln -s libfbclient2.so libfbclient.so
重新安装 npm 模块
npm install firebird
【讨论】:
以上是关于在 Ubuntu 16 服务器上运行使用 Firebird 的 nodejs 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用mono在apache服务器上运行aspx(以ubuntu 16.04为例)
如何在运行 Virtualmin 控制面板的 ubuntu 16.04 上安装 php 5.6
无法在 Ubuntu 16.04 lts 上运行的 apache 2.4.18 服务器上设置 X-Frame 选项