BeagleBone BlackにCloud9をインストール

前回、Ubuntuのインストールが終わったので、Cloud9を構築してみます。
Cloud9は、c9.ioというCloudIDEのサービスがありますが、オープンソース版でも、Node.jsだけなら開発できます。

Cloud9のインストール

BeagleBone BlackをWindows7のノートPCとUSB接続をして、SSHでログインします。
Cloud9自体もNode.jsでできているので、UbuntuにARM用のNode.jsをインストールします。Cloud9はGitHubからclone後に、npm installします。

$ sudo apt-get update
$ sudo apt-get install xz-utils git libxml2-dev libxml2-dev make mercurial
$ wget http://s3.armhf.com/debian/saucy/node-v0.10.21-saucy-armhf.tar.xz
$ sudo tar xJvf node-v*-saucy-armhf.tar.xz -C /usr/local --strip-components 1
$ git clone https://github.com/ajaxorg/cloud9.git
$ cd cloud9
$ npm install

pm2を使いデーモン化

pm2を使い、Cloud9が自動起動するようにします。

pm2のインストール

$ sudo apt-get update
$ sudo apt-get install libcap2-bin gcc g++ libssl-dev
$ sudo setcap cap_net_bind_service=+ep /usr/local/bin/node
$ sudo npm install -g pm2

pm2の起動スクリプト

~/pm2_cloud9.sh
#!/bin/bash
read -d '' my_json <<_EOF_
{
"name" : "cloud9",
"script" : "./bin/cloud9.sh",
"cwd" : "/home/ubuntu/cloud9",
"args" : ["-l","0.0.0.0","-w","/home/ubuntu/applications"]
}
_EOF_
echo $my_json | pm2 start -

pm2を開始してから、Cloud9を起動します。

$ chmod u+x pm2_cloud9.sh
$ ./pm2_cloud9.sh
$ touch /home/ubuntu/.pm2/dump.pm2
$ sudo pm2 startup ubuntu -u ubuntu
$ sudo /etc/init.d/pm2-init.sh restart

USB接続したIPアドレスの3131ポートに、Windows7のブラウザから確認します。

http://[BeagleBone Blackのusb0]:3131

まとめ

ローカルにポータブルなNode.jsの開発環境ができました。
BeagleBone BlackをUSBポートに接続したWindowsやOSXから、シリアル接続でCloud9を使うことができます。
実際にはこの環境でNode.jsアプリを開発することはありませんが、ローカルのCloudIDEというアイデア実証としてはおもしろいです。