如何将我的nodeJS更新到最新版本?


625

我已经使用以下代码在Ubuntu上安装了nodeJS

sudo apt-get install nodejs

由于我是ubuntu的新用户,因此我也运行了此代码

sudo apt-get install npm

现在当我输入

 nodejs --version

表明

v0.6.19

我检查并看到最新的nodeJS版本是 0.10.26

如何将我的nodeJS版本更新为0.10.26

我尝试过

 sudo apt-get install <packagename>
 sudo apt-get install --only-upgrade <packagename>

但没有运气。


2
最好使用nvm安装nodejs。它代表“节点版本管理器”。您可以非常容易地安装多个版本的nodejs,在它们之间切换并设置默认值。
米娜·迈克尔

Answers:


1107

使用npm中的n个模块以升级节点

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

要升级到最新版本(而不是当前稳定版本),您可以使用

sudo n latest

撤销:

sudo apt-get install --reinstall nodejs-legacy     # fix /usr/bin/node
sudo n rm 6.0.0     # replace number with version of Node that was installed
sudo npm uninstall -g n

在David Walsh博客http://davidwalsh.name/upgrade-nodejs中找到


11
这应该是正确的答案。n是一个节点帮助程序包,用于安装或更新给定的node.js版本。
2014年

40
我强烈建议不要在生产实例上执行此操作。它会严重破坏您的全局npm软件包以及您安装新软件包的能力。
Loourr

12
但仍然是nodejs --version母猪0.10.25
Mansuu .... 16/12/29


14
node -v无法正常工作-按照步骤操作后,仍然给了我6版本而不是10版本。
TomášZato

368

此后,Nodesource 已在此处上传完整的安装说明。它在下面复制以供参考。更新至最新版本的说明相同。

Node.js v12.x

注意:如果您使用的是Ubuntu Precise或Debian Wheezy,则可能需要阅读有关在较旧发行版上运行Node.js> = 6.x的信息。

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_12.x | bash -
apt-get install -y nodejs

Node.js v11.x

注意:如果您使用的是Ubuntu Precise或Debian Wheezy,则可能需要阅读有关在较旧发行版上运行Node.js> = 6.x的信息。

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_11.x | bash -
apt-get install -y nodejs

Node.js v10.x

注意:如果您使用的是Ubuntu Precise或Debian Wheezy,则可能需要阅读有关在较旧发行版上运行Node.js> = 6.x的信息。

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs

Node.js v9.x

注意:如果您使用的是Ubuntu Precise或Debian Wheezy,则可能需要阅读有关在较旧发行版上运行Node.js> = 6.x的信息。

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_9.x | bash -
apt-get install -y nodejs

Node.js v8.x

注意:如果您使用的是Ubuntu Precise或Debian Wheezy,则可能需要阅读有关在较旧发行版上运行Node.js> = 6.x的信息。

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_8.x | bash -
apt-get install -y nodejs

Node.js v7.x

注意:Debian Wheezy和Ubuntu Precise软件包适用于此版本。请参考在旧发行版上运行Node.js> = 4.x

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_7.x | bash -
apt-get install -y nodejs

Node.js v6.x

注意:如果您使用的是Ubuntu Precise或Debian Wheezy,则可能需要阅读有关在较旧发行版上运行Node.js> = 4.x的信息

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_6.x | bash -
apt-get install -y nodejs

Node.js v5.x

注意:如果您使用的是Ubuntu Precise或Debian Wheezy,则可能需要阅读有关在较旧发行版上运行Node.js> = 4.x的信息

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_5.x | bash -
apt-get install -y nodejs

Node.js v4.x

注意:如果您使用的是Ubuntu Precise或Debian Wheezy,则可能需要阅读有关在较旧发行版上运行Node.js> = 4.x的信息

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_4.x | bash -
apt-get install -y nodejs

Node.js v0.12

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_0.12 | bash -
apt-get install -y nodejs

Node.js v0.10

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_0.10 | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_0.10 | bash -
apt-get install -y nodejs

io.js v3.x

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_iojs_3.x | sudo -E bash -
sudo apt-get install -y iojs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_iojs_3.x | bash -
apt-get install -y iojs

io.js v2.x

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_iojs_2.x | sudo -E bash -
sudo apt-get install -y iojs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_iojs_2.x | bash -
apt-get install -y iojs

io.js v1.x

注意:io.js的此分支未被积极维护,不建议用于生产环境。

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_iojs_1.x | sudo -E bash -
sudo apt-get install -y iojs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_iojs_1.x | bash -
apt-get install -y iojs

我建议您删除过时的信息,或者将其移至问题的底部,以便首先阅读当前信息。
k0pernikus

2
这是对我有用的答案!
eri0o

1
对于像我这样的所有困惑白痴,运行安装程序似乎可以有效替代您以前拥有的设备。因此,我认为您可以通过此过程执行升级或降级。我从v8升级到v10,并在安装日志中发现了此消息:Unpacking nodejs (10.15.0-1nodesource1) over (8.12.0-1nodesource1) ...node -v在安装愉快地显示v10.15.0我想要的内容后运行。
icc97

2
curl {anything} | sudo bash -是一种可怕的安全做法
krubo

1
@krubo我同意。用户应在运行脚本之前检查脚本。但是,它从一个有信誉的来源(nodesource.com)和连接是通过HTTPS保护,所以您可以在这些脚本会将信任的足够量。但是,是的,通常,在将脚本传递到管道之前,请检查脚本sudo bash
dayuloli

28

该PPA已过时,不再维护;您应该考虑其他答案而不是这个答案。

您可以从PPA安装最新版本:

sudo add-apt-repository ppa:chris-lea/node.js  
sudo apt-get update  
sudo apt-get install nodejs

13
我认为,如果您(也)提供了一种非ppa的方式,这将是一个更好的答案,众所周知,ppas变得过时且无法维护,从而使答案无用。
pzkpfw 2014年

@ bigbadonk420是的,如果您只是用谷歌搜索,可能最好跳过第一行,并使用节点0.10.34为我进行更新和安装工作
Capaj

@Capaj不。那没有帮助...
deostroll 2014年

6
不建议再使用此ppa,因为它似乎已经过时了。
Kzqai 2015年

19

我使用NVM处理我的Node版本。设置非常简单,易于使用。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

要改为全局安装NVM,请使用以下curl命令而不是上面的命令(并且大概不要使用第二个命令,但要使用第三个命令)

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

然后使用nvm install stable(或插入一个版本号代替stable)来获取最新/特定版本的Node。使用nvm use stable(或特定版本号)使用该节点版本。使用nvm ls看你所安装的节点版本和nvm uninstall stable(或特定版本号)删除节点的特定版本。

资料来源: 安装用法


虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
沃伦·希尔

抱歉,我的笨拙。更新的答案
2014年

给定的卷曲路径不起作用。我使用了github.com/creationix/nvm中给出的“ curl raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash”
Senthil

不要忘记将url部分更新为nvm的最新版本
Nidhin David

16

我还建议改用nvm,并删除已安装的版本,以避免终端中发生冲突

sudo apt purge nodejs npm

然后安装nvm并使用它

影片说明

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

下载并安装nvm

nvm install node

应该下载并安装最新版本的节点。

稍后再更新节点

nvm install node
nvm alias default node

4
这应该是唯一被接受的答案-如果您想在Ubuntu中拥有健全而最新的Node设置。
世纪

这对我来说也是最好的(在我们的EC2上有相当古老的nodejs并尝试了很多建议,只有这个建议才起作用)。同样100%同意以上评论!
山豆

nvm按用户安装Node.js。使用nvm不会给您系统范围的node命令。因此,我建议不要删除全局/系统,node以使以其他用户身份运行的脚本仍然可以运行node
d4nyll

4

我在ubuntu 14.04上尝试了相同的list命令,但仍然抛出错误。

我执行的命令是:

sudo add-apt-repository ppa:chris-lea/node.js  
sudo apt-get update  
sudo apt-get install nodejs

和我得到的错误:

Invalid version 0.12.2
Line 299: curl not found in /bin/n

我发现,我的操作系统上未安装curl工具。

我执行了命令:

apt-get install curl

sudo如果不是,请用作前缀su

然后重复步骤建议的答案,它就会起作用;)


2

这将从nodesource安装最新的节点v0.12。*。

sudo apt-get install -y curl
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

对于节点v4.x

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

2
您是从头开始安装节点吗?问题是关于更新未安装的问题
Green

2

使用nvm是首选方法。首先安装nvm:

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

然后安装nodejs:

nvm install node

现在,您可以轻松切换节点的版本。


2

NVM(节点版本管理器)具有 --lts

在以下位置提到了NVM:https//askubuntu.com/a/441527/52975,但是这里有一个更完整的用法示例,包括理智的--lts版本。

NVM会为您安装最新的稳定节点和npm

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | sh
source ~/.nvm/nvm.sh
nvm install --lts
nvm use --lts
npm --version

现在使用虚拟包对其进行测试:

npm install --global vaca
vaca

由于必须为每个新的Shell完成采购,因此安装脚本黑客将在您的末尾添加一些自动采购.barshrc。可以,但是我更喜欢删除自动添加的,然后添加自己的:

f="$HOME/.nvm/nvm.sh"
if [ -r "$f" ]; then
  . "$f" &>'/dev/null'
  nvm use --lts &>'/dev/null'
fi

好处:

  • 允许您使用多个版本的Node,而无需sudo

  • 与Ruby RVM和Python Virtualenv类似,在Ruby和Python社区中被广泛认为是最佳实践

  • 尽可能下载预编译的二进制文件,如果不下载,则下载源文件并为您编译

我们可以使用以下方法轻松切换节点版本:

nvm install 0.9.0
nvm install 0.9.9
nvm use 0.9.0
node --version
#v0.9.0
nvm use 0.9.9
node --version
#v0.9.9

然后,您可以使用git跟踪.nvmrc文件来指示给定项目所需的节点版本:https : //stackoverflow.com/questions/24869959/how-do-i-specify-a-local-version-of-node-for -a-project / 54503474#54503474

在Ubuntu 17.10中测试。


1

我建议您首先删除所有nodejs安装,然后在使用所需的nodejs版本及其安装父目录进行编辑后,执行以下脚本

查看所有可用的nodejs版本

https://nodejs.org/dist/

下面的脚本将允许您在Linux或OSX上安装任何这些nodejs版本

#!/bin/bash

#     usage :
#
#     edit two vars in below :  NODE_VER  and  CODE_PARENT_DIR
#
# ... execute this script as yourself unless you choose a root owned value for var CODE_PARENT_DIR
#     whichever id you execute this as determines the id you will issue npm commands as :  npm install -g foo-bar
#
#     NOTE - nodejs comes bundled with npm ... so no need to do separate npm install
#            this scripts runs fine on linux or OSX

# ...  copy all the lines starting here  .. top of copy  ....   and ending ... end of copy  ...
#      and paste into your ~/.bashrc file so proper env vars get set 

# ............... top of copy  ........................  install_node.sh

# export NODE_VER=v7.2.0  # see available versions at https://nodejs.org/dist/
# export NODE_VER=v8.5.0  # edit this line next time you need to update nodejs  
export NODE_VER=v9.3.0  # edit this line next time you need to update nodejs

# ...  pick parent dir of nodejs install  ... comment out or remove ONE of below
# export CODE_PARENT_DIR=/opt/code  # root owned dir ... requires you to sudo prior to npm install going forward
export CODE_PARENT_DIR=${HOME}    # RECOMMENDED execute as yourself including npm install

# ......... following env vars are OK no edits needed ... only ever need to edit above vars

curr_OS=$( uname )

echo curr_OS $curr_OS

if [[ "${curr_OS}" == "Darwin" ]]; then

    OS_ARCH=darwin-x64

elif [[ "${curr_OS}" == "Linux" ]]; then

    OS_ARCH=linux-x64
else
    echo "ERROR - failed to recognize OS $curr_OS"
    exit 5
fi

if [[ -z ${CODE_PARENT_DIR} ]]; then

    echo "ERROR - failed to see env var CODE_PARENT_DIR"
    exit 5
fi

export NODE_CODEDIR=${CODE_PARENT_DIR}/nodejs
export COMSUFFIX=tar.gz
export NODE_NAME=node-${NODE_VER}
export NODE_PARENT=${NODE_CODEDIR}/${NODE_NAME}-${OS_ARCH} 

export PATH=${NODE_PARENT}/bin:${PATH}
export NODE_PATH=${NODE_PARENT}/lib/node_modules

# ............... end of copy  ........................  install_node.sh

# copy and paste above from ... top of copy ... to here into your file ~/.bashrc   

echo
echo "NODE_CODEDIR $NODE_CODEDIR<--"
echo

echo "mkdir -p ${NODE_CODEDIR}"
echo
      mkdir -p ${NODE_CODEDIR}
echo

echo "cd ${NODE_CODEDIR}"
      cd ${NODE_CODEDIR}
echo

# this is compiled code NOT source

[ -f ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX} ] && rm ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX} # if file exists remove

echo "wget -q --show-progress https://nodejs.org/download/release/${NODE_VER}/${NODE_NAME}-${OS_ARCH}.${COMSUFFIX}"
      wget -q --show-progress https://nodejs.org/download/release/${NODE_VER}/${NODE_NAME}-${OS_ARCH}.${COMSUFFIX}
echo

echo "tar -C ${NODE_CODEDIR} -xf ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX}"
      tar -C ${NODE_CODEDIR} -xf ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX}
echo

[ -f ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX} ] && rm ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX} # if file exists remove

# ...........  done ........... #

which node

node --version

# ....  bottom of file   install_node.sh

1

如果使用n不起作用,则可以nodejs运行以下命令来安装最新版本(即版本8):

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

sudo apt-get install -y nodejs

进一步的说明在这里


0

如果您在代理后面,则在运行“ sudo n stable”时可能会收到此错误:

Error: invalid version

您必须像这样设置环境变量:

export HTTP_PROXY=http://your-proxy-url:port
export HTTPS_PROXY=http://your-proxy-url:port

然后运行将这些变量传递给root用户的命令:

sudo -E n stable


0

我正在尝试通过上面回答的nvm安装,但是在ubuntu 18.04中遇到一些错误。然后我经历这个过程

sudo apt purge nodejs npm

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

nvm install node

运行此命令后,您可能会发现该错误 Command 'nvm' not found, did you mean:

在这种情况下,您可以运行此命令

source ~/.nvm/nvm.sh

或者您可以将其放在文件/.bashrc或〜/ .profile中以自动加载它

之后,您可以通过下一步

nvm install node
nvm alias default node
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.