Ubuntu18.04で、任意のバージョンのNode.js環境を構築する方法をお伝えいたします。
aptコマンドによりNode.jsをインストールしようとすると、かなり古いバージョンがインストールされます。
そのため、最新または任意のバージョンをインストールするときは、PPA(personal package archive)からインストールする方法などがありますが、その中でも最も簡単だと思われるnというNodeのバージョン管理を用いた方法をご紹介します。

手順の流れとしては、次のようになります。

  1. aptコマンドから、Ubuntuリポジトリのnodejs(Node.js本体)とnpm(Nodeのパッケージ管理)をインストール
  2. npmコマンドから、Nodeのバージョン管理を行う「n」パッケージをインストール
  3. nコマンドから、任意のバージョンのNode.jsをインストール
  4. apt-getコマンドでインストールしたnodejsとnpmをアンインストール

環境

今回、Node.jsを構築する環境を確認しておきます。また、以下の作業はすべてターミナルにて行っております。

Ubuntuのバージョン


$ cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

aptからnodejsとnpmをインストール

次のコマンドを実行してnodejsとnpmをインストールします。


$ sudo apt install nodejs npm

node-gypで依存エラーが出る場合

npmをインストールしようとしたとき、次のメッセージが出力されてインストールできないときがあります。


$ sudo apt install npm

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 npm : 依存: node-gyp (>= 0.10.9) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

このときは、libssl1.0-devをインストールした後にnpmをインストールします。


$ sudo apt install libssl1.0-dev
$ sudo apt install npm

npmからnパッケージをインストール

次のコマンドを実行してnpmからnパッケージをインストールします。


$ sudo npm install -g n

/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
/usr/local/lib
└── n@6.0.1 

nからNode.jsをインストール

nを用いてNode.jsをインストールするときに、バージョンを指定します。

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

最新版のNode.jsをインストールするときは、次のコマンドを実行します。


$ sudo n latest

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

最新のLTS版のNode.jsをインストールするときは、次のコマンドを実行します。


$ sudo n lts

任意のバージョンのNode.jsのインストール

任意のバージョンのNode.jsをインストールするときは、まず次のコマンドでインストールできるNode.jsのバージョンを調べます。
「n ls-remote」コマンド実行すると、最新版から20個のバージョンが表記されます。


$ n ls-remote

Listing remote... Displaying 20 matches (use --all to see all).
12.9.0
12.8.1
12.8.0
12.7.0
12.6.0
12.5.0
12.4.0
12.3.1
12.3.0
12.2.0
12.1.0
12.0.0
11.15.0
11.14.0
11.13.0
11.12.0
11.11.0
11.10.1
11.10.0
11.9.0

バージョンを指定してNode.jsをインストールするするときは、次のコマンドを実行します。
次はバージョン12.8.1をした場合になります。


$ sudo n 12.8.1

aptからnodejsとnpmをアンインストール

nを用いてNode.jsをインストールしたら、aptコマンドからインストールしたnodejsとnpmは不要となるので、アンインストールしておきます。


$ sudo apt purge nodejs npm
$ suto apt autoremove

確認

最後に、Node.jsとnpm、nのバージョンを確認しておきます。


$ node -v
v10.16.3

$ npm -v
6.9.0

$ n --version
6.0.1

nコマンドについて

Nodeバージョン管理nは、バージョンを指定したり、不要なバージョンを削除できる機能などがあります。
詳しくは、helpをご確認ください。


$ n -h

Usage: n [options] [COMMAND] [args]

Commands:

  n                              Display downloaded node versions and install selection
  n latest                       Install the latest node release (downloading if necessary)
  n lts                          Install the latest LTS node release (downloading if necessary)
  n                     Install node  (downloading if necessary)
  n run  [args ...]     Execute downloaded node  with [args ...]
  n which               Output path for downloaded node 
  n exec   [args...]  Execute command with modified PATH, so downloaded node  and npm first
  n rm              Remove the given downloaded version(s)
  n prune                        Remove all downloaded versions except the installed version
  n --latest                     Output the latest node version available
  n --lts                        Output the latest LTS node version available
  n ls                           Output downloaded versions
  n ls-remote [version]          Output matching versions available for download
  n uninstall                    Remove the installed node and npm

Options:

  -V, --version   Output version of n
  -h, --help      Display help information
  -q, --quiet     Disable curl output (if available)
  -d, --download  Download only
  -a, --arch      Override system architecture
  --all           ls-remote displays all matches instead of last 20
  --insecure      Turn off certificate checking for https requests (may be needed from behind a proxy server)

Aliases:

  which: bin
  run: use, as
  ls: list
  lsr: ls-remote
  rm: -
  lts: stable
  latest: current

Versions:

  Numeric version numbers can be complete or incomplete, with an optional leading 'v'.
  Versions can also be specified by label, or codename,
  and other downloadable releases by /

    4.9.1, 8, v6.1    Numeric versions
    lts               Newest Long Term Support official release
    latest, current   Newest official release
    boron, carbon     Codenames for release streams
    and nightly, chakracore-release/latest, rc/10 et al

関連する記事

  • R言語 CRAN Task View:統計遺伝学R言語 CRAN Task View:統計遺伝学 CRAN Task View: Statistical Geneticsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Giovanni Montana Contact: g.montana at […]
  • R言語 CRAN Task View:数値解析R言語 CRAN Task View:数値解析 CRAN Task View: Numerical Mathematicsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Hans W. Borchers Contact: hwb at […]
  • Python 度数分布表から乱数を生成するPython 度数分布表から乱数を生成する Pythonで与えられた度数分布に従う乱数を生成する方法をご紹介する。 さっそくだが、全コードを以下に記す。 import random import matplotlib.pyplot as plt def random_freq_index(freq_list): """ 度数分布表から乱数を生成してインデックス番号を返します […]
  • R言語 CRAN Task View:関数データ解析R言語 CRAN Task View:関数データ解析 CRAN Task View: Functional Data Analysisの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Fabian Scheipl Contact: fabian.scheipl at […]
  • Windows上のMariaDBでサービスの開始・停止を行う方法Windows上のMariaDBでサービスの開始・停止を行う方法 Windows上のMariaDBでサービスの開始・停止を行う方法をお伝えいたします。 一般的なアプリケーションは、立ち上げて何か操作し閉じるというサイクルを持ちます。一方、MariaDBは、他のアプリケーションからアクセスされるまで待機しており、アクセスされる度にアプリケーションへ応答を返します。この間、MariaDBはずっと稼働中となります。そのため、MariaDBは […]
Ubuntu18.04で任意のバージョンのNode.jsをインストールする方法