安装新版本后粘在旧版本上

时间:2016-09-12 16:22:05

标签: node.js

node --version
v4.5.0

npm --version
2.15.9

node-gyp --version
v3.4.0

which node
/home/admin/.nvm/versions/node/v4.5.0/bin/node

出于某种原因,在运行sudo npm install -g node-gyp - node-gyp installs with node v0.10.25之后:

npm WARN engine cryptiles@2.0.5: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})
npm WARN engine boom@2.10.1: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})
npm WARN engine hoek@2.16.3: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})

我已访问/home/admin/.nvm/versions/node/并找到了这些文件夹:v4.4.4, v4.4.7, v4.5.0

有人可以触发问题吗?那个v0.10.25版本在哪里,我该如何摆脱它?

3 个答案:

答案 0 :(得分:1)

问题在于,作为普通用户,正在使用nvm节点版本管理器,它允许您独立于节点安装不同(较新/较旧)的Node版本系统安装的Node版本(在您的情况下,为0.10.25)。

使用node-gyp安装sudo时,您正在“切换”到不同的用户(root),而nvm设置不适用。因此,将使用系统安装的Node版本,触发您正在获得的错误。

您有几个解决方案:

  • 安装sudo时请勿使用node-gyp。由于您使用的是nvm,因此您已拥有以普通用户身份安装所需的所有权限。
  • 更新系统安装的Node版本。这取决于您可能使用的分配;一些Linux发行版仅在其主要发行版中提供疯狂过时的Node版本。在这种情况下,请查看Nodesource binary distribution,它为最常见的Linux发行版提供最新的Node二进制文件。

答案 1 :(得分:0)

您可能必须清除/删除其他版本的Node。也许最简单的方法是删除所有内容然后重新安装。在npmjs.org site上有一个脚本(install.sh)。只需在您的终端上运行它,然后它应删除所有旧安装并安装最新版本。

尝试一下,让我知道这是否有帮助。它似乎适用于密切相关的问题here

答案 2 :(得分:0)

我遇到了同样的问题。我发现我有一个旧版本的node.exe文件,并在PATH(环境变量)我有一个链接到这个旧的node.exe文件夹。一旦从路径中删除它(并重新启动cmd),问题就解决了