sudo apt-get install npm 无法安装

3
我尝试运行sudo apt-get install npm,返回以下对话框。 我该如何解决这个问题?
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: node-gyp (>= 0.10.9) but it is not going to be 
installed
E: Unable to correct problems, you have held broken packages.

我认为只有在安装了 node 之后才能安装 npm。请先尝试安装 node-gyp - samAlvin
@samAlvin,node-gyp 需要使用 npm 进行安装。请执行命令 'npm install -g node-gyp-install'。 - Tom
2个回答

6

npm会随nodejs一起安装。如果您已经安装了node,那么也有npm。

运行node -v检查是否安装了node,然后运行npm -v以同样的方式检查npm。

如果未安装nodejs,请在此处检查安装说明:https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

6.x是当前稳定的分支。

一般来说,要运行擦除现有的node/npm安装并从头开始安装,运行:

sudo apt remove --purge nodejs node npm
sudo apt clean
sudo apt autoclean
sudo apt install -f
sudo apt autoremove

按照步骤操作后,我尝试安装npm仍然遇到相同的问题。即使curl也没有安装,我还是得到了类似的错误提示:以下软件包存在未满足的依赖关系: curl : 依赖于 libcurl3-gnutls (= 7.47.0-1ubuntu2),但是将安装 7.47.0-1ubuntu2.2 E: 无法纠正问题,您有损坏的软件包。 - Tom
如果你运行 npm install npm@latest -g 会发生什么? - Mitsakos
此外,运行sudo apt install build-essential来确保已安装此软件包,显然您还需要gnutls,请运行sudo apt install libgnutls-dev,然后再尝试。如果一切都失败了,最安全的方法是彻底删除node并重新安装它,这样npm也应该能够正确安装。 - Mitsakos
运行sudo apt install libgnutls-dev命令会给我返回以下信息: libgnutls-dev:依赖于libgnutls30(= 3.4.10-4ubuntu1),但要安装的版本是3.4.10-4ubuntu1.3 依赖于libgnutls-openssl27(= 3.4.10-4ubuntu1),但要安装的版本是3.4.10-4ubuntu1.3 依赖于libgnutlsxx28(= 3.4.10-4ubuntu1),但不会被安装 依赖于nettle-dev,但不会被安装 依赖于libtasn1-6-dev,但不会被安装 依赖于libp11-kit-dev,但不会被安装。 - Tom
运行 sudo apt install -f 尝试修复损坏的依赖项。 - Mitsakos
显示剩余5条评论

3

安装Node和npm最好和最简单的方法是使用nvm(node版本管理器)。

  1. 运行以下代码以安装nvm:

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

2. 然后运行

nvm install node

npm将会和node一同安装。

这是安装npm和node最简单、最安全的方法。

如果你想要安装特定版本的node和npm,可以按照以下步骤进行操作:

nvm install v6.11.3

希望这能帮到你。

嘿,无法安装curl,我得到了类似以下内容的错误提示: 以下软件包存在未满足的依赖关系: curl:依赖于libcurl3-gnutls(= 7.47.0-1ubuntu2),但应安装7.47.0-1ubuntu2.2版本。 E:无法解决问题,您有损坏的软件包。 - Tom
你的Ubuntu存在依赖问题,需要使用以下命令安装这些依赖项:(apt-get -y build-dep libcurl3-gnutls-dev),然后执行以下命令:(apt-get -y install libcurl3-gnutls-dev)。 - HexaCrop
这怎么比 apt-get install npm 更容易呢? - Beau B.
如果您想在一台计算机上安装多个Node实例,使用nvm来管理它们会更加方便。此时手动进行管理可能会很麻烦。 - HexaCrop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接