Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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をインストールする

mascii
JavaScript, RaspberryPi, Arduino, ESP32の記事が多めです。大学院での専攻はグラフ理論でした。
https://mascii.hatenablog.com/
iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした