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