以前の「FreeBSD に簡単に node.js 0.4.5 を入れられるセットを作ってみた」を元にして、 nave に似た Node のバージョンを切り替えられたり、簡単にインストールできたりするツールを作ってみた。
ツールの名前は “nov” とした。
“Node” の “no” と “version” の “v” をくっつけて “nov” である。
PC-BSD 8.2 amd64 と FreeBSD 7.1 i386 で大雑把に動作を確認した。
注意点
- nov を使うには、 curl と gmake と Python 2.x (2.4以降) が必要。
- 今のところ、 FreeBSD で動作させる事しか考えていない
- 今のところ、これで普通に node をインストールすると v8 エンジンをバージョン 3.2.9 に置き換えてコンパイルする(3.1.8.x が FreeBSD ではコンパイルできない感じなので)
- 今のところ、nave と違って use
の後にコマンドを指定して一時的に Node のバージョンを変更する使い方ができない
セットアップ
- novをダウンロードして展開する
%curl http://hunyoi.com/pub/nov/nov-v0.1.0.tar.gz | tar xzvf – - “nov” ディレクトリができるので、 “nov/nov” を実行してみる
%nov/nov
すると、使い方メッセージが表示される。usage: nov ls-remote List remote node versions nov ls List installed node versions nov install {<version>|latest} Install node <version> nov use {<version>|latest} Enter subshell and using node <version> nov clean {<version>|latest|all} Clean working directory nov uninstall {<version>|latest} Uninstall node <version> nov help Print this text
- ${HOME}/.cshrc を編集する
”set path = (...)
” の行を “if ($#path == 0) then
” の行と “endif
” の行でくくる。
こんな感じになる。if ($#path == 0) then set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /Programs/bin /usr/local/sbin /usr/local/bin /usr/local/kde4/bin $HOME/bin) endif
シェルが csh / tcsh でなければ、上記に相当する編集をする。
環境によっては必要ないかも?
使い方
- 最新版の node をインストールする
%nov/nov install latest
※今のところ、バージョン番号の先頭の “v” は付けない(“v0.4.6″ じゃなくて “0.4.6” とする)が、今後は、”v”を付けるようにするかもしれない
- インストールした node の中で最新の node を使う
%nov/nov use latest
※ $SHELL のシェルが起動する
※ use は、 nave と違って、指定されたバージョンがインストールされていなければ、エラーとなって終了する(勝手にインストールしない)
今後やりたいこと
- github でバージョン管理する
- v8 のバージョンも指定できるようにする(Subversion が必要になるかも)
- node のバージョンを指定してコマンドを実行できるようにする(nov use latest command のような感じで)
- サブシェルを起動しないモードを追加
- FreeBSD 以外の OS でも使えるようにする
- npm のパッケージの形式(?)に対応する
ピンバック: さくらの共有サーバーに Node.js のバイナリを置いて動かしてみた | ふにょいサイト
ピンバック: RubyGems をユーザーのディレクトリにインストールしてみた | ふにょいサイト