Debian GNU/Linux で Node.js を使いたいと思っているけど、 Debian jessie では Node.js のパッケージはセキュリティアップデートが受けられない という状況。

また、 Node.js は頻繁にバージョンアップがあるので、そもそも Debian のパッケージ管理システムに頼るのも微妙。

かといって、Node.js のソースコードから自前でインストールして管理するのも大変。

そこで nodebrew という Node.js のバージョン管理システムをインストールして利用する。

今回の環境は Debian 8 jessie


$ cat /etc/debian_version 
8.2

$ uname -mrsv
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64

Node.js 関連の Debian パッケージがすでにインストールされていないか確認。


$ dpkg -l | grep node
$ dpkg -l | grep npm
$ dpkg -l | grep libv8

nodebrew をインストールする

nodebrew の公式ページのドキュメントに従って、 nodebrew をインストールする。


$ curl -L git.io/nodebrew | perl - setup

nodebrew の実行ファイルにパスを通す。 ~/.bashrc の末尾に設定を追加。


$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bashrc

~/.bashrc の末尾に設定が追加されたことを確認。


$ tail -1 ~/.bashrc 
export PATH=$HOME/.nodebrew/current/bin:$PATH

.bashrc の設定を現在のシェルに反映。


$ source ~/.bashrc

nodebrew が使えるか確認。ヘルプを表示している。


$ nodebrew help
nodebrew 0.9.2

Usage:
    nodebrew help                         Show this message
    nodebrew install <version>            Download and install a <version> (compile from source)
    nodebrew install-binary <version>     Download and install a <version> (binary file)
    nodebrew uninstall <version>          Uninstall a version
    nodebrew use <version>                Use <version>
    nodebrew list                         List installed versions
    nodebrew ls                           Alias for `list`
    nodebrew ls-remote                    List remote versions
    nodebrew ls-all                       List remote and installed versions
    nodebrew alias <key> <version>        Set alias to version
    nodebrew unalias <key>                Remove alias
    nodebrew clean <version> | all        Remove source file
    nodebrew selfupdate                   Update nodebrew
    nodebrew migrate-package <version>    Install global NPM packages contained in <version> to current version
    nodebrew exec <version> -- <command>  Execute <command> specified <version>

Example:
    # install from binary
    nodebrew install-binary v0.10.22

    # use a specific version number
    nodebrew use v0.10.22

    # io.js
    nodebrew install-binary io@v1.0.0
    nodebrew use io@v1.0.0

nodebrew は、ホームディレクトリの .nodebrew/current/bin/nodebrew にインストールされる。


$ which nodebrew
/home/alice/.nodebrew/current/bin/nodebrew

Node.js 最新版の 5.1.0 をインストールする

nodebrew ls-all でインストール可能な Node.js のバージョン一覧と、インストール済みのバージョンを確認できる。


$ nodebrew ls-all | grep v5
v5.0.0    
v5.1.0    

nodebrew install-binary で Node.js 5.1.0 をインストールする。


$ nodebrew install-binary v5.1.0
Fetching: http://nodejs.org/dist/v5.1.0/node-v5.1.0-linux-x64.tar.gz
######################################################################## 100.0%
Installed successfully

インストールしただけでは使えないので、 nodebrew use でインストールした Node.js のバージョンを指定する。


$ nodebrew use v5.1.0
use v5.1.0

Node.js は ~/.nodebrew/current/bin/ にインストールされる。


$ node --version
v5.1.0

$ which node
/home/alice/.nodebrew/current/bin/node

Node.js のパッケージマネージャーである npm コマンドも、同じく ~/.nodebrew/current/bin/ にインストールされる。


$ npm --version
3.3.12

$ which npm
/home/alice/.nodebrew/current/bin/npm

簡単なサンプルプログラムを動かしてみる

npm で request パッケージをインストール。


$ npm install request

サンプルプログラムを書く。


$ cat sample.js

var request = require('request');
request.get(
  'http://www.nilab.info/lab/0/sample_json.json',
  function(error, response, body){
    console.log(response.statusCode);
    console.log(body);
  }
);

サンプルプログラムを実行。ちゃんと動いている。


$ node sample.js 
200
{
  "foo" : "bar",
  "text" : [
    "hello",
    "こんにちは",
    "good bye",
    "さようなら"
  ]
}

参考資料

tags: node.js debian

Posted by NI-Lab. (@nilab)