Raspberry Piに、aptコマンド、
sudo apt install nodejs
でインストールするとNode.jsのバージョンが古いことがあります。
node -v
でバージョンがわかります。現時点( 2021/10/19 )ではaptコマンドでVer. 8がインストールされます。 でも、これより新しいNode.jsが要求されることがあります。 例えばHomebridgeを使う場合もそうです。 aptでインストールするバージョンだと、古くて、エラーが出て、Homebridgeをインストールできません。
Homebridgeのサイトには、新しいNode.jsをインストールするための準備が書いてあります。
https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian
他のサイトにも同様の方法が書いてありますが、
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
とすれば、aptでインストールするいつもの方法、
sudo apt install -y nodejs
で最新版がインストールできるようです。
古いRaspberry Pi (第2世代)でsetup_14.xコマンドを試したところdeb.nodesource.comのコマンドでエラーが出ました。 メッセージによると古いARMのCPUには対応していないらしいです。 その場合、直接インストールすると良いようです。以下のサイトに説明がありました。
https://akirano-blog.com/p/h9xnpdk/
それによると、以下で良いようです。/tmpにダウンロードしていますが、他の場所でも良いと思います。
cd /tmp wget https://unofficial-builds.nodejs.org/download/release/v14.18.1/node-v14.18.1-linux-armv6l.tar.gz tar xvfz node-v14.18.1-linux-armv6l.tar.gz cd node-v14.18.1-linux-armv6l rm CHANGELOG.md LICENSE README.md sudo cp -R * /usr/local/
ここで、armv6lをダウンロードしているのは、古いRaspberry Piに使われているArm CPUがARMv6だからです。lはリトルエンディアンのlだそうです。シェルコマンドからuname -aすると
uname -a Linux raspberrypi 4.19.66+ #1253 Thu Aug 15 11:37:30 BST 2019 armv6l GNU/Linux
のように、使用しているCPUがArm V6lであることがわかります。一方、Raspberry Pi 4などでこのコマンドを実行すると、
uname -a Linux pi4 5.10.17-v7l+ #1421 SMP Thu May 27 14:00:13 BST 2021 armv7l GNU/Linux
というように使用しているCPUがArm V7lであることがわかります。実際にはRaspberry Pi 4には、Arm V8が使われているらしいです。V7は32bit CPUでV8は64bit CPUです。でも下位互換性があるので、Raspberry Pi OSではV7として使っているようです。 この方法は、新しいRaspberry Piに対しても有効です。 でも、uname -aしてCPUを確認して、もしもArm V7になっているようならば、
https://builds.nodejs.org/download/release/v14.18.1/node-v14.18.1-linux-armv7l.tar.gz
の方が良いかもしれません。なお、arm64という名前のものもあるのですが、これは、64bit Arm V8だと言われるRaspberry Pi 4でも使えませんでした。 これはパソコン用のArmのためのビルトのようです。M1 MacBookAirでなら使えました。 いずれにしても、/usr/local/にコピーする前に、./node -vなどを実行して動作を確認するのが良いです。
14.18.1は、現時点(2021/10/20)でサイトにあるver 14のうちの最新です。 ちなみに偶数バージョンが安定板らしいです。なので次に入れるなら16かな。
Intel CPU 搭載のMacならば、以下で、
curl -O https://builds.nodejs.org/download/release/v16.9.1/node-v16.9.1-darwin-x64.tar.gz
M1搭載Macならば、以下でダウンロードできます。
curl -O https://builds.nodejs.org/download/release/v16.9.1/node-v16.9.1-darwin-arm64.tar.gz