JavaScript

AmazonLinuxでNodeJS10からNodeJS12にバージョンアップする

「AmazonLinux で NodeJS 12.x を動かしたいけど、既に NodeJS 10.23.0 がインストールされている」

「バージョンアップしたいけど、yum でパッケージを探しても 12.x が出てこない」

こんな状況に陥ってませんか?
(私だけか・・・)

そもそも、どうやって NodeJS のパッケージをセットアップしたのだろうと history を辿ってみたところ(私がサーバ環境を構築したわけではないので)、AmazonLinux の標準リポジトリではなく、NodeJS の公式リポジトリ(rpm.nodesource.com)を追加してインストールしていたようです。

ということで、今回は NodeJS 10.x がインストールされた AmazonLinux で、NodeJS 12.x に入れ替える方法を紹介します。

NodeJS10.xのインストール

手元の AmazonLinux には NodeJS はインストールされていないのですが、状況を再現するという意味で NodeJS 10.x をインストールしてみます。

では早速、yum で利用可能なパッケージを確認してみます。

これをインストールしてみましょう。

python26 と python26-libs に依存しているようなので、Let’s Encrypt の環境がおかしくならないか心配ですが、ここは割り切って・・・。

バージョンを確認してみます。

NodeJS12.xの準備

既に NodeJS 10.x がインストールされているので、これを削除しておきます。

では、NodeJS12.x のパッケージリポジトリも設定してみましょう。

この状態で yum info してみます。

NodeJS12.xのパッケージが出てこない場合

yum info の結果が上記と同じ状態になった場合は、次の「NodeJS12.xのインストール」まで読み飛ばしてください。

私の環境では、なぜか yum info で NodeJS 10.x のパッケージが候補として表示されます。

リポジトリのファイルは、参照先が 12.x に切り替わっているのですけどね・・・。
(設定する前は 10.x だった)

挙動的にキャッシュが怪しいので、yum のキャッシュを削除してみます。

下記の通り、どうやらキャッシュが邪魔していたのが正解なようです。

NodeJS12.xのインストール

では、NodeJS 12.20.0 をインストールします。

バージョンを確認してみます。

うまくいきましたね。

まとめ

Amazon Linux で NodeJS 10.x から NodeJS 12.x に入れ替えを行いました。

今回は無難に NodeJS 10.x を削除してから、NodeJS 12.x をインストールしましたが、update も可能だったかもしれません。

また、一気に NodeJS 10.x と NodeJS 12.x の作業を行ったので、途中 yum のキャッシュ問題に遭遇しましたが、通常運用していれば引っ掛かることはないでしょう。

NodeJS 10.x のサポートが 2021 年 4 月、NodeJS 12.x のサポートが 2022 年 4 月までなので、余裕をもって早めに NodeJS 14.x での動作確認を行っておきたいですよね。