短時間でできるラズパイへのNode.jsインストール

screenshot.27
この記事は「Raspberry Pi Advent Calendar 2015」の17日目の記事です。(ごめんなさい、遅刻しました……)
Node.jsの公式バイナリを使ったインストール方法を説明した日本語の記事がなかったので、自分の作業記録も兼ねて記事にしておきます。

三行で教えて

  1. http://nodejs.org/dist/latest-v4.x/で末尾が「linux-armv6l.tar.gz(ラズパイ2の場合はlinux-armv7l.tar.gz)」なファイルをDL
  2. DLしたファイルをSSHなどを使ってラズパイに転送(wgetなどでラズパイ上に直接DLしても勿論OK)
  3. ラズパイ上で展開し、展開先のディレクトリ内の全てのファイルをroot権限で/usr/localへコピー

この方法が使えるのは実質v4以降から

……と、思わず正常にインストールされているか確認したレベルで簡単にインストールができたのですが、以前は非公式のコンパイル済みバイナリを使ったり自力でコンパイルするのが主流だったようです。
それもそのはず、調べてみると9月にリリースされたv4からリリース時にARM版のバイナリアーカイブが同時提供されているようです。一応「linux-arm-pi.tar.gz」としてラズパイ向けのビルドも過去にあったようなのですが、バージョンによってあったりなかったりと不安定な状態でした。

「使っているpackageの関係で過去バージョンをどうしても使わないといけない」という場合以外はv4以降でもいいかもしれません。

速度には期待しない方がいい

ただし当然ではありますが、Core i7など高速なプロセッサーを搭載したコンピューターより速度は劣ります。
冒頭のスクショで使ったprocess.stdout.write("にゃーんにゃーんにゃーん(はぁと\n");のような簡単なプログラムであればすぐに結果が戻ってきますが、例えばHubotのコンソールモードだと対話可能になるまで約一分くらい待たされます。
対話可能になれば高速なマシンと同じようにキビキビとレスポンスを返してくれるので、恐らく最初にコンパイル的な作業を行っているのだと思います。ゆっくり待ちましょう。

あとnpmの処理が長い時間かかります。フリーズした?と思って[Ctrl]+[C]でkillしたくなりますが、お菓子を食べたりして待ちましょう。

とりあえずHubotのおうちとしてはよさそう

駆け足になりましたが、これでNode.js……というより、Hubotを動かせる環境が整いました。実際にラズパイ上にHubotの作成環境を作成し、正常に動作することを確認しています。
僕のラズパイはずっと「静かに使われる時を待つ」状態になっていたのですが(勿体ない……)、モバイルバッテリーでも稼働可能なほど電力の消費が少ないことを活かして常時稼働させるChatOps用Hubotのおうちにしようと思っています。
でもまずは自分が必要とする機能を搭載したHubotを作るところからだな……ではでは。

// printさせた文字列がなぜ「にゃーんにゃーんにゃーん(はぁと」なのかはホスト名を見ればわかると思います