Raspberry Pi に node.js をインストールする
経緯
タイトル通りですが、Raspberry Pi(Raspbian)にnode.jsをインストールするときに結構面倒くさかったのでメモ。
nodebrewでバイナリをインストールする記事を書きましたが、ARMv7向けにビルドされているようで、ARMv6であるRaspberry Pi Model B+以前では使えませんでした。修正
nodebrewでソースからビルドすると--without-snapshot
オプションをつけるのが面倒くさいので、結局自分でビルドします。
と、思ったのですが、自分でビルドしても状況が全く変わらなかったので、v0.12.0のraspberry pi向けビルド済みバイナリを拾ってきて入れてしまいました。
こんな感じで頑張ったけどダメだった
$ nodebrew install-binary v0.11.10 $ nodebrew use v0.11.10 $ node -v v0.11.10 # よしnodejs動いてるぞ! $ node zsh: illegal hardware instruction node # あれ? $ npm zsh: illegal hardware instruction npm # あれ??? $ node --v8-options | grep ARM ARMv7=1 VFP3=0 VFP32DREGS=0 NEON=0 SUDIV=0 UNALIGNED_ACCESSES=1 MOVW_MOVT_IMMEDIATE_LOADS=0 USE_EABI_HARDFLOAT=1 --enable_armv7 (enable use of ARMv7 instructions if available (ARM only)) --enable_neon (enable use of NEON instructions if available (ARM only)) --enable_sudiv (enable use of SDIV and UDIV instructions if available (ARM only)) --enable_movw_movt (enable loading 32-bit constant by means of movw/movt instruction pairs (ARM only)) --enable_unaligned_accesses (enable unaligned accesses for ARMv7 (ARM only)) --enable_32dregs (enable use of d16-d31 registers on ARM - this requires VFP3) --enable_vldr_imm (enable use of constant pools for double immediate (ARM only)) --check_icache (Check icache flushes in ARM and MIPS simulator) # ARMv7=1...? オイ!!!! $ cat /proc/cpuinfo processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 2.00 Features : half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2708 Revision : 000d Serial : 00000000c3b79743 # (*^^*) # よーしビルドだー $ wget https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz $ tar zxf node-v0.12.7.tar.gz $ cd node-v0.12.7 $ ./configure --without-snapshot $ make && sudo make install $ node -v v0.12.7 $ node zsh: illegal hardware instruction node # !!!!!!
結局こうした
$ wget https://s3-eu-west-1.amazonaws.com/conoroneill.net/wp-content/uploads/2015/02/node-v0.12.0-linux-arm-pi.tar.gz $ tar -zxvf node-v0.12.0-linux-arm-pi.tar.gz $ cd node-v0.12.0-linux-arm-pi $ sudo cp -R * /usr/local/ $ node -v v0.12.0 $ npm -v 2.5.1
参考
https://www.raspberrypi.org/forums/viewtopic.php?f=33&t=102074