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/
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」ファイルを作成します。
console.logのコードを書くと警告が表示されました。
world.js console .log("hello world" );
OrionはJavaScriptのバリデーションと文法チェックにESLint を採用しています。画面のガイドにしたがって、eslint-envディレクティブを追加します。
world.js console .log("hello world" );
Shell画面 左メニューからShellを選択します。画面下のコンソールから作成したスクリプトを実行します。