Debian GNU/Linux で Node.js を使いたい。
しかし、 Debian の nodejs パッケージはセキュリティアップデートが受けられない、ということがわかった。
⇒ [ヅ] Debian jessie では Node.js のパッケージはセキュリティアップデートが受けられない (2015-05-02)
そのため、自前で Node.js をインストール&セキュリティアップデートできるよう、手軽にバージョン管理が可能な nodebrew を導入してみる。
今回の環境
Debian GNU/Linux 7.8 wheezy (jessie のひとつ前のバージョン)
$ cat /etc/debian_version
7.8
$ uname -mrsv
Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u1 x86_64
自分の Debian wheezy 環境には wheezy-backports の nodejs と libv8 パッケージがインストールされていたので、アンインストールしておく。
# aptitude remove --purge nodejs
以下のパッケージが削除されます:
libc-ares2{pu} libv8-3.14.5{pu} nodejs
nodebrew のインストールと設定
公式サイトのドキュメント hokaccha/nodebrew · GitHub に従って、 nodebrew をインストール。
$ curl -L git.io/nodebrew | perl - setup
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 22630 100 22630 0 0 11376 0 0:00:01 0:00:01 --:--:-- 89094
fetching nodebrew...
install nodebrew in $HOME/.nodebrew
========================================
Add path:
export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
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/current/bin/nodebrew にインストールされている。
$ which nodebrew
/home/alice/.nodebrew/current/bin/nodebrew
nodebrew を実行する
パラメータ無しで実行するとヘルプが表示される。
$ nodebrew
nodebrew 0.8.1
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 で複数の Node.js をインストールする
インストール可能な Node.js のバージョン一覧と、インストール済みのバージョンを表示する。
$ nodebrew ls-all
remote:
v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6
(中略)
v0.12.0 v0.12.1 v0.12.2
io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4
(中略)
io@v1.8.1
local:
not installed
current: none
nodebrew では Node.js の複数のバージョンをインストールしておいて、必要に応じて切り替えることが可能。
安定版をインストールしてみる。
$ nodebrew install-binary stable
fetch: http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz
######################################################################## 100.0%
Install successful
バージョン 0.10.29 をインストールしてみる。
$ nodebrew install-binary v0.10.29
fetch: http://nodejs.org/dist/v0.10.29/node-v0.10.29-linux-x64.tar.gz
######################################################################## 100.0%
Install successful
安定版のバージョン 0.12.2 を使うように設定。
$ nodebrew use 0.12.2
use v0.12.2
インストールした Node.js のバージョン一覧を確認。
$ nodebrew ls
v0.10.29
v0.12.2
current: v0.12.2
Node.js の node コマンドはホームディレクトリの .nodebrew/current/bin/ にインストールされている。
$ which node
/home/alice/.nodebrew/current/bin/node
$ node --version
v0.12.2
Node.js のパッケージマネージャーである npm コマンドもインストールされている。
$ which npm
/home/alice/.nodebrew/current/bin/npm
$ npm --version
2.7.4
簡単なサンプルプログラムを動かしてみる
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",
"さようなら"
]
}
参考資料
-
ref.
- hokaccha/nodebrew · GitHub ← nodebrew 公式サイト
- [ヅ] Node.js のバージョンを nodebrew で管理する (with Mac OS X + Homebrew) (2015-03-13)
- [ヅ] Node.js で hello, world (2015-02-23) ← Debian wheezy に wheezy-backports からインストールした例
- [ヅ] Debian jessie では Node.js のパッケージはセキュリティアップデートが受けられない (2015-05-02)
tags: nodejs debian nodebrew
Posted by NI-Lab. (@nilab)