110
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

Raspberry PiにNode.jsとnpmの最新版をインストールする

Raspberry Piでapt-getで入れたnpmを使っていて、@type/node などのTypeScriptのtypesパッケージを npm install しようとすると、 npm ERR! 404 'types/node' is not in the npm registry. のようなエラーが出てしまいました。
typesパッケージはnpm 3.xからサポートされているそうですが、記事投稿時(2017/07/23)にapt-getで入れたnpmのバージョンは1.4.21でした。

Raspbian
pi@raspberrypi:~ $ npm -v
1.4.21

また、npm 5.2.0からはnpxというローカルパッケージを手軽に実行できるコマンドが用意されたりしています。
npm 5.2.0の新機能! 「npx」でローカルパッケージを手軽に実行しよう

今回の記事では、Node.jsの最新版(正確には、Stable, LTS, Latestなど)とnpmの最新版を手軽にインストールできる方法を紹介します。

動作環境

  • Raspberry Pi 3 Model B, Raspberry Pi Zero W
    • Raspbian Jessie Lite 2017-07-05
    • Raspbian Stretch Lite 2017-09-07
      • イメージをMicroSDに書き込んだ後、MicroSDのルートディレクトリにsshという名前で空のファイルを作成

インストール

まず、SSH接続をしておきます(Raspberry PiとMac or Windows PCを有線で直接繋いでさくっとSSH接続するなどを参照)

Raspbian
sudo apt-get update
sudo apt-get install -y nodejs npm
sudo npm cache clean
sudo npm install npm n -g
sudo n stable

または、Gistにアップロードしたファイルを利用し、

Raspbian
curl -L https://git.io/v7kPb | bash

sudo n stable の部分を sudo n lts に変更すれば、Node.jsのLTS版(長期サポート版)がインストールされます

記事投稿時(2017/07/23)、Raspberry Pi Zero WではCPUがARMv6系であることに起因すると思われるエラーが出ておりました。
sudo n stableError: invalid version 8.6.0 といったエラーが出る場合は、 n ls
を実行して利用可能なバージョンを調べ、 sudo n 8.5.0 (8.6.0の前のバージョン)や sudo n lts を実行してみてください。

インストール後、バージョンの確認とパスが通っているかを確認します

Raspbian
pi@raspberrypi:~ $ node -v
v8.6.0
pi@raspberrypi:~ $ npm -v
5.4.2

(2017/08/01追記)
Raspberry Pi Zero Wにおいて、Error: invalid version 8.2.1 が出る時期がありましたが、Node.jsの v8.2.1 がインストールできるようになっていました
RPiZeroW_Node_8.2.1.png

(2017/10/08追記)
Raspberry Pi Zero Wにおいて、Error: invalid version 8.6.0 が出ていました。このような場合は、上記のように sudo n 8.5.0 などを実行してみてください。
また、古いバージョンのnpmが入ってしまった場合は、sudo npm install npm -g を実行してみてください。

参考サイト

第三回 Raspberry Pi 3に最新のNode.jsをインストールする

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
110
Help us understand the problem. What are the problem?