Ubuntu 22.04 LTSへの最新版Node.jsのインストール | ジコログ

Ubuntu 22.04 LTSへの最新版Node.jsのインストール

Ubuntu 22.04 LTSへの最新版Node.jsのインストール サーバー

「古いNode.jsがaptコマンドでインストールされてしまう・・・」
「Ubuntu 22.04 LTSに最新版のNode.jsをインストールしたい」

このような場合には、この記事の内容が参考となります。
この記事では、Ubuntu 22.04 LTSに最新版Node.jsをインストールする方法を解説しています。

本記事の内容

  • Ubuntu 22.04におけるOS標準のNode.js
  • Ubuntu 22.04における最新版Node.jsのパッケージ取得
  • Ubuntu 22.04への最新版Node.jsのインストール

それでは、上記に沿って解説していきます。

Ubuntu 22.04におけるOS標準のNode.js

Ubuntuには、OS標準のソフトウェアが存在しています。
Apacheのような人気ソフトウェアであれば、ほぼ確実にOS標準が存在します。

そして、Node.jsにもOS標準のソフトウェアが存在しています。
Ubuntu 22.04 LTSであれば、以下がUbuntu公式リポジトリに登録されています。

$ sudo apt show nodejs 
Package: nodejs 
Version: 12.22.9~dfsg-1ubuntu3 
Priority: extra 
Section: universe/web 
Origin: Ubuntu 
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> 
Original-Maintainer: Debian Javascript Maintainers <pkg-javascript-devel@alioth-lists.debian.net> 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug 
Installed-Size: 932 kB 
Provides: node-types-node (= 12.20.42~12.22.9~dfsg-1ubuntu3) 
Depends: libc6 (>= 2.34), libnode72 (= 12.22.9~dfsg-1ubuntu3) 
Recommends: ca-certificates, nodejs-doc 
Suggests: npm 
Breaks: node-babel-runtime (<< 7), node-typescript-types (<< 20210110~) 
Homepage: https://nodejs.org/ 
Download-Size: 122 kB 
APT-Sources: http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages 
Description: evented I/O for V8 javascript - runtime executable 
 Node.js is a platform built on Chrome's JavaScript runtime for easily 
 building fast, scalable network applications. Node.js uses an 
 event-driven, non-blocking I/O model that makes it lightweight and 
 efficient, perfect for data-intensive real-time applications that run 
 across distributed devices. 
 . 
 Node.js is bundled with several useful libraries to handle server 
 tasks: 
 . 
 System, Events, Standard I/O, Modules, Timers, Child Processes, POSIX, 
 HTTP, Multipart Parsing, TCP, DNS, Assert, Path, URL, Query Strings.

Node.js 12.22.9が、Ubuntu 22.04におけるOS標準ということです。
このバージョンのNode.jsは、2022年1月10日にリリースされています。

このバージョン自体は、そこまで古くありません。
しかし、Node.js 12はかなり古いです。

実際、現時点(2022年5月)ではサポートが完了しています。
公式のサポート状況を以下のページで確認できます。

https://github.com/nodejs/Release#release-schedule

この表を見ると、なんとNode.js 12はもうサポートが終了しています。
存在すらしていません・・・

今後は、16以降を利用するのが無難と言えます。
「Active LTS」であるから、最も安定していると言えるでしょう。

ちなみに、Node.jsでは偶数バージョンがLTSになります。
そうなると、現在開発中の18系が次のLTSとなるということです。

とにかく、Ubuntu 22.04でOS標準となっているNode.jsはインストールしない方がよいでしょう。
そもそも、Node.js 12はもうNode.jsの開発元では「終わった」扱いです。

以上、Ubuntu 22.04におけるOS標準のNode.jsについて説明しました。
次は、Ubuntu 22.04における最新版Node.jsのパッケージ取得について説明します。

Ubuntu 22.04における最新版Node.jsのパッケージ取得

PPAを利用して最新版のパッケージを利用します。
PPAは、非公式リポジトリになります。

この場合の公式とは、Ubuntu公式のことです。
これを先ほどから、OS標準と言っています。

ただ、PPAと言っても、Node.jsが公認しているモノを利用します。
通常は、PPAを利用するには以下の作業が必要です。

  • リポジトリの追加
  • パッケージの更新

そして、これらを一気にやってくれるスクリプトをNodeSourceという会社が用意しています。

NodeSource
https://nodesource.com/

追記 2023年11月04日
このスクリプトを用いた方法ではインストールできなくなっています。
NodeSourceと喧嘩別れでもしたのでしょうか?
その代わりのインストール方法を次の記事で説明しています。

そのスクリプトは、以下のコマンドで取得・実行可能です。
3つのバージョンの分を載せておきます。

Node.js 16系

$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -

Node.js 17系

$ curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -

Node.js 18系

$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

アクティブなLTSの最新と言えば、Node.js 16になります。
また、Node.js 17はもうお役御免でメンテンナンス状態に入りました。

開発中となるのは、ダウンロード可能な次期LTS版のNode.js 18です。
このままであれば、Node.js 18は2022年10月25日にアクティブなLTSとなります。

したがって、今回はNode.js 18を最新版として取得します。
そのためのコマンドを実行した結果が、以下となります。

$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - 
## Installing the NodeSource Node.js 18.x repo... 
## Populating apt-get cache... 
+ apt-get update 
取得:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] 
無視:2 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 InRelease 
ヒット:3 http://archive.ubuntu.com/ubuntu jammy InRelease 
取得:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [109 kB] 
ヒット:5 https://packages.redis.io/deb jammy InRelease 
ヒット:6 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 Release 
取得:8 https://nginx.org/packages/ubuntu jammy InRelease [2,840 B] 
ヒット:9 https://ppa.launchpadcontent.net/ondrej/apache2/ubuntu jammy InRelease 
ヒット:10 http://archive.ubuntu.com/ubuntu jammy-backports InRelease 
取得:11 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [50.7 kB] 
取得:12 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [63.5 kB] 
337 kB を 2秒 で取得しました (148 kB/s) 
パッケージリストを読み込んでいます... 完了 
W: https://repo.mongodb.org/apt/ubuntu/dists/focal/mongodb-org/5.0/Release.gpg: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 
W: https://nginx.org/packages/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 
## Confirming "jammy" is supported... 
+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_18.x/dists/jammy/Release' 
## Adding the NodeSource signing key to your keyring... 
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | tee /usr/share/keyrings/nodesource.gpg >/dev/null 
## Creating apt sources list file for the NodeSource Node.js 18.x repo... 
+ echo 'deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x jammy main' > /etc/apt/sources.list.d/nodesource.list 
+ echo 'deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x jammy main' >> /etc/apt/sources.list.d/nodesource.list 
## Running `apt-get update` for you... 
+ apt-get update 
無視:1 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 InRelease 
ヒット:2 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 Release 
ヒット:4 http://security.ubuntu.com/ubuntu jammy-security InRelease 
ヒット:5 http://archive.ubuntu.com/ubuntu jammy InRelease 
取得:6 https://deb.nodesource.com/node_18.x jammy InRelease [4,563 B] 
ヒット:7 http://archive.ubuntu.com/ubuntu jammy-updates InRelease 
ヒット:8 https://packages.redis.io/deb jammy InRelease 
ヒット:9 https://ppa.launchpadcontent.net/ondrej/apache2/ubuntu jammy InRelease 
ヒット:10 http://archive.ubuntu.com/ubuntu jammy-backports InRelease 
取得:11 https://nginx.org/packages/ubuntu jammy InRelease [2,840 B] 
取得:12 https://deb.nodesource.com/node_18.x jammy/main amd64 Packages [773 B] 
8,176 B を 1秒 で取得しました (5,521 B/s) 
パッケージリストを読み込んでいます... 完了 
W: https://repo.mongodb.org/apt/ubuntu/dists/focal/mongodb-org/5.0/Release.gpg: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 
W: https://nginx.org/packages/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 
## Run `sudo apt-get install -y nodejs` to install Node.js 18.x and npm 
## You may also need development tools to build native addons: 
     sudo apt-get install gcc g++ make 
## To install the Yarn package manager, run: 
     curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null 
     echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list 
     sudo apt-get update &amp;&amp; sudo apt-get install yarn

上記の内容より、以下の処理を実行していることがわかります。

  • リポジトリの追加
  • パッケージの更新

リポジトリの追加は、「/etc/apt/sources.list.d」の下にファイルを作成する形式です。
ファイルの内容を確認してみましょう。

$ cat /etc/apt/sources.list.d/nodesource.list 
deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x jammy main 
deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x jammy main

では、再度パッケージを確認しましょう。
すでにパッケージの更新も済んでいます。

$ sudo apt show nodejs 
Package: nodejs 
Version: 18.1.0-deb-1nodesource1 
Priority: optional 
Section: web 
Maintainer: Ivan Iguaran <ivan@nodesource.com> 
Installed-Size: 184 MB 
Provides: nodejs-dev, nodejs-doc, nodejs-legacy, npm 
Depends: libc6 (>= 2.17), libgcc1 (>= 1:3.4), libstdc++6 (>= 5.2), python3-minimal, ca-certificates 
Conflicts: nodejs-dev, nodejs-doc, nodejs-legacy, npm 
Replaces: nodejs-dev (<= 0.8.22), nodejs-legacy, npm (<= 1.2.14) 
Homepage: https://nodejs.org 
Download-Size: 27.7 MB 
APT-Sources: https://deb.nodesource.com/node_18.x jammy/main amd64 Packages 
Description: Node.js event-based server-side javascript engine 
 Node.js is similar in design to and influenced by systems like 
 Ruby's Event Machine or Python's Twisted. 
 . 
 It takes the event model a bit further - it presents the event 
 loop as a language construct instead of as a library. 
 . 
 Node.js is bundled with several useful libraries to handle server tasks : 
 System, Events, Standard I/O, Modules, Timers, Child Processes, POSIX, 
 HTTP, Multipart Parsing, TCP, DNS, Assert, Path, URL, Query Strings.

現時点(2022年5月)における最新バージョンのNode.js 18.1.0を確認できます。

これにより、最新版のNode.jsをインストールする準備が整いました。

Ubuntu 22.04への最新版Node.jsのインストール

Node.jsのインストールは、次のコマンドを実行するだけです。

sudo apt-get install -y nodejs

インストールは、すぐに終わります。
それでは、確認を行います。

$ node --version 
v18.1.0

パッケージ管理システムのnpmも確認しておきます。

$ npm --version 
8.8.0

問題なく動いていますね。

以上、Ubuntu 22.04 LTSへの最新版Node.jsのインストールについて説明しました。

タイトルとURLをコピーしました