2012-04-01 14 views
1

Ich möchte einen bosh-Server implementieren. Da es auf der Windows-Plattform schwierig ist, entschied ich mich, es auf einer virtuellen Ubuntu-Maschine über VMware bereitzustellen. Ich habe die Installation ohne Probleme gemacht. Ich nahm den Prozess auf dieser Seite: http://code.google.com/p/node-xmpp-bosh/wiki/DebianHowTo. Nun möchte ich meinen bosh-Server mit dem Befehl sudo bosh oder sudo /etc/init.d/bosh start auf der Konsole testen Ich habe Starting bosh server. Nach nichts.node-xmpp-bosh Fehler auf Ubuntu

Ich sehe die bosh.err Datei und ich sehe exec: 2: /usr/local/lib/bosh/run-server.js: Permission denied Ich weiß nicht, warum dieser Fehler mit sudo.


Ich gab Ausführbarkeitsberechtigung wie dhruvbird sagte: chmod +x /usr/local/lib/bosh/run-server.js.

Nun, wenn ich den Befehl sudo bosh ausführen habe ich Starting bosh auf dem Terminal und bosh.err hat dies:

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)̍ 

Und wenn ich den Befehl sudo /etc/init.d/bosh start ausführen Ich habe immer Starting bosh auf dem Terminal und dies auf den bosh.err:

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

Und mein Bosch-Server funktioniert nicht.


Ich betreiben dpkg -L nodejs | grep bin oder dpkg -L node | grep bin und ich kann lesen, dass das Paket nicht für jeden Test installieren ist. Ich laufe apt-get update && apt-get install -u nodejs und apt-get update && apt-get install -u node und immer das gleiche Ergebnis. Wenn ich rufe node -v und habe v0.6.3 und ich denke, das bedeutet, dass Knoten installiert ist. Und ich habe das Knotenverzeichnis auf home/node. Ist es ein Pfadproblem?


Ich versuche npm install node-xmpp-bosh und das ist das Ergebnis auf NPM-debug.log auszuführen:

... 
info preuninstall [email protected] 
info uninstall [email protected] 
verbose unbuild [email protected] [ true, 
verbose unbuild [email protected] '/home/frederic/node_modules', 
verbose unbuild [email protected] '/home/frederic/node_modules' ] 
verbose binRoot [ '/home/frederic/node_modules/.bin', 
verbose binRoot { 'bosh-server': './run-server.js' } ] 
info postuninstall [email protected] 
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!  <[email protected]> 
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 ] 
+0

Was 'ls tut -l/usr/local/lib/bosh/run-server.js anzeigen? – sarnold

+0

Es Schuhe: '-rw-r - r - 1 root root 4889 2012-04-01 18:50/usr/local/lib/bosh/run-server.js' – megueloby

+0

Sie müssen wahrscheinlich das Skript ausführbar zu geben Berechtigungen: chmod + x /usr/local/lib/bosh/run-server.js – dhruvbird

Antwort

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

Das bedeutet bosh ein seltsames kleines Idiom für Shell-Skripte zu verwenden, geschrieben wurde:

#!/usr/bin/env node 

Dies führt das env(1) Programm, das seinesuchenfür die node ausführbare Datei und führen Sie es mit einer modifizierten Umgebung aus - aber ohne Umgebungsänderungen läuft es nur node. Es ist ein bisschen dumm, aber es ist auch der einfachste Weg, ein Skript zu schreiben, das den Pfad zu seinem Interpreter nicht fest codiert.

Sie haben kein node Programm, das auf Ihrem System ausführbar ist. Vielleicht ist node noch nicht installiert. (Ich habe eine vage Erinnerung, dass alte Versionen wurden nodejs eigentlich genannt - aber ich kann keine Dokumentation auf diesen Speicher zu unterstützen, finden.)

Um sicherzustellen, dass node installiert ist, führen:

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

Wenn das nodejs Paket ist bereits installiert, dann ist vielleicht der ausführbare Name anders.Führen Sie dpkg -L nodejs | grep bin aus, und suchen Sie in der Ausgabe nach dem Namen der ausführbaren Datei. Wenn Sie /usr/bin/node nicht sehen, helfe ich Ihnen bei der Einrichtung eines symbolischen Links.

+0

Ich führe dpkg -L Knotenjs | grep bin oder dpkg -L Knoten | grep bin und ich kann lesen, dass das Paket nicht für jeden Test installiert ist. Ich laufe apt-get update && apt-get install -u nodejs und apt-get update && apt-get install -u Knoten und immer das gleiche Ergebnis. – megueloby

+0

Hallo, wie baut man einen symbolischen Link auf und was bedeutet das zuerst? – megueloby

0

/usr/bin/env: node: No such file or directory beheben Sie ausführen können sudo apt-get install nodejs-legacy

0

ich auf einem meiner servsers die gleichen Probleme hatte CentOS Release 6.4 (Final) Ich habe es fest mit den folgenden Befehlen:

# 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