Raspberry PiでNode.jsを動かす
Raspberry Piとは
本家はココを参照。Wikipediaの方がわかりやすいかも。簡単に言えばARM11搭載の小型コンピュータで、主に教育向けとなっています。価格は$35で3000円ちょっとで買える手のひらPCと言った感じです。OSはDebianをカスタマイズしたものとなっています。今回はこのボードにNode.jsを載せてexpressのひな形を動かしてみました。
インストール
インストールはここを参考にしました。2013/1/3現在最新のイメージは2012-12-16-wheezy-raspbian.zipとなっています。これをダウンロードして解凍し、ddコマンドなどでSDカードに書き込みます。初回起動時にキーボードとHDMI出力でモニタを接続し、SDカードの拡張とsshの有効化は忘れないで行なっておきます。起動完了してログインができるようになったら、sshでログインして進めて行きましょう。
環境構築手順
環境を構築する手順ですが、以下のように進めていきます
- gitのインストール
- nvm (Node Version Manager)のインストール
- Node.jsのインストール(v0.8.16)
- npm(Node Package Manager)のインストール
- expressのインストール
1. gitのインストール
$ sudo apt-get install git-core
2. nvmのインストール
gitが使えるようになったので、nvmをインストールします。インストール後にsourceコマンドでnvmを有効にします。
$ git clone https://github.com/creationix/nvm.git ~/.nvm $ source ~/.nvm/nvm.sh
3. Node.jsのインストール
nvmが使えるようになったので、Node.jsをインストールします。今回はv0.8.16をインストールします。(v0.8.15はビルドでエラーが出ました)
$ nvm install v0.8.16
ビルドにおよそ2時間以上掛かりますので、休憩するなりしましょう(^^;
ビルドが終ったらちゃんとインストールできたか確認しておきましょう。下記のようにv0.8.16が選択されていればOKです。
$ nvm ls v0.8.16 current: v0.8.16
4. npmのインストール
$ sudo apt-get install npm
5. expressのインストール
アプリケーションフレームワークを-gオプションでグローバルインストールします
$ sudo npm install express -g
これで、環境構築は終わりです。
expressサンプルアプリを動かす
ではさっそくサンプルのひな形を動かします。今回は-eオプションでテンプレートエンジンにEJSを指定しています。
$ express -e sample create : sample create : sample/package.json create : sample/app.js create : sample/public create : sample/public/javascripts create : sample/public/images create : sample/public/stylesheets create : sample/public/stylesheets/style.css create : sample/routes create : sample/routes/index.js create : sample/routes/user.js create : sample/views create : sample/views/index.ejs install dependencies: $ cd sample && npm install run the app: $ node app $ cd sample && npm install
さて、あとは実行するだけです。ifconfigで予めRaspberryPIのIPアドレスを調べておいて下さい。
$ node app.js
これで、ブラウザから"RaspberryPIのIP"の3000ポートでアクセスして、下記の画面が表示されればOKです。
まとめ
いつものように扱うのが面倒な組込みボードかと思いきや、Raspberry Piは普通のPCでした。最初に使う時は、起動したときにマウスとキーボードを繋いでログイン後に$ startx でX Windowが普通に起動して「おおっ!」となりました。この性能の小型ボードが3000円程度で入手できるとは・・・凄い時代になったものです(^^; 学習用キットとしても優秀な出来だと思います。Node.jsを動かすのも特別なことはなく、以前Ubuntuにインストールした時とほぼ同じ手順でできました。
次回は、この延長でSocket.IOを動かしてみたいと思います。