node: Ubuntu20.04(Linux)でnode.jsの最新版をインストールする方法

Ubuntu (Linux) 上で Node.js をインストールする方法について。Ubuntuなどのパッケージシステムを利用して Node.js を入れようとすると非常に古いバージョンのものを利用することになってしまう。

これを回避し、簡単に最新版を入れる方法について。

方法

NVMによる方法

Node Version Manager (NVM) を利用する。これにより任意のバージョンをインストールすることができるようになる。

下記コマンドを実施する。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

スクリプトがダウンロードされ、実行される。 .bashrc などに自動的に設定が書き込まれるのでターミナルの再起動や再ログインなどを実施する。

再起動や再ログイン後、以下を実施すると、 nvm という文字列が返ってくれば成功。

command -v nvm

最新版の導入

最新のstable版をインストールする。

nvm install node

LTS版の導入

LTS版1 を入れたい場合には以下。

nvm install --lts

特定のバージョンを導入する

特定のバージョンが欲しい場合はバージョンを明記する。

nvm install 14.7.0
# install 可能なバージョンは以下のコマンドで確認できる
nvm ls-remote

バージョンの切り替え

nvm use コマンドでインストール済の任意のバージョンに切り替えることができる。

nvm use 14.7.0
# node を指定すると最新になる
nvm use node
# LTSに切り替える
nvm use --lts

snap による方法

Ubuntuに搭載されている Snap という機能を利用する方法。
LTS版が欲しいだけであれば、こちらの方が楽か。

sudo apt install snapd
snap install node

説明

apt などを経由すると古いバージョンが手に入る

apt などのディストリビューション固有のパッケージ管理ソフトウェアを経由して手に入るソフトウェアは動作確認がされたものが入るため、必然的に古めのものが手に入ることが多い

Node.js の場合はこれが顕著で、執筆時点(2022/08/24)で手に入るバージョンは v10.19.0 となかなかに古い。現時点で最新のstableバージョンは v18.0.7 である。

$ sudo apt search "^nodejs$"  # apt で install可能な nodejsを検索
Sorting... Done
Full Text Search... Done
nodejs/focal 10.19.0~dfsg-3ubuntu1 amd64
  evented I/O for V8 javascript - runtime executable

nvm を利用すると簡単にバージョンを変更できるのが強み

nvm では提供されているバージョンのうち、任意のものを利用できるため最新版や最新のLTS版、あるいは過去のバージョンを利用することもできる。

過去のバージョンを簡単にインストールできるため、何かしらの障害が起きた際の再現試験などで利用することができるだろう。

反面、単に node を使いたいだけで、色々なバージョンを入れる必要はないという人にとっては少し邪魔になる可能性がある。こういった場合には下記の snap による方法をお勧めする。

最新のLTSを入れるのみであれば実は snap で実現ができる

Ubuntu及びいくつかのLinuxディストリビューションにはいつからか snap という apt とはまた別のパッケージ管理の仕組みが準備されている。

これは apt などのシステム全体としてのパッケージを管理する方式とは異なり、特定のアプリケーションのパッケージを導入することができる仕組みである。

依存関係も含めて一括でパッケージングされ apt などのように依存関係の解決に困ることがないため、snap では基本的に最新版のソフトウェアが提供される。

snap コマンドにより調べたところ、確かに最新LTS (v16.17.0) がインストール可能なようだ。

~$ snap find node
Name                             Version                           Publisher               Notes    Summary
node                             16.17.0                           iojs✓                   classic  Node.js
... (省略) ...

  1. LTS (Long Term Support) はリリースから 30ヶ月のセキュリティパッチ適用などの重要なバグ・脆弱性修正が行われるバージョン。プロダクト環境ではLTSを利用することが推奨されるため、自然と開発でもLTSを利用することが多い。バージョンライフサイクルについてはNode.jsのリリースに関するページを参照。 ↩︎

コメント

このブログの人気の投稿

gnuplot: グラフの色を変更する

[Linux] rsyncで進捗を確認する

gnuplotで縦線を引きたい