如何在 18.04 中删除 npm 并完全重新安装 npm?

pva*_*nis 16 nodejs npm 16.04 18.04

我是用 ubuntu16.04 升级到 ubuntu18.04。按照一些教程删除 npm,但现在卡住了。我有:

~$ npm list -g 
bash: /usr/bin/npm: No such file or directory
Run Code Online (Sandbox Code Playgroud)

和:

     sudo apt-get install 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.
Run Code Online (Sandbox Code Playgroud)

小智 25

我遇到了同样的问题。在网上大量搜索后,我设法找到了解决方案。

以下是为我解决的问题:

删除旧的 nodejs 安装和更新包。

sudo apt-get remove nodejs npm
sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

对于 8.x 节点安装:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Run Code Online (Sandbox Code Playgroud)

对于 12.x 节点安装:

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
Run Code Online (Sandbox Code Playgroud)

安装:

sudo apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)

测试安装:

~$ nodejs -v
v8.11.3 // <- node 8.x
v12.13.1  // <- node 12.x

~$ npm -v
5.6.0 // <- node 8.x 
6.12.1 // <- node 12.x
Run Code Online (Sandbox Code Playgroud)