Ошибка node-xmpp-bosh в Ubuntu - PullRequest
       35

Ошибка node-xmpp-bosh в Ubuntu

1 голос
/ 02 апреля 2012

Я хочу реализовать сервер Bosh.Поскольку это сложно на платформе Windows, я решил развернуть ее на виртуальной машине Ubuntu через VMware.Я сделал установку без проблем.Я взял процесс на этой странице: http://code.google.com/p/node-xmpp-bosh/wiki/DebianHowTo. Теперь я хочу проверить мой сервер bosh с помощью команды sudo bosh или sudo /etc/init.d/bosh start на консоли, которую я имею Starting bosh server. После ничего.

Iпосмотрите файл 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 bosh на терминале и bosh.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

И мой сервер bosh не работает.


Я запускаю dpkg -L nodejs | grep bin или dpkg -L node | grep bin, и я могу прочитать, что пакет не устанавливается для каждого теста.Я запускаю apt-get update && apt-get install -u nodejs и apt-get update && apt-get install -u node и всегда один и тот же результат.Когда я запускаю node -v и имею v0.6.3, и я думаю, что это означает, что узел установлен.И у меня есть каталог узла на home/node.Это проблема пути?


Я пытаюсь запустить npm install node-xmpp-bosh, и это результат в npm-debug.log:

...
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 ]

Ответы [ 3 ]

1 голос
/ 04 апреля 2012
/usr/bin/env: node: No such file or directory

Это означает, что bosh был написан для использования странной маленькой идиомы для сценариев оболочки:

#!/usr/bin/env node

При этом запускается программа env(1), которая ищет в PATH исполняемый файл node и выполняет его в измененной среде, но без изменений среды она просто запускает node. Это немного глупо, но это также самый простой способ написать скрипт, который не жестко прописывает путь к его интерпретатору.

В вашей системе нет исполняемого файла node. Возможно, node еще не установлен. (У меня смутная память о том, что старые версии на самом деле назывались nodejs - но я не могу найти документацию для поддержки этой памяти.)

Чтобы убедиться, что node установлен, запустите:

apt-get update && apt-get install -u nodejs

Если пакет nodejs уже установлен, возможно, имя исполняемого файла другое. Запустите dpkg -L nodejs | grep bin и найдите имя выходного файла в выходных данных. Если вы не видите /usr/bin/node, я помогу вам настроить символическую ссылку.

0 голосов
/ 19 июля 2013

У меня были такие же проблемы на одном из моих сервосов CentOS версии 6.4 (Final) Я исправил это с помощью этих команд:

# 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
0 голосов
/ 12 октября 2012

Чтобы исправить /usr/bin/env: node: No such file or directory вы можете выполнить sudo apt-get install nodejs-legacy

...