ブログトップ 記事一覧 ログイン 無料ブログ開設

hogemaru さわやか日記 Twitter

2012-01-28

nodejs+Cloud9を動かす

| 17:42

node.js+cloud9を構築したけど、これはかなり困難だった。

Cloud9についてはこちら。

Node.jsを手軽に試せるJavaScript統合開発環境「Cloud9 IDE」、クラウドでの提供開始 ? Publickey

簡単な備忘録を残しておく。

node.jsは0.4系でないとCloud9は動かないのでは

node.jsの最新版の0.6〜0.7だとrequire.pathsがないらしいので普通に動かそうしていも動かなかったです。

下記のフォーラムでもそんなふうなことを言ってました。

#281: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead. - Issues - ajaxorg/cloud9 - GitHub

幸いnode.jsrailsみたいに複数のバージョンの環境を混在できるので、次のサイトを参考にnaveを入れて0.4.1を入れました。

naveで簡単!node.jsの導入メモ (Ubuntu) | Mach3.laBlog

モジュール系のエラー

さて動かそう、としたときに下記のようなエラーがでる。

Error: Cannot find module 'libxml/lib/libxml'
    at Function._resolveFilename (module.js:290:11)
    at Function._load (module.js:242:25)
    at require (module.js:318:19)
    at Object.<anonymous> (/srv/nodejs/cloud9/support/jsdav/lib/DAV/util.js:12:14)
    at Module.<anonymous> (module.js:374:26)
    at Module._compile (/srv/nodejs/cloud9/support/requireJS-node.js:9:27)
    at Object..js (module.js:380:10)
    at Module.load (module.js:306:31)
    at Function._load (module.js:272:10)
    at require (module.js:318:19)
Error: Cannot find module 'formidable'
    at Function._resolveFilename (module.js:290:11)
    at Function._load (module.js:242:25)
    at require (module.js:318:19)
    at Object.<anonymous> (/srv/nodejs/cloud9/support/jsdav/lib/DAV/handler.js:16:20)
    at Module.<anonymous> (module.js:374:26)
    at Module._compile (/srv/nodejs/cloud9/support/requireJS-node.js:9:27)
    at Object..js (module.js:380:10)
    at Module.load (module.js:306:31)
    at Function._load (module.js:272:10)
    at require (module.js:318:19)

これはnode.jsライブラリのせいらしい。

次のようにaptでなんとかしようとしましたが、どうやら関係ないみたいです。

apt-get install libxml2 libxml2-dev

次のような男気あふれるコマンドでライブラリのパスが出力されます。このパスに指定のライブラリがないとエラーになるようです。

npmコマンドを用いてがんばってインストールしました。

node -e require.paths
npm install formidable libxml

npmはrubyで言うところのgemであり、perlで言うところのcpanであり、というようなもののようです。

しかし言語毎にインストール方法変えるのってどうにかならないかな〜、と思います。;(

グロい花みたいなものが見えたら起動したという証らしいです。

# node /srv/nodejs/cloud9/bin/cloud9.js -w ~/work/ -l 192.168.102.100
   info  - socket.io started


                         .  ..__%|iiiiiii=>,..
                          _<iIIviiiiiiiiiillli<_.
                       .ivIvilli%||+++++|iillllvs;_
                     ..nvlIlv|~`.......... -<*IIIvv=
                    .)nvvvvv-.... .   .. ...  ~nvvvo=.
         .__i<iiiii><vvvvn(= .  . ..i>, .  ... +)nnnv..
      _i%vvvvllIIlIlIvIvvv(   .. . lnnsi  .    :)vnvnsissvisi>__.
   .<vnvvvvvvIvvvvvvvlvvII;. .     |nnvv:  . . -)lvvlIIIIlvvIvnnns=_.
 .:vnvvvvvvvvvvvvvIvIvIIvv>:  . . . |{}l.    . :<lvIvvvvvvvvvvvvvvnov.
 |)nvnvnvnvnvnvvvvvvvvvvvvis .            . .  =ivvvvvvvvvvvnvnvnvnvnn..
.nnnnnnvnnvnvnvnvvvnvvvvvvvnv_   .    .       :vnvvvvvvvnvnnvnnnnnnnnov;
:2oonnnnnnnnnvnvnnvnvvnvvvvvIvvi==_i..    .  .vvvvvvvvnvnnvnnnnnnnnooooc
:nnooonnnnnnnnnnvvnvvvvvvvvIvIlIvvnI-      .=vvvvvvvvnvnvnnnnnnnnnnooo2(
 |{XooooonnnnnvnvnvvvvvvvIIIIIIIIv|-      .<vIlIIvIvvvvvnvvnvnnnnnooo2v(
 .){2ooooonnnnvnvnvvvvvIIIIIIlll+-     . =)lllIIvIvvvvvvvnvnnnvnnooo22-`
   -{2oooonnnnnvvvvvvvlIIlllllil==_   ._iIllillllllIvvvvvvnvnnnnoooo*-
  . -."11oonnvvvnvvIIlIlliliiiiillii||iliiiiiiililllIIvvvvvnnnnn2}(~.
      . -+~!lvvnvIvIIllliiiii|i|||i||i|||i||iiiiilillIIvvvvvv}|"- .
          . ..--~++++++++~+~+~+~+-+-+~+~+-+~+~++~++++++~~~-:.. .
               . .  . . .... . . .... .. ... .. ... . . . .

                           Ajax.org Cloud9 IDE
                              version 0.6
Project root is: /root/work/

ブラウザからアクセスしたところ。カッコイイGUIの画面が見れてとりあえず満足。

次は簡単なサンプルでも書きたい。

f:id:hoge-maru:20120128174004p:image

トラックバック - http://d.hatena.ne.jp/hoge-maru/20120128/1327740163