为啥 Ubuntu 的 apt-get 包管理器中有旧版本的 nodejs 和 npm?

Posted

技术标签:

【中文标题】为啥 Ubuntu 的 apt-get 包管理器中有旧版本的 nodejs 和 npm?【英文标题】:Why does Ubuntu have old versions of nodejs and npm in their apt-get package manager?为什么 Ubuntu 的 apt-get 包管理器中有旧版本的 nodejs 和 npm? 【发布时间】:2016-04-11 18:17:15 【问题描述】:

当我使用 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 包管理器有这些包的旧版本?

【问题讨论】:

与您的问题所表达的需求相关,您可能需要查看github.com/creationix/nvm,它会在用户空间中安装您想要的任何节点版本,并允许切换版本。它被认为是一种更好的模式,即使在生产中也是如此。 Ruby 和其他语言也使用此类技术(例如 rvm) 【参考方案1】:

最好使用来自 nodesource 的 ppa。他们在保持更新方面做得很好,不仅提供 LTS,还提供可用的最新版本节点。 https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

就像从您的 cli 中运行它一样简单:

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

更新:

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

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

【讨论】:

这没有回答为什么的问题。 @SteveBennett 你是对的,它没有回答。我将更新我的答案以包括原因。谢谢:D 谢谢你:) 这是一种不安全的方法,不是推荐的 Ubuntu 方法。相反,请查看以下答案:askubuntu.com/a/711976/404188 请注意,该命令用于安装最新版本的 nodejs 4。请参阅为更高版本提供的链接。【参考方案2】:

互联网上的其他说明会告诉您通过下载脚本并将其通过管道传输到 sudo 来安装节点 7.x。这减少了输入,但可能会给该脚本和任何可能已经破坏网站或设置 MITM 攻击根访问您的计算机的人提供。

由于主要 apt 存储库的维护人员在添加之前审核和测试包,因此他们可能需要一些时间来批准最新版本。您可以从独立维护的 repo 下载 node 7.x:

我从this answer复制粘贴

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

【讨论】:

【参考方案3】:

需要考虑的一点是,虽然使用 $(lsb_release -sc) 添加存储库在 ubuntu 中有效,但它可能不适用于基于 Ubuntu 的发行版,例如 Linux Mint。来自 nodesource 的脚本将基于 Ubuntu 的发行版名称转换为相应的 Ubuntu 发行版名称。

例如:“Linux Mint”“sylvia”映射到“Ubuntu”“xenial”

这意味着如果您想在基于 Ubuntu 的发行版中使用响应中显示的说明,则需要将 $(lsb_release -sc) 替换为实际的基本 Ubuntu 发行版。

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

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

【讨论】:

以上是关于为啥 Ubuntu 的 apt-get 包管理器中有旧版本的 nodejs 和 npm?的主要内容,如果未能解决你的问题,请参考以下文章

为啥Centos装上以后,执行apt-get命令提示没有该命令

ubuntu包管理命令apt和dpkg的用法

为啥Centos装上以后,执行apt-get命令提示没有该命令

为啥Centos装上以后,执行apt-get命令提示没有该命令

ubuntu - apt-get 简单理解

ubuntu 常用apt-get命令