0%

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

BeagleBone BlackのファームウェアにAngstromを使う場合はデフォルトでWebブラウザ上で動作するIDEのCloud9がインストールされています。前回SDカードのUbuntu14.04.1にNode.jsとnpmをインストールしました。Cloud9の代わりにEclise Orionを使ってみます。OrionはCloud Foundryと連携が強化されIBM DevOps Servicesでも採用されています。

Eclipse Orionのインストール

Node.jsとnpmのバージョンを確認します。

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

CERT_NOT_YET_VALIDのエラーが発生する

orionをnpmでインストールしようとするとCERT_NOT_YET_VALIDエラーが発生しました。

$ npm install orion --production
npm http GET https://registry.npmjs.org/orion
npm http GET https://registry.npmjs.org/orion
npm http GET https://registry.npmjs.org/orion
npm ERR! Error: CERT_NOT_YET_VALID
npm ERR! at SecurePair.<anonymous> (tls.js:1370:32)
npm ERR! at SecurePair.EventEmitter.emit (events.js:92:17)
...

ntpdateで時間をあわせる

CERT_NOT_YET_VALIDのエラーは時間がずれていると発生するようです。BeagleBone Blackはバッテリを搭載していないため、電源を入れていないとシステムクロックがずれてしまいます。ntpdateをしてシステムクロックの時間をあわせます。

$ sudo ntpdate -b -s -u pool.ntp.org

インストールと起動

インストールし直します。

$ npm install orion --production

npm startでOrionサーバーを起動します。

$ npm start orion

> orion@0.0.34 start /home/ubuntu/node_modules/orion
> node server.js

Could not find npm in the following locations:
/usr/bin/../lib/node_modules/npm/bin/npm-cli.js
/usr/bin/./node_modules/npm/bin/npm-cli.js
Please add or modify the npm_path in the orion.conf file and restart the server.

Using workspace: /home/ubuntu/node_modules/orion/.workspace
Listening on port 8081...

ブラウザでOrionの起動を確認します。

http://192.168.7.2:8081/

eclipse-orion-start.png

Orionをデモナイズ

一度Orionのプロセスを停止します。pm2にアプリを登録するスクリプトを実行します。

~/pm2_orion.sh
#!/bin/bash
read -d '' my_json <<_EOF_
{
"name" : "orion",
"script" : "/home/ubuntu/node_modules/orion/server.js"
}
_EOF_

echo $my_json | pm2 start -

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

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

OS再起動後もpm2に登録したプロセスが起動するようにinitスクリプトを作成します。

$ sudo pm2 startup ubuntu -u ubuntu
$ sudo /etc/init.d/pm2-init.sh restart

すでにinitスクリプトを作成している場合は、OS再起動後のためにプロセスをsaveします。

$ sudo pm2 save
[PM2] Dumping processes

hello world

Editor画面

簡単なNode.jsのスクリプトを作成して実行してみます。

Editorから「hello」フォルダを作成します。

  • File > New > Folder > hello

helloフォルダを選択し、「world.js」ファイルを作成します。

  • New > File > world.js

console.logのコードを書くと警告が表示されました。

console-is-undefined.png

world.js
console.log("hello world");

OrionはJavaScriptのバリデーションと文法チェックにESLintを採用しています。画面のガイドにしたがって、eslint-envディレクティブを追加します。

world.js
/*eslint-env node */
console.log("hello world");

Shell画面

左メニューからShellを選択します。画面下のコンソールから作成したスクリプトを実行します。

» node start hello.js

hello-world.png