Contents

Install Node.js on Ubuntu

1 Environment

1
2
3
4
5
6
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.5 LTS
Release:	18.04
Codename:	bionic

2 Install via n

It looks apt install on Ubuntu 18.04 brings older version of npm and Node.js. So, I installed it via n, Node.js version management.

Ref.

2.1 Install n

Error: install npm

For installing n, I need npm and nodejs before hand.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$ sudo apt install nodejs npm
[sudo] password for xxxx: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 nodejs : 競合: npm
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

I tried to install npm separately, but dependency error is raised.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$ sudo apt install npm
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 npm : 依存: nodejs しかし、インストールされようとしていません
       依存: node-abbrev (>= 1.0.4) しかし、インストールされようとしていません
       依存: node-ansi (>= 0.3.0-2) しかし、インストールされようとしていません
       依存: node-ansi-color-table しかし、インストールされようとしていません
       依存: node-archy しかし、インストールされようとしていません
       依存: node-block-stream しかし、インストールされようとしていません
       依存: node-fstream (>= 0.1.22) しかし、インストールされようとしていません
       依存: node-fstream-ignore しかし、インストールされようとしていません
       依存: node-github-url-from-git しかし、インストールされようとしていません
       依存: node-glob (>= 3.1.21) しかし、インストールされようとしていません
       依存: node-graceful-fs (>= 2.0.0) しかし、インストールされようとしていません
       依存: node-inherits しかし、インストールされようとしていません
       依存: node-ini (>= 1.1.0) しかし、インストールされようとしていません
       依存: node-lockfile しかし、インストールされようとしていません
       依存: node-lru-cache (>= 2.3.0) しかし、インストールされようとしていません
       依存: node-minimatch (>= 0.2.11) しかし、インストールされようとしていません
       依存: node-mkdirp (>= 0.3.3) しかし、インストールされようとしていません
       依存: node-gyp (>= 0.10.9) しかし、インストールされようとしていません
       依存: node-nopt (>= 3.0.1) しかし、インストールされようとしていません
       依存: node-npmlog しかし、インストールされようとしていません
       依存: node-once しかし、インストールされようとしていません
       依存: node-osenv しかし、インストールされようとしていません
       依存: node-read しかし、インストールされようとしていません
       依存: node-read-package-json (>= 1.1.0) しかし、インストールされようとしていません
       依存: node-request (>= 2.25.0) しかし、インストールされようとしていません
       依存: node-retry しかし、インストールされようとしていません
       依存: node-rimraf (>= 2.2.2) しかし、インストールされようとしていません
       依存: node-semver (>= 2.1.0) しかし、インストールされようとしていません
       依存: node-sha しかし、インストールされようとしていません
       依存: node-slide しかし、インストールされようとしていません
       依存: node-tar (>= 0.1.18) しかし、インストールされようとしていません
       依存: node-underscore しかし、インストールされようとしていません
       依存: node-which しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

Solution: aptitude

I tried sudo apt install libssl1.0-dev according to issue, or ~$ sudo apt-get install nodejs-dev node-gyp libssl1.0-dev, but they did not solve this. Instead, aptitude works.

Install aptitude

1
$ sudo apt install aptitude

Run sudo aptitude install npm and solve dependency error interactively.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$ sudo aptitude install npm
The following NEW packages will be installed:
  gyp{a} libjs-async{a} libjs-inherits{a} libjs-node-uuid{a} libjs-underscore{a} node-abbrev{a} node-ansi{a} node-ansi-color-table{a} node-archy{a} node-async{a} 
  node-balanced-match{a} node-block-stream{a} node-brace-expansion{a} node-builtin-modules{a} node-combined-stream{a} node-concat-map{a} node-cookie-jar{a} 
  node-delayed-stream{a} node-forever-agent{a} node-form-data{a} node-fs.realpath{a} node-fstream{a} node-fstream-ignore{a} node-github-url-from-git{a} node-glob{a} 
  node-graceful-fs{a} node-gyp{a} node-hosted-git-info{a} node-inflight{a} node-inherits{a} node-ini{a} node-is-builtin-module{a} node-isexe{a} 
  node-json-stringify-safe{a} node-lockfile{a} node-lru-cache{a} node-mime{a} node-minimatch{a} node-mkdirp{a} node-mute-stream{a} node-node-uuid{a} node-nopt{a} 
  node-normalize-package-data{a} node-npmlog{a} node-once{a} node-osenv{a} node-path-is-absolute{a} node-pseudomap{a} node-qs{a} node-read{a} 
  node-read-package-json{a} node-request{a} node-retry{a} node-rimraf{a} node-semver{a} node-sha{a} node-slide{a} node-spdx-correct{a} node-spdx-expression-parse{a} 
  node-spdx-license-ids{a} node-tar{a} node-tunnel-agent{a} node-underscore{a} node-validate-npm-package-license{a} node-which{a} node-wrappy{a} node-yallist{a} 
  nodejs{ab} npm 
The following packages will be REMOVED:
  linux-modules-extra-5.4.0-70-generic{u} 
0 packages upgraded, 69 newly installed, 1 to remove and 33 not upgraded.
Need to get 27.3 MB of archives. After unpacking 60.7 MB will be freed.
The following packages have unmet dependencies:
 nodejs : 競合: npm but 3.5.2-0ubuntu4 is to be installed
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     npm [Not Installed]                                



Accept this solution? [Y/n/q/?] Y
The following NEW packages will be installed:
  nodejs{a} 
The following packages will be REMOVED:
  linux-modules-extra-5.4.0-70-generic{u} 
0 packages upgraded, 1 newly installed, 1 to remove and 33 not upgraded.
Need to get 24.9 MB of archives. After unpacking 75.3 MB will be freed.
Do you want to continue? [Y/n/?] Y
Get: 1 https://deb.nodesource.com/node_14.x bionic/main amd64 nodejs amd64 14.17.0-1nodesource1 [24.9 MB]
Fetched 24.9 MB in 6秒 (4,431 kB/s) 
(データベースを読み込んでいます ... 現在 232468 個のファイルとディレクトリがインストールされています。)
linux-modules-extra-5.4.0-70-generic (5.4.0-70.78~18.04.1) を削除しています ...
以前に未選択のパッケージ nodejs を選択しています。
(データベースを読み込んでいます ... 現在 227102 個のファイルとディレクトリがインストールされています。)
.../nodejs_14.17.0-1nodesource1_amd64.deb を展開する準備をしています ...
nodejs (14.17.0-1nodesource1) を展開しています...
nodejs (14.17.0-1nodesource1) を設定しています ...
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ...

Install

1
2
3
4
$ sudo npm install -g n
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
+ n@7.2.2
added 1 package from 2 contributors in 0.37s

2.2 Install npm and Node.js via n

Install LTS(long time supported) version.

1
2
$ sudo n lts
   installed : v14.17.0 (with npm 6.14.13)

Check version

1
2
3
4
5
$ npm -v
6.14.13

$ node -v
v14.17.0

References