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

関連する記事

  • Ubuntu16.04で任意のバージョンのNode.jsをインストールする方法Ubuntu16.04で任意のバージョンのNode.jsをインストールする方法 Ubuntu16.04で、任意のバージョンのNode.js環境を構築する方法をお伝えいたします。 apt-getコマンドによりNode.jsをインストールしようとすると、かなり古いバージョンがインストールされます。 そのため、最新または任意のバージョンをインストールするときは、PPA(personal package […]
  • Ubuntu16.04でElectronをインストールする方法Ubuntu16.04でElectronをインストールする方法 Ubuntu16.04でElectronをインストールし、定番のHello […]
  • Ubuntu14.04とPython3でMeCabを使う方法Ubuntu14.04とPython3でMeCabを使う方法 MeCabは各種スクリプト言語(perl、ruby、python、Java)から、各言語バイディングで利用できるようになっている。 しかし、Pythonで用意されているのはPython2系のもので、残念ながらPython3系では使えない。 そこで、ここでは用意されているPython2系バイディングをPython3系に変換して使用する方法をお伝えする。 MeCab […]
  • Ubuntu14.04でPython3に対応したmatplotlibを使用するための手順Ubuntu14.04でPython3に対応したmatplotlibを使用するための手順 Ubuntu14.04でPython3に対応したmatplotlibを使用するための手順をご紹介する。 1. […]
  • Ubuntu16.04でElectronの配布アプリケーションを作成する方法Ubuntu16.04でElectronの配布アプリケーションを作成する方法 Ubuntu16.04を用いて開発したElectronアプリケーションを配布に適したファイル群で出力する方法をお伝えします。 ここでは、サンプルアプリケーションとして、electron-quick-startを利用させていただき、配布のための環境構築からWindows用アプリケーションとして実行しているところまでをご紹介します。 環境 今回の作業環境を確認し […]
Ubuntu18.04で任意のバージョンのNode.jsをインストールする方法