node.jsのパッケージマネージャーである、npmを使ってるが
いろんなマシンで試したけど、何かとトラブルがでる。
いろいろって言いながら、全部CentOSです。
・VMwere上のCentOS5.5
・VirtualBox上のCentOS5.5
・物理マシン上のCentOS5.4
・ServerMan上のCentOS5.5
仮想ソフトは関係ないと思うけど、いろいろトラブルからインストール時に
~develとかのパッケージを入れたり、試してみた。
今のところ一番うまく言ったのはVirtualBoxの仮想マシン。
本当はServerManでうまくいってほしかった。
絶対起こるのはhttp-basic-authのインストールでJSONのパースエラー
JSON書き直してローカルインストールすればOKそうだけど、とりあえず、http-basic-auth.jsを直でおいて呼び出して回避
[root@dti-vps-srv34 ~]# npm install http-basic-auth npm info it worked if it ends with ok npm info using npm@0.3.15 npm info using node@v0.4.2 npm info fetch http://registry.npmjs.org/http-basic-auth/-/http-basic-auth-0.1.0.tgz npm ERR! couldn't read package.json in /tmp/npm-1300626776833/1300626776833-0.38027541153132915/contents/package npm ERR! Error installing http-basic-auth@0.1.0 npm ERR! Error: Failed to parse json npm ERR! Unexpected token ILLEGAL npm ERR! at jsonParseFail (/usr/local/lib/node/.npm/npm/0.3.15/package/lib/utils/read-json.js:89:11) npm ERR! at /usr/local/lib/node/.npm/npm/0.3.15/package/lib/utils/read-json.js:82:14 npm ERR! at P (/usr/local/lib/node/.npm/npm/0.3.15/package/lib/utils/read-json.js:62:40) npm ERR! at cb (/usr/local/lib/node/.npm/npm/0.3.15/package/lib/utils/graceful-fs.js:31:9) npm ERR! at [object Object].(fs.js:86:5) npm ERR! at [object Object].emit (events.js:39:17) npm ERR! at afterRead (fs.js:843:12) npm ERR! JSON.parse npm ERR! JSON.parse Failed to parse package.json data. npm ERR! JSON.parse Note that package.json must be actual JSON, not npm ERR! JSON.parse just a JavaScript object. npm ERR! JSON.parse npm ERR! JSON.parse This changed in npm 0.3.0, and is not a bug in npm. npm ERR! JSON.parse Tell the package author to fix their package.json file. npm ERR! JSON.parse npm ERR! System Linux 2.6.18-194.3.1.el5.028stab069.6 npm ERR! argv { remain: [ 'http-basic-auth' ], npm ERR! argv cooked: [ 'install', 'http-basic-auth' ], npm ERR! argv original: [ 'install', 'http-basic-auth' ] } npm not ok [root@dti-vps-srv34 ~]#
次にServerManで初めてでたbase64が無いよエラー
今までbase64をあえてインストールした記憶無いのに。
[root@dti-vps-srv34 node]# node StreamTwitter.js node.js:116 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: Cannot find module 'base64' at Function._resolveFilename (module.js:299:11) at Function._load (module.js:245:25) at require (module.js:327:19) at Object.(/var/www/node/http-basic-auth.js:3:14) at Module._compile (module.js:383:26) at Object..js (module.js:389:10) at Module.load (module.js:315:31) at Function._load (module.js:276:12) at require (module.js:327:19) at Object.(/var/www/node/StreamTwitter.js:16:12) [root@dti-vps-srv34 node]#
インストールしたけど、なんかエラーがでてできなかった。
「cxx: base64.cc -> build/default/base64_1.o」
base64はID,PASSのencodeだけだから適当なツールで変換してソースにべた書きしました。
なんで失敗するのかと思って、npmのフォルダに無理やり上手くいったOSのファイル持ってきたり
いろいろしたけど、当然だめでした。
でも、ある20日に再チャレンジしたらなんか上手くいった。
[root@dti-vps-srv34 node]# npm install base64 npm info it worked if it ends with ok npm info using npm@0.3.15 npm info using node@v0.4.2 npm info fetch http://registry.npmjs.org/base64/-/base64-2.0.3.tgz npm info calculating sha1 /usr/local/lib/node/.npm/.cache/base64/2.0.3/package.tgz npm info shasum d58b08f621b4be0c6b768258821d4d5f402c35b8 npm info preinstall base64@2.0.3 npm info install base64@2.0.3 Checking for program g++ or c++ : /usr/bin/g++ Checking for program cpp : /usr/bin/cpp Checking for program ar : /usr/bin/ar Checking for program ranlib : /usr/bin/ranlib Checking for g++ : ok Checking for node path : not found Checking for node prefix : ok /usr/local 'configure' finished successfully (0.391s) Waf: Entering directory `/usr/local/lib/node/.npm/base64/2.0.3/package/build' [1/2] cxx: base64.cc -> build/default/base64_1.o [2/2] cxx_link: build/default/base64_1.o -> build/default/base64.node Waf: Leaving directory `/usr/local/lib/node/.npm/base64/2.0.3/package/build' 'build' finished successfully (1.856s) npm info postinstall base64@2.0.3 npm info preactivate base64@2.0.3 npm info activate base64@2.0.3 npm info postactivate base64@2.0.3 npm info build Success: base64@2.0.3 npm ok [root@dti-vps-srv34 node]#
最後にこれも調べ途中だけど、node.jsのWebsocketって何種類かあるっぽい
これをつかったけど、VMwere上のCentOS5.5はエラーは出ないけど
websocketのコネクションははれなかった。
[root@dti-vps-srv34 node]#npm install websocket-server
他の環境はこっちを試したら上手くいてる。
[root@dti-vps-srv34 node]#npm install http://github.com/miksago/node-websocket-server/tarball/master
まだまだ、日本語の情報も少ない。