社内でTower.jsを使いたい

tower.js - http://towerjs.org/

インストールする。

[rossy@centos6 ~]$ su -
[root@centos6 ~]# npm install -g tower
[root@centos6 ~]# exit

ドキュメントに従ってコマンドを打つ。

[rossy@centos6 ~]$ mkdir napps && cd napps
[rossy@centos6 napps]$ tower new tapp
:
events.js:66
        throw arguments[1]; // Unhandled 'error' event
                       ^
Error: getaddrinfo ENOENT
    at errnoException (dns.js:31:11)
    at Object.onanswer [as oncomplete] (dns.js:123:16)

何かエラーが出た。"Error: getaddrinfo ENOENT"で検索すると、とりあえずのパッチで対応できるっぽいので試してみる。

[rossy@centos6 napps]$ su -
[root@centos6 ~]# npm install -g tunnel
[root@centos6 ~]# wget https://gist.github.com/raw/2914780/b55dfd2c57cbfec4f30ffeb5394d974371507ad7/superagent-proxy-patch.diff
[root@centos6 ~]# cd /usr/local/lib/node_modules/npm/
[root@centos6 npm]# patch node_modules/tower/node_modules/superagent/lib/node/index.js ~/superagent-proxy-patch.diff 
[root@centos6 npm] exit

失敗したときのディレクトリを削除してリトライ。

[rossy@centos6 napps]$ export http_proxy=http://proxyHost:proxyPort/
[rossy@centos6 napps]$ rm -rf tapp
[rossy@centos6 napps]$ tower new tapp
:
Error downloading https://raw.github.com/logicalparadox/chai/master/chai.js
:
Error downloading https://raw.github.com/viatropos/tower/master/dist/tower.js
:

エラーが2つ出たけどとりあえず最後までいったっぽい。リンク先が404だったのでとりあえず見なかったことに。

[rossy@centos6 napps]$ cd tapp
[rossy@centos6 tapp]$ npm install
:
npm http GET https://github.com/indexzero/read/tarball/refactor-optional-streams
npm ERR! fetch failed https://github.com/indexzero/read/tarball/refactor-optional-streams
npm http 200 http://registry.npmjs.org/timespan/-/timespan-2.2.0.tgz
npm ERR! Error: SSL Error: Hostname/IP doesn't match certificate's altnames
npm ERR!     at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/request/main.js:440:26)
n
:

今度は別のエラーが・・・。これはnpm config set strict-ssl falseすればいいらしいのでコマンド叩いてリトライ。

[rossy@centos6 tapp]$ npm config set strict-ssl false
[rossy@centos6 tapp]$ npm install
:
> design.io@0.3.1 install /home/rossy/napps/tapp/node_modules/design.io
> gem install rb-fsevent rb-inotify --no-ri --no-rdoc

sh: gem: コマンドが見つかりません

gemがない・・・というかruby入れてない・・・

[rossy@centos6 tapp]$ su -
[root@centos6 ~]# yum install ruby
[root@centos6 ~]# yum install ruby-devel
[root@centos6 ~]# cd /usr/local/src
[root@centos6 src]# wget http://rubyforge.org/frs/download.php/76073/rubygems-1.8.24.tgz
[root@centos6 src]# tar xvfz rubygems-1.8.24.tgz 
[root@centos6 src]# cd rubygems-1.8.24
[root@centos6 rubygems-1.8.24]# ruby setup.rb 
[root@centos6 rubygems-1.8.24]# exit
[rossy@centos6 tapp]$ echo gem: --user-install > ~/.gemrc

ruby-devel入れておかないとこんなエラーが出て困る。

ERROR:  Error installing rb-inotify:
	ERROR: Failed to build gem native extension.

        /usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h

リトライ。

[rossy@centos6 tapp]$ npm install

無事終了

先人達に感謝。
参考:
tower.js を試用していきなりつまずきました、問題解決のヒントをいただけないでしょうか
Issue #2719: npm fails behind a proxy since node 0.8.4 · isaacs/npm
gem installでsudoしたくないでござる絶対にsudoしたくないでござる