ubuntu上的node-xmpp-bosh错误

时间:2012-04-01 23:01:09

标签: ubuntu ubuntu-11.10 bosh

我想实现一个bosh服务器。因为在Windows平台上很难,我决定通过VMware在Ubuntu虚拟机上部署它。我安装没有问题。我在此页面上执行了此过程:http://code.google.com/p/node-xmpp-bosh/wiki/DebianHowTo。 现在我想在控制台上使用命令sudo boshsudo /etc/init.d/bosh start来测试我的bosh服务器Starting bosh server.什么都没有。

我查看bosh.err文件,我看到exec: 2: /usr/local/lib/bosh/run-server.js: Permission denied我不知道为什么sudo出现此错误。


我给了dhruvbird的可执行权限说:chmod +x /usr/local/lib/bosh/run-server.js

现在,当我执行命令sudo bosh时,我在终端上有Starting boshbosh.err有这个:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'ltx'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/usr/local/lib/bosh/src/bosh.js:26:19)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Module.require (module.js:357:17)̍

当我执行命令sudo /etc/init.d/bosh start时,终端上总是有Starting bosh,而bosh.err上有/usr/bin/env: node: No such file or directory

dpkg -L nodejs | grep bin

我的波什服务器无效。


我运行dpkg -L node | grep binapt-get update && apt-get install -u nodejs,我可以读到每次测试都没有安装软件包。我运行apt-get update && apt-get install -u nodenode -v并始终保持相同的结果。当我运行v0.6.3并拥有home/node时,我认为这意味着节点已安装。我在npm install node-xmpp-bosh上有节点目录。这是路径问题吗?


我尝试运行... info preuninstall node-xmpp-bosh@0.5.6 info uninstall node-xmpp-bosh@0.5.6 verbose unbuild node-xmpp-bosh@0.5.6 [ true, verbose unbuild node-xmpp-bosh@0.5.6 '/home/frederic/node_modules', verbose unbuild node-xmpp-bosh@0.5.6 '/home/frederic/node_modules' ] verbose binRoot [ '/home/frederic/node_modules/.bin', verbose binRoot { 'bosh-server': './run-server.js' } ] info postuninstall node-xmpp-bosh@0.5.6 ERR! Error: shasum check failed for /tmp/npm-1333573304110/1333573499309-0.1599154758732766/tmp.tgz ERR! Expected: 1ceb545541dce5531c12187b80de902718a6afd2 ERR! Actual: a3920de4ba03316b05b8c94163ea39ba3db434cc ERR! at /usr/local/lib/node_modules/npm/lib/utils/sha.js:25:20 ERR! at [object Object].<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/sha.js:49:5) ERR! at [object Object].emit (events.js:64:17) ERR! at afterRead (fs.js:1111:12) ERR! at Object.wrapper [as oncomplete] (fs.js:254:17) ERR! You may report this log at: ERR! <http://github.com/isaacs/npm/issues> ERR! or email it to: ERR! <npm-@googlegroups.com> ERR! ERR! System Linux 3.0.0-12-generic ERR! command "node" "/usr/local/bin/npm" "install" "node-xmpp-bosh" ERR! cwd /home/frederic ERR! node -v v0.6.3 ERR! npm -v 1.1.15 ERR! message shasum check failed for /tmp/npm-1333573304110/1333573499309-0.1599154758732766/tmp.tgz ERR! message Expected: 1ceb545541dce5531c12187b80de902718a6afd2 ERR! message Actual: a3920de4ba03316b05b8c94163ea39ba3db434cc verbose exit [ 1, true ] ,这是npm-debug.log上的结果:

{{1}}

3 个答案:

答案 0 :(得分:1)

/usr/bin/env: node: No such file or directory

这意味着bosh已被编写为使用一个奇怪的小成语用于shell脚本:

#!/usr/bin/env node

这将运行env(1)程序,该程序将在PATH中搜索node可执行文件并使用修改后的环境执行它 - 但是,如果没有环境修改,它只会运行{{ 1}}。这有点傻,但它也是编写脚本的最简单方法,它不会硬编码解释器的路径。

您的系统上没有node程序可执行文件。可能还没有安装node。 (我有一个模糊的记忆,旧版本实际上被命名为node - 但我找不到支持这种记忆的文档。)

要确保已安装nodejs,请运行:

node

如果已安装apt-get update && apt-get install -u nodejs 包,则可执行文件名可能不同。运行nodejs,并在输出中查找可执行文件名称。如果您没有看到dpkg -L nodejs | grep bin,我会帮您引导您设置符号链接。

答案 1 :(得分:0)

要修复/usr/bin/env: node: No such file or directory,您可以执行sudo apt-get install nodejs-legacy

答案 2 :(得分:0)

我在我的一个服务器CentOS版本6.4(最终版)上遇到了同样的问题 我使用这些命令修复了它:

# yum install nodejs
# yum install npm
# npm install ltx
# npm install underscore
# npm install node-lumberjack
# npm install node-uuid
# npm install eventpipe
# npm install node-expat
# npm install ejs
# npm install dns-srv
# npm install tav
# npm install ws