对于开发者的Fedora 40 中的变化

PyTorch

Fedora 40 是第一个提供 PyTorch 的 Fedora 版本,PyTorch 是一个基于 Torch 库的机器学习框架,用于计算机视觉和自然语言处理等应用,最初由 Meta AI 开发,现在是 Linux 基金会旗下的一部分。它是在修改后的 BSD 许可证下发布的免费开源软件。

将 PyTorch 作为 Fedora 软件包提供,意味着用户现在可以使用 DNF 代替 pip 进行安装。Fedora 40 提供的初始版本是 2.1.2。要安装,请运行 dnf install python-torch

要开始使用 PyTorch,请参阅官方文档。那些对 Fedora 中的 PyTorch 特别感兴趣的人,如开发者、打包者、末端用户等,可以加入PyTorch Fedora 特殊兴趣组

PHP 8.3

PHP 编程语言解释器堆栈已升级到 8.3 版,该版本提供了多个错误修复和增强功能。值得注意的变化包括:

  • 指定类常量的显式类型

  • 动态类常量获取

  • 新的 #[\Override] 属性

  • 只读属性的深度拷贝

  • 新的 `json_validate()`函数

  • 新的 `Randomizer::getBytesFromString()`方法

  • 命令行linter支持多文件

有关更新的全部内容,请参阅 上游发行说明

Golang 1.22

Fedora 40 提供 Golang 1.22 版本。请参阅上游发布说明以获取完整的变更列表。

Python 3.7退役

从这一版本开始,Python 3.7 版本将被视为退役版本,因为自 2023 年 6 月起它的生命周期就终止了。但是Python 3.7不会被替换。

LLVM 18

所有 LLVM 子项目都已更新至第 18 版,其中包括 llvm 库的 soname 版本变更。新增了兼容包 clang17、llvm17 和 lld17,以确保目前依赖于 clang 和 llvm 第 17 版库的软件包能够继续工作。

其他显著变化包括:

  • clang 将默认发射 DWARF-5,而不是 DWARF-4。这与上游的默认值一致。由于 https://bugzilla.redhat.com/show_bug.cgi?id=2064052 的原因,Fedora 在过去几个版本中一直使用 DWARF-4 作为默认值。

  • 现在,兼容性软件包将包含与主软件包相同的内容。在以前的版本中,兼容性软件包只包含库和头文件,二进制文件和其他内容都被删除了。这些软件包将被支持作为其他 RPM 软件包的依赖包使用,但最终用户不能在通常情况下使用。Fedora 用户应使用 Clang/LLVM 18。

  • 为 Fedora 40 添加的兼容性软件包将在 Fedora 41 分支之前退役。

  • 如果该功能能在上游 LLVM 18 版本发布时完成,我们将在 redhat-rpm-config 中启用 Fat LTO。Fat LTO 是一项允许编译器生成包含 LTO 位码和传统 ELF 二进制码的库的功能,这样这些库就可以在 LTO 模式和非 LTO 模式下链接。在 Fedora 39 及更早版本中,启用 LTO 后,clang 生成的二进制文件只有 LTO 位码,因此我们需要在库上运行一个后处理脚本(brp-llvm-compile-to-elf),将其转换为 ELF 代码,以便其他软件包使用。启用 Fat LTO 可以让 Fedora 项目移除该脚本并简化编译过程。

参阅 上游发行说明以获取更多细节。

GNU 工具链更新

GNU 编译器集、GNU 二进制实用程序、GNU C 库和 GNU 调试器构成了 GNU 工具链的核心部分,在发布新的 Fedora 版本时,将这些组件作为一个完整的实现过渡给我们的用户是非常有用的。

在 Fedora 40 中,GNU 工具链的组件(gcc、glibc、binutils、gdb)已更新至以下版本:

Boost 1.83

Fedora 40 包含 Boost 1.83。更多信息,请参阅上游发布说明

Ruby 3.3

在 Fedora 40 中,Ruby 语言已更新至 3.3 版,高于 Fedora 上一版本中提供的 3.2 版。新版本添加了名为 Prism 的新解析器,使用 Lrama 作为解析器生成器,添加了名为 RJIT 的新纯 Ruby JIT 编译器,并提供了许多性能改进,尤其是 YJIT。

有关详细信息,请参阅上游新闻发行公告

java-21-openjdk 作为系统 JDK

Fedora 40 中的系统 JDK 已从版本 17 升级到版本 21。

有关 Java 21 的更多信息,请参阅JDK 21 发行说明迁移指南

另请参阅更改页面,快速了解有关此更改的常见问题。

Pipenv 退役

从这个版本开始,pipenv 不再打包在 Fedora 中,因此在升级过程中可能会被移除。

需要继续使用 pipenv 的开发人员可以使用 pip install --user pipenv 直接从 pip 安装。