りなっくすとらずぱい!

Raspberry Pi初心者に向けた各コマンドの説明、プログラムの作り方について紹介しています!

Rasperry PiにNode.jsをインストールする (1 - インストール)

f:id:ibuquicallig:20190517005136p:plain

この記事ではNode.jsのインストール方法などについて解説しています。

この記事でできること

  • Node.jsをRaspberry Piにインストールして、コマンドラインからnodeコマンドを実行できるようにする。
  • nodeコマンドを実行して一行ずつJavaScriptを実行できるようになる。

Node.jsについて

Node.jsを使用することで、JavaScriptを使用して各サーバーサイドの処理を行うことができます。本来のJavaScriptの使用方法はブラウザ内での処理のみでした。

これにより、JavaScriptだけでWEBサーバーやAPIサーバー、またはRaspberry PiのGPIOを駆使したIoTサーバーのようにも構築することができます。

ノンブロッキングでシングルスレッド...と言われても趣味で自分が使うものを作る程度であればあまり恩恵は正直ありません(笑)

とりあえず、HTMLと一緒に使っていたJavaScriptがサーバーサイドの処理でもつかえるよ~という感じです。

インストールについて

今回のインストールでは、apt-getコマンドは使用しません。Raspbianのリポジトリで管理されているNode.jsのバージョンはかなり古いままで止まってしまっています。

公式の手順にスクリプトがあげられているのでそれを今回は使用します。

また、Raspberry Pi Zero系のの場合はCPUの形式が理由でほかのRaspberry Piとインストール方法が異なっています。

まずはZero系でない場合のインストール方法です。

Raspberry Pi Zero系でない場合の手順

スクリプトを入手する

まずは公式サイト(以下)からスクリプトを入手します。

Installation instructionsの節に各バージョンでのスクリプトが記載されています。現在は最新版がv12でLTS版がv10となっています。どちらでも構いませんが趣味程度で使うのであれば最新版でも問題ないでしょう!以降v12で進めていきます。

スクリプトは以下のようになっています。RaspbianはDebianの派生なので下の方を使います。

$ curl -sL https://deb.nodesource.com/setup_12.x | bash -
$ sudo apt-get install -y nodejs

これをRaspberry Pi上で実行します。管理者権限で実行する必要があるため、二個目のコマンドにはsudoを足しています。

スクリプトの中身は、リポジトリの追加・鍵の追加・apt-get updateの実行という感じです。両方とも完了したら、node -vを実行してバージョンが表示されていれば成功です。

Raspberry Pi Zero系の場合の手順

上記のスクリプトを実行するとZero系では以下のようなエラーが表示されインストールできません。

$ curl -sL https://deb.nodesource.com/setup_10.x | bash -
## Installing the NodeSource Node.js 10.x repo...

## You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the 'linux-armv6l' binary tarballs available directly from nodejs.org for Node.js 4 and later.

コメントには「nodejs.orgから直接ダウンロードしてね」とあるので、取りに行きます。場所がわかりにくいですが、https://nodejs.org/dist/に全バージョンのファイルが配備されています。

この中から最新のv12.2.0/を選択したいところですが、現在ではlinux-armv6l用のファイルが作成されていないです。ので、一つ下のバージョン(v11.15.0/)から取得します。アドレスが以下になります。

https://nodejs.org/dist/v11.15.0/node-v11.15.0-linux-armv6l.tar.gz

これをRaspberry Pi上でwgetして取得します。

$ wget https://nodejs.org/dist/v11.15.0/node-v11.15.0-linux-armv6l.tar.gz
...
node-v11.15.0-linux-armv6l.ta 100%

完了したらファイルをtar -zxvfで解凍します。

$ tar -zxvf node-v11.15.0-linux-armv6l.tar.gz
$ cd node-v11.15.0-linux-armv6l.tar.gz
$ ls
bin  CHANGELOG.md  include  lib  LICENSE  README.md  share

この中からパスの通った場所に置くのに余計なファイルを削除します。

$ rm -rf CHANGELOG.md LICENSE README.md

最後にbinディレクトリなどを/usr/local/コピーします。このディレクトリはパスが通っているのでnodeコマンドが実行できるようになります。

$ sudo cp -r * /usr/local/

すでに/usr/local/bin/というディレクトリはそんざいしていますが、今回のファイルとマージしてくれるので問題ありません。

完了したらnode -vコマンドを実行してバージョンを表示させます。表示できたらインストール成功です!

JavaScriptを一行ずつ実行する

インストールが完了したらちょっと遊んでみましょう。nodeコマンドを実行すると、デバッグのステップ実行のように一行ずつ処理を実行することができます。以下に一連の例を表示します。

$ node
> console.log("test")
test
> let hoge = 10
> console.log(hoge)
10
> hoge++
> console.log(hoge)
11
// Ctrl + C二回連打で終了

実行結果と戻り値の方が表示されます。

このように一行ずつ処理を実行していくことができます。私としてはそんなに使い道はありませんが、新しいモジュールをパッと試したいときに便利です。

npmの最新化

どちらの手段でもNode.jsをインストールするのと一緒にnpmもインストールされます。これはNode.js用のapt-getコマンドのようなものでプロジェクト内のモジュールの管理などを行う重要なコマンドです。

このコマンドのバージョンが古くなっている可能性があるので以下のコマンドで最新にします。

$ sudo npm install -g npm

-gオプションを指定した場合、apt-getと同じく管理者権限が必要となります。

最後に

今回はインストールだけで具体的なプログラムの作成については特に触れていませんが、ExpressでのWEBサーバー・APIサーバーや流行のスマートプラグを制御するIoTサーバーとしてのプログラムをNode.jsを通じて作成することができます。

次の記事

リライト元