BeagleBone BlackのUbuntu14.04.1にCloud9をインストールする


前回はBeagleBone BlackにWebIDEのEclipse Orionをインストールしました。Cloud9はBeagleBone Blackのイメージ配布サイトにあるDebianとAngstromには最初からインストールされています。

Cloud9のインストール

BeagleBone BlackをWindows7とUSB-Ethernet接続をしてSSHでログインします。Cloud9はNode.jsでできています。前回インストールしたNode.jsとnpm環境を使います。

BeagleBone BlackにWindows7からSSH接続します。

UbuntuにARM用のNode.jsをインストールします。Cloud9はGitHubからclone後に、npm installします。

バージョンを確認します。

$ node -v
v0.10.25
$ npm -v
1.3.10

Cloud9をgit cloneしてインストールします。

$ git clone https://github.com/ajaxorg/cloud9.git
$ cd cloud9
$ npm install --production

バージョン確認します。

$ npm list cloud9
[email protected] /home/ubuntu/cloud9
└── (empty)

Mercurialをインストールしないと起動に失敗します。

$ sudo apt-get update
$ sudo apt-get install hg

pm2でデモナイズ

pm2をインストールします。

$ sudo npm install pm2 -g

バージョンを確認します。

$ sudo npm list -g pm2
/usr/local/lib
└── [email protected]

pm2にアプリを追加するスクリプトを用意します。

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

作業ディレクトリを作成します。

$ mkdir -p /home/ubuntu/applications

pm2にClou9を登録してCloud9を起動します。

$ chmod u+x pm2_cloud9.sh
$ ./pm2_cloud9.sh
[PM2] Process launched
┌──────────┬────┬──────┬───────┬────────┬───────────┬────────┬────────────┬──────────┐
│ App name │ id │ mode │ PID   │ status │ restarted │ uptime │     memory │ watching │
├──────────┼────┼──────┼───────┼────────┼───────────┼────────┼────────────┼──────────┤
│ cloud9   │ 0  │ fork │ 1189 │ online │         0 │ 2m     │ 1.090 MB   │ disabled │
└──────────┴────┴──────┴───────┴────────┴───────────┴────────┴────────────┴──────────┘
 Use `pm2 info <id|name>` to get more details about an app

再起動後もCloud9が起動するようにinitスクリプトを生成します。

$ sudo pm2 startup ubuntu -u ubuntu
[PM2] Generating system init script in /etc/init.d/pm2-init.sh
[PM2] Making script booting at startup...
[PM2] -ubuntu- Using the command:
      su -c "chmod +x /etc/init.d/pm2-init.sh && update-rc.d pm2-init.sh defaults"
 Adding system startup for /etc/init.d/pm2-init.sh ...
   /etc/rc0.d/K20pm2-init.sh -> ../init.d/pm2-init.sh
   /etc/rc1.d/K20pm2-init.sh -> ../init.d/pm2-init.sh
   /etc/rc6.d/K20pm2-init.sh -> ../init.d/pm2-init.sh
   /etc/rc2.d/S20pm2-init.sh -> ../init.d/pm2-init.sh
   /etc/rc3.d/S20pm2-init.sh -> ../init.d/pm2-init.sh
   /etc/rc4.d/S20pm2-init.sh -> ../init.d/pm2-init.sh
   /etc/rc5.d/S20pm2-init.sh -> ../init.d/pm2-init.sh
[PM2] Done.

pm2を一度リスタートして、Cloud9のプロセスが起動することを確認します。

$ sudo /etc/init.d/pm2-init.sh restart
[sudo] password for ubuntu:
Restarting pm2
[PM2] Dumping processes
[PM2] Deleting all process
[PM2] deleteProcessId process id 0
┌──────────┬────┬──────┬─────┬────────┬───────────┬────────┬────────┬──────────┐
│ App name │ id │ mode │ PID │ status │ restarted │ uptime │ memory │ watching │
└──────────┴────┴──────┴─────┴────────┴───────────┴────────┴────────┴──────────┘
 Use `pm2 info <id|name>` to get more details about an app
[PM2] Stopping PM2...
[PM2] [WARN] No process found
[PM2] All processes has been stopped and deleted
[PM2] PM2 stopped
Starting pm2
[PM2] Spawning PM2 daemon
[PM2] Success
[PM2] Resurrecting
Process /home/ubuntu/cloud9/bin/cloud9.sh launched
┌──────────┬────┬──────┬──────┬────────┬───────────┬────────┬────────────┬──────────┐
│ App name │ id │ mode │ PID  │ status │ restarted │ uptime │     memory │ watching │
├──────────┼────┼──────┼──────┼────────┼───────────┼────────┼────────────┼──────────┤
│ cloud9   │ 0  │ fork │ 1405 │ online │         0 │ 0s     │ 1.074 MB   │ disabled │
└──────────┴────┴──────┴──────┴────────┴───────────┴────────┴────────────┴──────────┘
 Use `pm2 info <id|name>` to get more details about an app

プロセスを確認します。

$ pm2 list 0
Describing process with pid 0 - name cloud9
┌───────────────────┬───────────────────────────────────────────┐
│ status            │ online                                    │
│ name              │ cloud9                                    │
│ id                │ 0                                         │
│ path              │ /home/ubuntu/cloud9/bin/cloud9.sh         │
│ args              │ -l 0.0.0.0 -w /home/ubuntu/applications   │
│ exec cwd          │ /home/ubuntu/cloud9                       │
│ error log path    │ /home/ubuntu/.pm2/logs/cloud9-error-0.log │
│ out log path      │ /home/ubuntu/.pm2/logs/cloud9-out-0.log   │
│ pid path          │ /home/ubuntu/.pm2/pids/cloud9-0.pid       │
│ mode              │ fork_mode                                 │
│ node v8 arguments │                                           │
│ watch & reload    │ ✘                                         │
│ interpreter       │ bash                                      │
│ restarts          │ 0                                         │
│ unstable restarts │ 0                                         │
│ uptime            │ 19s                                       │
│ created at        │ 2015-02-11T05:23:56.602Z                  │
└───────────────────┴───────────────────────────────────────────┘

ブラウザから確認します。