Node.js 无法将npm从1.4.28升级到最新版本(2.2)

Node.js 无法将npm从1.4.28升级到最新版本(2.2),node.js,ubuntu,npm,Node.js,Ubuntu,Npm,我在Ubuntu 14.04上使用稳定版本的node。(通过PPA安装)当我尝试升级某些软件包(如yo)时,我遇到以下错误: npm ERR! notsup Unsupported npm ERR! notsup Not compatible with your version of node/npm: yo@1.4.2 npm ERR! notsup Required: {"node":">=0.10.0","npm":">=2.1.0"} npm ERR! notsup Actu

我在Ubuntu 14.04上使用稳定版本的node。(通过PPA安装)当我尝试升级某些软件包(如yo)时,我遇到以下错误:

npm ERR! notsup Unsupported
npm ERR! notsup Not compatible with your version of node/npm: yo@1.4.2
npm ERR! notsup Required: {"node":">=0.10.0","npm":">=2.1.0"}
npm ERR! notsup Actual:   {"npm":"1.4.28","node":"0.10.35"}

npm ERR! System Linux 3.13.0-32-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "update" "-g"
npm ERR! cwd /home/ekrem
npm ERR! node -v v0.10.35
npm ERR! npm -v 1.4.28
npm ERR! code ENOTSUP
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ekrem/npm-debug.log
npm ERR! not ok code 0
当我点击
(sudo)npm update-g npm
,我得到的结果如下:

npm@2.1.3 /home/ekrem/.node/lib/node_modules/ionic/node_modules/npm
点击
npm-v

1.4.28
我还清除了
~/.npm
下的所有文件,清除了缓存,重新安装了所需的组件,但没有任何更改。此外,

➜  ~  which node
/usr/bin/node
➜  ~  which npm 
/usr/bin/npm
➜  ~  less ~/.npmrc
prefix = ~/.node
我在网上查过类似的问题,但没有一个与我的问题相近

更新:

我移除了nodej;清除了使用第一种方法安装的
~/.node
&
~/.npm
(如@johns所建议)下的文件。以下是最新的产出:

➜  node -v
v0.10.35
➜  npm -v 
1.4.28
➜  which node
/home/ekrem/local/bin/node
➜  which npm 
/home/ekrem/local/bin/npm
➜  npm update -g npm 
# returns nothing
➜  ~  npm config get prefix
/home/ekrem/.node

有很多关于“npm更新-g”被破坏和暂时不使用的评论:

我会尝试重置或重新安装npm,然后从那里开始-重新安装npm应该相对轻松,并且可以解决问题:


这个解决方案对我很有效

使用cmd.exe导航到C:\Program Files(x86)\nodejs,然后在不使用-g的情况下运行安装:

npm install npm

我遇到了类似的问题,找到了这篇文章。经过多次尝试后,我让npm工作的方法是删除所有npm“node_module”文件夹,并删除任何npm配置文件,特别是主目录中的.npmrc文件

然后我运行“sudo apt get purge nodejs”

我转到安装程序并使用以下命令重新安装了nodejs:

'curl https://npmjs.org/install.sh | sh'
然后跑:

sudo apt-get install nodejs
最后我跑了:

npm update -g npm
在“更新”功能中发布了一些关于bug的问题,但它似乎对我有效,我从1.4版本升级到了2.7版本


我希望这能节省一些时间。

类似于@ThinkBonobo的答案,但我所要做的就是直接从npmjs.org运行更新。从新配置的实例:

$curl -sL https://deb.nodesource.com/setup | sudo bash -
$sudo apt-get install nodejs
$npm -v
1.4.28
$curl -L https://npmjs.org/install.sh | sudo sh
$npm -v
2.7.3

不需要其他步骤。

在我的情况下,我必须执行以下步骤才能从npm@1.4.28npm@3.2.0(目前为最新版本):

curl-Lhttps://www.npmjs.org/install.sh |sudo sh

此行可能会触发一些错误,如:

错误:EACCES,mkdir'/usr/lib/node\u modules/npm'

如果是,只需运行:

sudo rm-rf/usr/lib/node_modules/npm
(或错误中显示的指定目录)

从那里:

sudo npm安装-gnpm@3.0-最新的

现在

npm-v

1.4.28

成功显示一个漂亮的:
3.2.0

关于
ls-l$(哪个npm)呢
?我尝试了
npm update-g npm
并成功地将npm更新到2.2.0。@JohnS命令的结果:
lrwxrwx 1 root 38 Ara 25 02:41/usr/bin/npm->../lib/node_modules/npm/npm cli.js
now
cat/usr/lib/node_modules/npm/package.json | grep\“version”
我想讨论的是在没有任何包名的情况下运行
npm update-g
。@John我已经尝试过用您提供的页面上的脚本重新安装npm,sudo最后说“它工作了”,但
npm-v
仍然返回
1.4.28
。我希望它仍然可以单独安装。@ekremkaraca你有没有更进一步,通过apt get remove或apt get purge卸载,然后重新安装?谢谢,但我正在使用Ubuntu,正如我在上面的问题中所描述的。这种方法在windows上确实有效。。。您需要以管理员身份运行
cmd
提示符,根据您的系统,您的
nodejs
安装可能在
C:\Program Files\nodejs
下,而不是
C:\Program Files(x86)\nodejs
下,这对我在mac上很有效,但我必须添加全局标志,因此我使用了“npm install-g npm”