如何在Ubuntu上安装最新的node.js?我一直在环顾四周,但找不到任何东西。是否有适用于node.js的Ubuntu软件包,还是我必须自己对其进行编译?

#1 楼

在Node.js网站上:
 # Using Ubuntu
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
 

然后,您将获得最新版本的Node.js。
如果您不是curl <url> | bash -的粉丝,或者使用的是不受支持的发行版,则可以尝试手动安装。

评论


-1,因为此解决方案涉及将卷毛管道输送到超级用户外壳中。有人可以跟进一个不使用卷曲的bash脚本添加存储库的解决方案吗?

– nickguletskii
15年11月22日在7:42



@nickguletskii这是nodejs项目提供的指导。

– jrg
2015年11月23日14:22

@詹姆斯我明白。但是,说这些方向有缺陷是轻描淡写(尽管您几乎可以说出node.js的所有内容)。尽管这还不算很糟糕(至少脚本是通过https提供的),但仍然可能会导致部分下载,因此rm -rf / usr / blah / blah可能会变成rm -rf / usr。这通常是一件非常糟糕的事情,我不认为“这就是开发人员提供的方向”是一个很好的借口。

– nickguletskii
2015年11月23日15:44

@nickguletskii相信我-我知道其中的危险。这是一个坏主意,但是只要开发人员支持安装指导,那就是我们必须处理的问题。

– jrg
2015年11月23日20:00

我的问题是将其安装为nodejs而不是node ..因此,如果在安装nodejs之后,我无法以“ node”的身份而是以“ nodejs”的身份访问nodejs

– Rizwan Patel
16年2月25日在16:47

#2 楼

Node是较容易构建的项目之一。只需更改版本,即可继续更改。

浏览到http://nodejs.org/dist/latest/以了解最新的软件包版本。

cd /usr/local/src
wget http://nodejs.org/dist/latest/node-v7.2.1.tar.gz
tar -xvzf node-v7.2.1.tar.gz
cd node-v7.2.1
./configure
make
sudo make install
which node


您应该看到/usr/local/bin/node

评论


在带有Node.js v0.10.30的Ubuntu 14.04 LTS上进行了测试,它运行良好。要获取最新版本,请访问nodejs.org/download。要查看所有发行版:github.com/joyent/node/releases。

– Lucio Paiva
2014年8月9日15:12

对于它可能关心的人,NPM也将自动构建和安装。

– Lucio Paiva
2014年8月9日15:16



刚刚将其用于ubuntu 16.04,它就像一个魅力。

–穆巴沙尔·阿巴斯(Mubashar Abbas)
17 Mar 29 '17 at 14:59

#3 楼

是的,转到Synaptic,搜索“ nodejs”。程序包位于Universe库中。我建议您在进行开发时安装所有以nodejs开头的软件包。

以防万一,请执行以下操作:

sudo apt-get install g++ curl libssl-dev apache2-utils git-core
git clone git://github.com/joyent/node.git
cd node
./configure
make
sudo make install


这将下载node.js的源代码,制作并安装。

评论


“ sudo apt-get build-dep nodejs”比“ apt-get install”行更合适吗?

–freddyb
2011年6月18日16:10

@freddyb像这样拥有它不会感到伤害。

– nickguletskii
2011年6月18日在16:20

感谢您的回答-但是,我最近发现node.js具有“正式非官方”的PPA-因此我回答了这个问题,因为用“正确”的指令重写整个答案并不礼貌。

– jrg
2011年11月28日在1:23

但是我更喜欢这种解决方案,而不是sudo apt-get install nodejs,这最后的版本没有提供最新版本。

– Rubens Mariuzzo
13年1月12日在19:28

如果您使用我上面描述的PPA,则@rubens不会。

– jrg
13-10-23在12:35

#4 楼

NVM(节点版本管理器)

https://github.com/creationix/nvm

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


由于必须进行采购每个新的外壳,您可能都希望在.bashrc中添加以下内容:

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


#5 楼

由于此问题的词为最新,而NodeJS的最新发行版本现在为v0.12.2(截至今天),如果要安装此版本,则需要运行以下命令

# 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


Update

NodeJS发布了v5.8.0,但我仍然找不到要安装的ppa。所以我使用NVM如下安装

首先安装nvm

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


然后安装NodeJS v5.8.0

nvm install v5.8.0


更新2:
对于偏爱PPA的人😃

https://github.com/nodesource/distributions#debinstall


评论


确认。这是当前在ubuntu上更新节点的当前方法。

– jhohlfeld
2015年5月21日在15:11

资料来源:nodesource.com/blog/…

– AlonL
15年5月27日在8:47

我从这里得到一个错误:W:无法获取https://deb.nodesource.com/node_0.12/dists/trusty/main/source/Sources在CONNECT之后从代理接收到HTTP代码403 —通过apt无法正常工作-cacher-ng?

–甜蜜地
15年6月13日在12:34

-1用于将卷曲卷曲到超级用户外壳。

–乔什·米尔索普(Josh Milthorpe)
16年6月6日在16:56

@JoshMilthorpe谢谢!是的,我知道管道问题。仅供参考,它不是管道超级用户。但是使用nvm管理多个NodeJS版本非常受欢迎

– nmrony
17-10-12在9:36



#6 楼

一般而言,将URL中的任意数据加载到root shell会话中不是一个好主意,我希望人们不要再兜售它作为所有问题的解决方案-“请运行我发送给您的脚本,并且在再说一遍-我有一座桥梁,您可能有兴趣购买”。

作为替代方案,这是“ Ubuntu方式”进行的操作-这基本上就是Node Source脚本所要做的一切它会自动执行,但是您可以在此处查看系统的更新方式,并知道将什么存储库和哪些密钥添加到了系统配置中:

apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280
apt-add-repository "deb https://deb.nodesource.com/node_7.x $(lsb_release -sc) main"
apt-get update
apt-get install nodejs


这是最新的(在撰写本文时)Nodejs版本7。对于LTS版本(6),您应该添加的存储库URL为https://deb.nodesource.com/node_6.x。其他版本也可以通过对回购URL进行简单的更改而获得-有关详细信息,请查阅nodesource.com文档。

请注意,如果您使用的是替代Ubuntu发行版,例如Trisquel,则$(lsb_release -sc)命令可能不会可以正常工作,因此您必须将其替换为兼容的Ubuntu版本名称,例如xenial

#7 楼


官方存储库(15.04)中有一个nodejs -package。考虑还对nodejs-legacy命令使用node

要更新到最新版本,请使用通过n安装的npm软件包:

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



请参阅此SO问题以比较NVM和N。

评论


sudo n Latest将安装最新版本的node.js

–嘘
19-11-25在6:41



#8 楼

@jrg的答案是正确的,但是Chris Lea的Launchpad PPA将不支持Node.js v0.12及更高版本。因此,要根据新的Node.js安装最新版本的nodesource PPA,请按照nodesource博客中的文章和Joyent / node

首先:

curl -sL https://deb.nodesource.com/setup | sudo bash -


此脚本将:


如果已经在使用旧的PPA,请对其进行清理
将NodeSource签名密钥添加到密钥环中
将deb.nodesource.com添加到您的密钥环中APT来源
使用新来源进行apt-get更新

然后安装Node.js

sudo apt-get install -y nodejs


更新:根据发布于nodesource博客

要安装nodejs版本0.12.X

您需要运行命令:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -


要安装nodejs版本0.10.X

您需要运行命令:

curl -sL https://deb.nodesource.com/setup_0.10 | sudo bash -


然后

sudo apt-get install -y nodejs


#9 楼

在Ubuntu上安装Node.js的最简单方法是使用karel的答案中所述的snap软件包。如果由于某种原因(例如在WSL环境中)无法使用快照,则最好使用Node Version Manager(NVM)。这比从PPA或第三方存储库将Ubuntu中的节点程序包升级到不受支持的版本更安全,因为这可能会导致apt程序包管理系统中的冲突或损坏。与NVM相比,通过tarball进行的手动安装更加难以维护和升级。请按照以下步骤使用NVM安装最新节点:


安装NVM
在终端中运行此命令:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash



安装节点
一旦完成NVM的安装,请关闭并重新打开终端。然后运行以下命令:
nvm install node



检查节点版本
运行以下命令:
node --version
npm --version



如果一切顺利,您将看到最新的节点和npm版本作为输出。仅此而已,节点已安装并可以运行! br

#10 楼

我总是对使用非官方的PPA持谨慎态度-通常可以解决问题,但是我希望在分销渠道和我正在使用的项目之间建立某种程度的官方关联...

就个人而言,这是我获得Node的最佳选择,因为它提供了许多安装Node的好方法-https://gist.github.com/isaacs/579814

#11 楼

这是一个解决方案,它会一次检查md5sum并将其与下载的文件进行比较,并且可以选择在md5的总和不匹配时删除该文件。它应解决Arda的答复中提出的安全投诉。

 #!/bin/bash
if [[ -z  ]]; then
  printf "Usage: ./scriptname <file or url> <optional output filename>\n"
  exit 1
fi

resource=
md5=`curl --silent --location ${resource} | md5sum | awk '{ print  }'`
filename="$(date +%Y-%M-%d-%H-%m-%s-file)"
if [[ -n  ]]; then
  filename=
fi
curl --silent --location $resource -o $filename
md52=`md5sum $filename | awk '{ print  }'`

if [[ $md5 == $md52 ]]; then
  printf "File sums match.\n"
  printf "Saved file to $filename\n"
else
  printf "File sums don't match.\n"
  #wrapping line to add newline, ugly, but it works
  read -rep "Delete file?
  " -n 1
fi

if [[ $REPLY =~ ^[Yy]$ ]]; then
  rm $filename
  exit 1
else
  exit 0
fi
 


将其保存到诸如safer-curl.sh之类的文件中,然后执行chmod +x safer-curl.sh
然后像这样执行:

./safer-curl.sh <file or url> <optional output filename>


在Ubunt 12.04上测试

#12 楼

Node.js在所有当前受支持的Ubuntu版本中均作为快照包提供。特定于Node.js的开发人员可以从当前受支持的版本之一中进行选择,并直接从NodeSource获得定期的自动更新。 Node.js版本6、8、9、10、11、13和14当前可用,并且Snap Store在Node.js版本发布后的数小时或数分钟之内进行更新。
Node可以安装一个命令,例如:
sudo snap install node --classic --channel 11/stable 

可以通过命令q4​​312079q访问节点快照,例如:
$ node -v  
v11.5.0

将安装npm的最新版本节点捕捉的。 npm应该在常规外壳中的节点repl外部运行。安装节点快照之后,运行以下命令以启用npm更新检查:
sudo chown -R $USER:$(id -gn $USER) /home/your-username/.config

用您自己的用户名替换上述命令中的node。然后运行your-username检查npm的版本是否为最新。例如,我检查npm是最新的,使用命令npm -v检查已经安装的名为yarn的软件包的版本,然后使用命令npm list yarn将现有的纱线软件包更新为最新版本
用户可以切换您可以随时在Node.js版本之间进行切换,而无需使用诸如nvm(节点版本管理器)之类的其他工具,例如:
sudo snap refresh node --channel=11/stable

用户可以测试可以安装的最新版本的Node.js。从当前正在通过以下方式切换到Node.js版本12的最新边缘通道切换:
sudo snap switch node --edge

仅建议那些愿意参与上游测试和错误报告的用户使用此方法。
Node.js LTS时间表
Release LTS Status  Codename    LTS Start       Maintenance Start Maintenance End
6.x     Active      Boron       2016-10-18      April 2018        April 2019
7.x     No LTS              
8.x     Active      Carbon      2017-10-31      April 2019        December 2019
9.x     No LTS              
10.x    Active      Dubnium     October 2018    April 2020        April 2021  
11.x    No LTS                                  2019-04-01        2019-06-30
12.x                            2019-10-22      2021-04-01        2022-04-01
13.x    No LTS                                  2020-04-20        2020-06-01
14.x    Current     Fermium     2020-10-20      2021-10-20        2023-04-30


#13 楼

当我得知我的Node.js版本本身已过时时,我最近通过NPM安装了一个实用程序。不用担心-只需升级我的Node.js安装并继续前进。当然,我可以单击nodejs.org并获取新图像,但认为必须有一种更简单的方法。事实证明-您可以使用NPM升级本地Node.js:

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


并添加到PATH,示例(对于Ubuntu)

echo "export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules" >> ~/.bashrc && source ~/.bashrc


#14 楼

幸运的是,使用节点二进制管理器模块'n'可以非常简单地管理节点版本。

1:检查当前的Node版本。

$node -v v0.6.12


2:清除npm缓存

sudo npm cache clean -f  


3:安装'n'

sudo npm install -g n  


4:升级到更高版本(此步骤可能需要一段时间),您可以指定特定的版本,例如:

sudo n 0.8.11  


或者您也可以告诉经理安装最新的稳定版本,如下所示:

sudo n stable  


5:检查正在运行的Node版本以验证其是否有效:

$node -v v0.8.11


如果版本未编号,则步骤5中的输出不是您所期望的。

#15 楼

最新的Node.js
步骤1-:

cd /opt/
wget https://nodejs.org/dist/v6.2.1/node-v6.2.1.tar.gz


提取tar.gz源代码

tar -xvf node-*.tar.gz


>步骤2:编译并安装nodejs。

cd node-v6.2.1
./configure
make
$ sudo make install


注-:如果发现错误“找不到命令”

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
gcc -v
make -v


#16 楼

这是命令

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