Bootstrap

How to resolve `unmet dependencies, Depends: nodejs but it is not going to be installed` npm

为了安装Node-Red,将ubuntu 18.04 的node.js v8 升到 node.js v10

[Supported Node versions https://nodered.org/docs/faq/node-versions]

1. 安装 node.js v10

sudo apt install curl
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install nodejs

2. 安装npm时遇到的问题

sudo apt-get install -f npm
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
       Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
       Depends: node-ansi-color-table but it is not going to be installed
       Depends: node-archy but it is not going to be installed
       Depends: node-block-stream but it is not going to be installed
       Depends: node-fstream (>= 0.1.22) but it is not going to be installed
       Depends: node-fstream-ignore but it is not going to be installed
       Depends: node-github-url-from-git but it is not going to be installed
       Depends: node-glob (>= 3.1.21) but it is not going to be installed
       Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
       Depends: node-inherits but it is not going to be installed
       Depends: node-ini (>= 1.1.0) but it is not going to be installed
       Depends: node-lockfile but it is not going to be installed
       Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
       Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
       Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
       Depends: node-gyp (>= 0.10.9) but it is not going to be installed
       Depends: node-nopt (>= 3.0.1) but it is not going to be installed
       Depends: node-npmlog but it is not going to be installed
       Depends: node-once but it is not going to be installed
       Depends: node-osenv but it is not going to be installed
       Depends: node-read but it is not going to be installed
       Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
       Depends: node-request (>= 2.25.0) but it is not going to be installed
       Depends: node-retry but it is not going to be installed
       Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
       Depends: node-semver (>= 2.1.0) but it is not going to be installed
       Depends: node-sha but it is not going to be installed
       Depends: node-slide but it is not going to be installed
       Depends: node-tar (>= 0.1.18) but it is not going to be installed
       Depends: node-underscore but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

解决方案:

sudo apt-get install aptitude
sudo aptitude install npm
The following NEW packages will be installed:
  gyp{a} javascript-common{a} libjs-async{a} libjs-inherits{a} libjs-jquery{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} npm
0 packages upgraded, 70 newly installed, 0 to remove and 335 not upgraded.
Need to get 2536 kB of archives. After unpacking 15.2 MB will be used.
The following packages have unmet dependencies:
 nodejs : Conflicts: 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
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 335 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
 npm -v
6.14.4

3. 参考文献

https://stackoverflow.com/questions/26571326/how-do-i-resolve-the-following-packages-have-unmet-dependencies

;