各バージョンのnodeのインストール方法は、nodesource/distributions: NodeSource Node.js Binary Distributionsで記載されています。
# Using Ubuntu
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
# Using Debian, as root
curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
apt-get install -y nodejs
ただこの方法は、仕事の関係でちょっと古いマイナーバージョンが使いたいときに使えません。必ず最新のマイナーバージョンがインストールされるからです。
直接バイナリを取得する
上記の場合は、https://nodejs.org/dist から直接欲しいバージョンをバイナリで取得しましょう。
たとえばv16.0.0であれば、 https://nodejs.org/dist/v16.0.0 から取得できます。各CPU、OSにあったtar.gzがあるはずです。
tarファイルを解凍すると、binなどが入っているので、これを適当なところに移します。
シンボリックリンクを貼ってもいいでしょう。
Dockerfile
v16.0.0を使えるDocker環境の作成例をひとつ挙げておきます。
FROM ubuntu:18.04
RUN apt update && apt install -y wget
RUN wget https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-x64.tar.gz \
&& tar xvf node-v16.0.0-linux-x64.tar.gz \
&& mv ./node-v16.0.0-linux-x64/bin/node /usr/bin/node \
&& mv ./node-v16.0.0-linux-x64/bin/npm /usr/bin/npm \
&& mv ./node-v16.0.0-linux-x64/bin/npx /usr/bin/npx \
&& mv ./node-v16.0.0-linux-x64/lib/node_modules /usr/lib/node_modules \
&& mv ./node-v16.0.0-linux-x64/share/doc /usr/share/doc \
&& mv ./node-v16.0.0-linux-x64/share/man /usr/share/man \
&& mv ./node-v16.0.0-linux-x64/share/systemtap /usr/share/systemtap
ENTRYPOINT ["/bin/bash"]
その他の方法
Node.js のインストール(ソースから) - Qiitaで紹介されているような方法もありますが、make
コマンドの実行が長時間かかります。
この記事の方法であれば解凍するだけなので時間は相当短いです。
感想
このインストール方法はググっても上手くみつからず、そのため記事に残しておくことにしました。
その背景には、node側が「最新のマイナーバージョンを利用する」ことを前提にしたいのかもと感じました。
というわけで特別な理由がないかぎりは最新のマイナーバージョンを利用できるよう、メンテナンスをきちんとしましょう。