你如何更新npm到最新版本?
我正在设置的Vagrant框中遇到npm
问题。 我注意到npm
版本npm
,所以我想用最新版本检查问题。
我的理解是您应该能够使用npm install -g npm
更新npm install -g npm
,但该命令对正在使用的npm
没有影响:
vagrant@box:~$ npm -v 1.3.10 vagrant@box:~$ sudo npm install -g npm npm http GET https://registry.npmjs.org/npm npm http 200 https://registry.npmjs.org/npm npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js npm@2.1.12 /usr/local/lib/node_modules/npm vagrant@box:~$ npm -v 1.3.10
我也尝试使用n
( 如何更新我的nodeJS到最新版本? )进行更新,但它既不影响npm
也不影响node
:
vagrant@box:~$ node -v v0.10.25 vagrant@box:~$ vagrant@box:~$ sudo npm install -gn /usr/bin/n -> /usr/lib/node_modules/n/bin/n n@1.2.9 /usr/lib/node_modules/n vagrant@box:~$ sudo n stable install : v0.10.33 mkdir : /usr/local/n/versions/0.10.33 fetch : http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz installed : v0.10.33 vagrant@box:~$ node -v v0.10.25 vagrant@box:~$ npm -v 1.3.10
如何将npm更新到最新版本?
我仍然不明白为什么 ,但我必须运行npm install -g npm
两次才能获得所需的效果:
vagrant@box:~$ npm -v 1.3.10 vagrant@box:~$ sudo npm install -g npm npm http GET https://registry.npmjs.org/npm npm http 200 https://registry.npmjs.org/npm npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js npm@2.1.12 /usr/local/lib/node_modules/npm vagrant@box:~$ npm -v 1.3.10 vagrant@box:~$ sudo npm install -g npm /usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js npm@2.1.12 /usr/lib/node_modules/npm vagrant@box:~$ npm -v 2.1.12
您可以使用npm本身,PPA或手动更新nodejs。
npm :
检查您当前的版本:
node -v
以下内容清除缓存。
sudo npm cache clean -f
安装n
sudo npm install -gn
您可以告诉它安装特定版本,如下所示:
sudo n 0.8.11
或者只是告诉它安装最新的稳定版本。 两者都可能需要一段时间。
sudo n stable
要查看它是否实际升级,请运行:
node -v
PPA :
其他选择是通过chris-lea的PPA安装它;
sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs
该PPA支持以下发行版:Utopic(14.10),Trusty(14.04),Saucy(13.10),Raring(13.04),Quantal(12.10),Precise(12.04),Oneiric(11.10),Natty(11.04),Lucid(10.04) )。
手动 :
您可以随时通过手动下载最新版本并自行安装来更新它!
参考 :
-
通过NPM升级Node.js.
-
Node.js基础:如何升级Node.js版本 福尔摩斯办公室
-
node.js:chris lea
-
node.js – 下载
当您第一次执行npm install -g npm
,shell(Bash)将在您的路径中搜索npm
,找到系统包安装的/usr/bin/npm
,然后使用它来安装新版本的npm
。 新版本将安装在/usr/local/bin/npm
。
现在,你的路径应该有/usr/local/bin/
BEFORE /usr/bin/
,所以你会认为它现在会在/usr/local/bin/
获取更新版本,对吗? 错误。
Bash会在第一次搜索它们之后执行CACHE可执行路径,所以当你第二次说npm
时,它仍然使用它最初找到的缓存版本为/usr/bin/npm
。
要告诉Bash清除此缓存并再次查看路径,您必须执行hash -r
。
在安装了npm
并执行此操作后,我的shell获得了新版本的npm
就好了。
谢谢
在一个命令中将NPM更新为最新版本
要升级或更新您的npm版本,只需输入终端:
sudo npm install npm@latest -g
如NPM文档的页脚所述
大多数时候我无法使用global命令升级它。 然而,对我来说有用的是从所有系统节点模块的源代码升级包:
找出npm的安装位置并进入该文件夹
# Below command shows the destination (remove sed pipe to see the full path of npm-cli) whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{19\}$//' # Go in there and install it manually. In my case it was the folder below... # NOTE: on mac its in /usr/local/lib cd /usr/lib sudo npm install npm@latest
看到每个人(特别是懒人)强大的单行
cd `whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//'`; cd ..; sudo npm install npm@latest
你做的任何技巧,不要使用Git
,我建议在Composer terminal
运行它们。 它肯定会奏效。 它通过npm install npm -g
为我做了。
要升级npm
您需要将nodejs
更新为包含npm
的最新版本
在debian stretch和jessie中使用这个脚本:
#install prerequisites apt-get install apt-transport-https curl git lsb-release -y #Install NodeJS from external repositories DISTRO=$(lsb_release -c -s) if [ "$DISTRO" == "stretch" ] then DISTRO="jessie" fi if curl -f "https://deb.nodesource.com/node_7.x/dists/$DISTRO/Release" >/dev/null then curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - echo "deb https://deb.nodesource.com/node_7.x $DISTRO main" > /etc/apt/sources.list.d/nodesource.list echo "deb-src https://deb.nodesource.com/node_7.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list apt-get update # comment out the following line, if you installed nodejs 7 already (check with `apt-cache policy nodejs`) apt-get remove nodejs nodejs-legacy npm apt-get install nodejs -y else echo -e "Your distribution is not supported by NodeJS. \nYou have to install a recent NodeJS version (>=4) manually. " fi
在Ubuntu中,您可以使用https://deb.nodesource.com上的此脚本:
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs
首先在https://github.com/nodesource/distributions/blob/master/deb/setup_7.x上查看源代码
升级到nodejs v0.12.7
# Note the new setup script name for Node.js v0.12 curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash - # Then install with: sudo apt-get install -y nodejs
来自nodesource.com的消息来源
我正面临着这个问题。 我当前的npm版本是3.3.12
但是我尝试了sudo npm install npm -g
, sudo npm update npm -g
..什么都没有用..而我npm --version
我总是得到3.3.12
。 我在我的Ubuntu 15.04中搜索了目录,并在不同的目录中找到了两个版本的npm。
- v3.3.12在
/usr/local/lib/node_modules/npm
- v3.6在
/usr/lib/node_modules/npm
所以当我在旧的npm目录中时,我确实用mv npm npm_3312
制作了3.3.12的副本。 然后我在’/ usr / lib / node_modules’目录下做了sudo cp -r npm /usr/local/lib/node_modules/
..我做了我的npm --version
而且我得到了3.6.0
:d
我没有看到任何理由重新安装那里准备好的东西,只需使用内置在包管理器中的update -g来更新自己:
$ npm -v 2.15.1 $ sudo npm update -g npm /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js npm@3.10.9 /usr/local/lib/node_modules/npm $ npm -v 3.10.9
确保全局标志-g在包之前。 我在过去遇到过问题,npm没有在包列表后注册标志。