BeagleBone BlackのUbuntuにbonescriptをインストールする
デフォルトのAngstromではなく、Ubuntuの方にbonescript入れてやればいいよね?的な発想でインストール
Node.js v0.10.21でインストール
前々回にインストールしたv0.10.12でbonescriptをインストールしてみます
ubuntu@ubuntu-armhf:~$ npm install -g bonescript npm http GET https://registry.npmjs.org/bonescript npm http 304 https://registry.npmjs.org/bonescript > bonescript@0.2.3 preinstall /home/ubuntu/.nodebrew/node/v0.10.21/lib/node_modules/bonescript > node-gyp clean || (exit 0); node-gyp configure build make: Entering directory `/home/ubuntu/.nodebrew/node/v0.10.21/lib/node_modules/bonescript/build' CXX(target) Release/obj.target/misc/misc.o ../misc.cpp:1:0: warning: "BUILDING_NODE_EXTENSION" redefined [enabled by default] <--中略--> make: *** [Release/obj.target/misc/misc.o] Error 1 make: Leaving directory `/home/ubuntu/.nodebrew/node/v0.10.21/lib/node_modules/bonescript/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/ubuntu/.nodebrew/node/v0.10.21/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23) gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:789:12) gyp ERR! System Linux 3.8.13-bone30 gyp ERR! command "node" "/home/ubuntu/.nodebrew/node/v0.10.21/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "build" gyp ERR! cwd /home/ubuntu/.nodebrew/node/v0.10.21/lib/node_modules/bonescript gyp ERR! node -v v0.10.21 gyp ERR! node-gyp -v v0.10.10 gyp ERR! not ok npm ERR! weird error 1 npm ERR! not ok code 0
おうふ・・・
bonescriptは対応Nodeバージョンがある
ググったところ、こんな情報を発見。Installing Ubuntu 13.10, Node.js, bonescript.js on BBB
I had to make some changes when installing node.js in order to get bonescript.js installed. Bonescript.js is only compatible with node.js v0.8 Github issue #53.
たしかにAngstromの場合v0.8.22でした。というわけで、v0.8.22をインストール。こういう時にnodebrewを使ってると便利ですね。
Node.js v0.8.22をインストール
ubuntu@ubuntu-armhf:~$ nodebrew install v0.8.22 -- ビルド約1時間-- ubuntu@ubuntu-armhf:~$ nodebrew ls v0.8.22 v0.10.21 current: v0.10.21 ubuntu@ubuntu-armhf:~$ nodebrew use v0.8.22 use v0.8.22
あらためてbonescriptをインストール
ubuntu@ubuntu-armhf:~$ npm install -g bonescript > serialport@1.0.6 install /home/ubuntu/.nodebrew/node/v0.8.22/lib/node_modules/bonescript/node_modules/serialport > node-gyp rebuild -- 中略 -- make: Entering directory `/home/ubuntu/.nodebrew/node/v0.8.22/lib/node_modules/bonescript/node_modules/serialport/build' CXX(target) Release/obj.target/serialport/src/serialport.o CXX(target) Release/obj.target/serialport/src/serialport_unix.o SOLINK_MODULE(target) Release/obj.target/serialport.node SOLINK_MODULE(target) Release/obj.target/serialport.node: Finished COPY Release/serialport.node make: Leaving directory `/home/ubuntu/.nodebrew/node/v0.8.22/lib/node_modules/bonescript/node_modules/serialport/build' bonescript@0.2.3 /home/ubuntu/.nodebrew/node/v0.8.22/lib/node_modules/bonescript ├── systemd@0.2.0 ├── i2c@0.1.4 (bindings@1.1.1, repl@0.1.3, underscore@1.2.4, coffee-script@1.3.3) ├── winston@0.6.2 (cycle@1.0.3, stack-trace@0.0.7, eyes@0.1.8, colors@0.6.2, pkginfo@0.2.3, async@0.1.22, request@2.9.203) ├── express@3.1.0 (methods@0.0.1, fresh@0.1.0, cookie-signature@0.0.1, range-parser@0.0.4, debug@0.7.4, buffer-crc32@0.1.1, cookie@0.0.5, commander@0.6.1, mkdirp@0.3.3, send@0.1.0, connect@2.7.2) ├── socket.io@0.8.7 (policyfile@0.0.4, redis@0.6.7, socket.io-client@0.8.7) └── serialport@1.0.6 (bindings@0.3.0, sf@0.1.3, async@0.1.18, optimist@0.3.7, node-gyp@0.6.2)
expressやらsocket.io, serialportなども同時にインストールされるようです。リストを取ってみます
ubuntu@ubuntu-armhf:~$ npm list -g /home/ubuntu/.nodebrew/node/v0.8.22/lib ├─┬ bonescript@0.2.3 │ ├─┬ express@3.1.0 │ │ ├── buffer-crc32@0.1.1 │ │ ├── commander@0.6.1 │ │ ├─┬ connect@2.7.2 │ │ │ ├── bytes@0.1.0 │ │ │ ├── formidable@1.0.11 │ │ │ ├── pause@0.0.1 │ │ │ └── qs@0.5.1 │ │ ├── cookie@0.0.5 │ │ ├── cookie-signature@0.0.1 │ │ ├── debug@0.7.4 │ │ ├── fresh@0.1.0 │ │ ├── methods@0.0.1 │ │ ├── mkdirp@0.3.3 │ │ ├── range-parser@0.0.4 │ │ └─┬ send@0.1.0 │ │ └── mime@1.2.6 │ ├─┬ i2c@0.1.4 │ │ ├── bindings@1.1.1 │ │ ├── coffee-script@1.3.3 │ │ ├── repl@0.1.3 │ │ └── underscore@1.2.4 │ ├─┬ serialport@1.0.6 │ │ ├── async@0.1.18 │ │ ├── bindings@0.3.0 │ │ ├─┬ node-gyp@0.6.2 │ │ │ ├─┬ fstream@0.1.25 │ │ │ │ ├── graceful-fs@2.0.1 │ │ │ │ └── inherits@2.0.1 │ │ │ ├─┬ glob@3.2.7 │ │ │ │ └── inherits@2.0.1 │ │ │ ├── graceful-fs@1.2.3 │ │ │ ├─┬ minimatch@0.2.14 │ │ │ │ ├── lru-cache@2.5.0 │ │ │ │ └── sigmund@1.0.0 │ │ │ ├── mkdirp@0.3.5 │ │ │ ├─┬ nopt@2.1.2 │ │ │ │ └── abbrev@1.0.4 │ │ │ ├─┬ npmlog@0.0.6 │ │ │ │ └── ansi@0.2.1 │ │ │ ├── osenv@0.0.3 │ │ │ ├── request@2.9.203 │ │ │ ├── rimraf@2.2.5 │ │ │ ├── semver@1.1.4 │ │ │ ├─┬ tar@0.1.19 │ │ │ │ ├── block-stream@0.0.7 │ │ │ │ └── inherits@2.0.1 │ │ │ └── which@1.0.5 │ │ ├─┬ optimist@0.3.7 │ │ │ └── wordwrap@0.0.2 │ │ └── sf@0.1.3 │ ├─┬ socket.io@0.8.7 │ │ ├── policyfile@0.0.4 │ │ ├── redis@0.6.7 │ │ └─┬ socket.io-client@0.8.7 │ │ ├── uglify-js@1.0.6 │ │ ├── websocket-client@1.0.0 │ │ └── xmlhttprequest@1.2.2 │ ├── systemd@0.2.0 │ └─┬ winston@0.6.2 │ ├── async@0.1.22 │ ├── colors@0.6.2 │ ├── cycle@1.0.3 │ ├── eyes@0.1.8 │ ├── pkginfo@0.2.3 │ ├── request@2.9.203 │ └── stack-trace@0.0.7 └─┬ npm@1.2.14 ├── abbrev@1.0.4 ├── ansi@0.1.2 ├── archy@0.0.2 ├── block-stream@0.0.6 ├── chmodr@0.1.0 ├── chownr@0.0.1 ├── fstream@0.1.22 ├─┬ fstream-npm@0.1.3 │ └── fstream-ignore@0.0.6 ├── glob@3.1.21 ├── graceful-fs@1.2.0 ├── inherits@1.0.0 ├── ini@1.1.0 ├─┬ init-package-json@0.0.6 │ └── promzard@0.2.0 ├── lockfile@0.3.0 ├── lru-cache@2.2.2 ├─┬ minimatch@0.2.11 │ └── sigmund@1.0.0 ├── mkdirp@0.3.5 ├── node-gyp@0.8.5 ├── nopt@2.1.1 ├─┬ npm-registry-client@0.2.18 │ └── couch-login@0.1.15 ├─┬ npmconf@0.0.23 │ └─┬ config-chain@1.1.5 │ └── proto-list@1.2.2 ├── npmlog@0.0.2 ├── once@1.1.1 ├── opener@1.3.0 ├── osenv@0.0.3 ├─┬ read@1.0.4 │ └── mute-stream@0.0.3 ├── read-installed@0.1.1 ├── read-package-json@0.2.2 ├── request@2.9.203 ├── retry@0.6.0 ├── rimraf@2.1.4 ├── semver@1.1.4 ├── slide@1.1.3 ├── tar@0.1.16 ├── uid-number@0.0.3 └── which@1.0.5
これでUbuntuでもbonescriptを使ったNodeアプリが書ける・・・はず>たぶん次回