Ошибка node-xmpp-bosh в Ubuntu
Я хочу реализовать сервер 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.
После ничего.
Я смотрю 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
И мой сервер не работает.
я бегу 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 ответа
/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
Я помогу вам настроить символическую ссылку.
Чинить /usr/bin/env: node: No such file or directory
Вы можете выполнить sudo apt-get install nodejs-legacy
У меня были такие же проблемы на одном из моих сервосов 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