Node.js 为什么Ubuntu的apt-get包管理器中有旧版本的nodejs和npm?

Node.js 为什么Ubuntu的apt-get包管理器中有旧版本的nodejs和npm?,node.js,ubuntu,npm,apt-get,Node.js,Ubuntu,Npm,Apt Get,当我用apt-get安装nodejs和npm时 sudo apt-get update sudo apt-get install nodejs modejs-legacy npm I have the versions 我得到以下版本 npm -v 1.3.10 nodejs -v v0.10.25 我知道如何手动更新这些包,但是为什么apt get软件包管理器有这些软件包的旧版本?最好使用nodesource的ppa。他们在保持更新方面做得很好,不仅提供了LTS,还提供了最新版本的nod

当我用apt-get安装nodejs和npm时

sudo apt-get update
sudo apt-get install nodejs modejs-legacy npm
I have the versions
我得到以下版本

npm -v
1.3.10

nodejs -v
v0.10.25

我知道如何手动更新这些包,但是为什么apt get软件包管理器有这些软件包的旧版本?

最好使用nodesource的ppa。他们在保持更新方面做得很好,不仅提供了LTS,还提供了最新版本的node

与从cli运行此命令一样简单:

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

更新: 包管理器拥有旧版本的二进制文件的原因是,所提供包的维护人员需要时间来正确构建和测试具有更新版本的新包


好的是,您可以使用和安装来自其他存储库(ppa)的软件包。

internet上的其他说明将告诉您通过下载脚本并将其导入
sudo
来安装node 7.x。这会减少键入,但可能会使该脚本和任何可能破坏网站或设置MITM攻击根访问您的计算机的人获得访问权限

由于主apt存储库的维护人员在添加软件包之前会对其进行审计和测试,因此他们可能需要一些时间来批准最新版本。您可以从独立维护的回购协议下载节点7.x:

我复制粘贴自


一个要考虑的是,在Ubuntu中使用$(LSBX-Reloop-SC)工作库时,在Ubuntu的发行版(如Linux MINT)上可能不起作用。nodesource的脚本将基于Ubuntu的发行名转换为相应的Ubuntu发行名

例如:“LinuxMint”“sylvia”被映射到“Ubuntu”“xenial”

这意味着,如果您想在基于Ubuntu的发行版中使用响应中所示的指令,您需要用实际的基本Ubuntu发行版替换$(lsb_release-sc)

例如,要在Linux Mint sylvia中安装,需要输入

sudo apt-add-repository "deb https://deb.nodesource.com/node_7.x xenial main"

这不能回答为什么的问题。@SteveBennett你是对的,它不能回答。我将更新我的答案以包括原因。谢谢:谢谢:)这是一种不安全的方法,不是推荐的Ubuntu方式。相反,请查看以下答案:请注意,该命令用于安装最新版本的nodejs 4。请参阅为更高版本提供的链接。与您的问题所表达的需求相关,您可能希望查看在userland中安装的节点版本,并允许切换版本。它被认为是一种更好的模式,即使在生产中也是如此。Ruby和其他语言也使用这种技术(例如rvm)
sudo apt-add-repository "deb https://deb.nodesource.com/node_7.x xenial main"