什么是 Node.js?
Node.js® 是一个基于 Chrome的 V8 JavaScript 引擎。 它使用事件驱动的非阻塞 I/O 模型,使其轻量且高效。 它的包生态系统 npm 是世界上最大的开源库生态系统。 你可以阅读更多关于 Node.js 的内容: 项目网站.
什么是 EPEL 7?
EPEL 代表企业 Linux 的额外软件包。 EPEL是一个 Fedora 为企业 Linux 系统维护一组高质量的附加软件包的特殊兴趣组。 这些系统包括 Red Hat Enterprise Linux (RHEL)、CentOS 和 Scientific Linux。
EPEL 7 中 Node.js 的历史
EPEL 7 于 2014 年首次发布。不久之后,Node.js 包在 Fedora 是为 EPEL 7 克隆和生产的。当时,最新的稳定版本是 0.10.x。 EPEL 根据更新策略定期包括上游错误修复、安全修复和其他反向移植。 几年来,EPEL 提供了一个稳定的 0.10x 平台来在企业 Linux 系统上运行 Node.js 应用程序。
然而,所有美好的事情都必须结束。 Node.js 上游已宣布对 0.10.x 版本系列的所有支持将于 2016 年 10 月 1 日结束。此后,Node.js SIG Fedora 将全权负责任何发布 0.10.x 发布流的版本的错误修复和安全补丁。 经过讨论,SIG 决定执行重大的重大更改并将 EPEL 7 更新到最新的稳定 6.x 流。
为什么要进行重大更改?
做出这一决定的原因有三个。 首先,像 Node.js 这样庞大而流行的项目是不可能维护的。 用户会受到更新缓慢的影响,可能会带来安全隐患。
其次,EPEL SIG 认为有责任为 EPEL 用户提供最新的平台,以使用最新的可用技术。 6.x 流包含自 0.10.x 以来几年的进步和功能。 在那个时候,Node.js 已经成为一个非常成功的基础设施。 它得到了数百名贡献者和数十家公司的支持。 仅仅因为它们包含向后不兼容的更改而未能提供这些增强功能并不像 Fedora 项目。
最后,上游已宣布新的 6.x 发布流 长期稳定 释放。 这意味着上游支持当前版本的总生命周期约为 30 个月。 该支持将于 2019 年 4 月 1 日结束。假设上游维持其当前计划的 LTS 时间表,EPEL 7 可能会在 2018 年 10 月左右开始另一次过渡到 Node.js 8.x LTS 分支。
这对您有何影响
如果你今天没有使用 Node.js 0.10.x,当然这个变化根本不会影响你。 如果您今天在 EPEL 7 上使用它,您可能很快就会遇到中断。 这是因为众所周知,Node.js 6.x 与 4.x 和 0.12.x 一样,与许多设计用于 0.10.x 的软件包向后不兼容。 因此,一旦更新到 6.x 并在您的机器上应用它,构建在 0.10.x 之上的应用程序可能会出现故障。
不过,也有一些好消息。 许多开发人员已经更新了 NPM 生态系统中的包以使用最新版本的 Node.js。 这意味着您只需升级到这些 NPM 库的较新版本即可解决许多问题。 此外,上游提供了 有用的页面 描述每个主要版本中的重大变化。
你有依赖 Node.js 的应用程序吗? 如果是这样,强烈建议您尽快尝试 6.x。 当升级出现在稳定的 EPEL 存储库中时,这将有助于避免中断。 您现在可以使用 epel-testing 存储库使用以下命令安装 6.x 软件包:
yum update --enablerepo=epel-testing nodejs
如果您对此升级有任何疑问或疑虑,请直接联系 Node.js SIG 邮件列表.