【问题标题】: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)

标签: node.js ubuntu npm apt-get


【解决方案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"
    

    【讨论】:

      猜你喜欢
      • 2016-04-08
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多