Ben Cotton,Fedora 项目经理 在红帽, Anunció 最近在邮件列表中, 你打算迁移 Fedora 给包装经理 地下城5 默认。
提到计划中的变化 将从 Fedora 39 发布开始生效, 更改计划用 DNF5 工具包和新的 libdnf5 库替换 dnf、libdnf 和 dnf-cutomatic 包。
关于变化,值得一提的是 当时 DNF 取代了 Yum,它完全用 Python 编写。
对于那些不了解 DNF 的人, 他们应该知道这 是一个软件包管理器 它在 Fedora 中安装、更新和删除软件包,是 YUM(Yellow-Dog Updater Modified)的继承者。 DNF 便于包装维护 通过自动检查依赖关系并确定安装软件包所需的操作。 此方法无需使用 rpm 命令手动安装或更新包及其依赖项。 DNF 现在是 Fedora 中默认的软件包管理工具。
在 DNF 中,重写了对性能要求高的低级函数 并转移到单独的 C 库 hawkey、librepo、libsolv 和 libcomps,但框架和高级组件仍保留在 Python 中。
DNF5 将显着改善用户体验和性能。 替换是更新 Fedora 软件管理堆栈的第二步。 如果不进行更改,将有多个基于不同库(libdnf、libdnf5)的软件管理工具(DNF5、旧 Microdnf、PackageKit 和 DNF),提供不同的行为并且不共享历史记录。 我们也可以预期 DNF 只能获得有限的上游支持。
萨尔瓦多PROYECTO DNF5 旨在统一现有的低级库,用 C++ 重写 包管理组件保留在 Python 中,并将核心功能移动到单独的 libdnf5 库,方法是围绕该库创建一个链接以保留 Python API。
DNF5 仍在开发中,某些功能或选项尚不可用。 我们仍然需要完成模块化的实现,与系统历史和状态相关的内部数据的存储,以及文档和手册页。 DNF5 可以通过每晚上游构建的存储库进行测试:d` 不应该是用户可写的,并且其格式不充分(缺少有关已安装包和已安装配置文件的信息)
使用 C++ 代替 Python 将删除许多依赖项,减少大小 工具集并提高性能。 更高的性能不仅可以通过编译机器码来实现,还可以通过改进的事务表实现、从存储库加载的优化以及数据库重组(将数据库与系统状态和操作历史分开)来实现。
地下城5 已从 PackageKit 中解耦,支持 一个新的后台进程 DNF 守护进程 它取代了 PackageKit 的功能,并提供了一个用于在图形环境中管理包和更新的界面。
也返工 它将允许对包管理器的可用性进行一些改进。 例如,新的 DNF 对操作进度有更直观的指示; 添加了对使用本地 RPM 包进行事务的支持; 添加了在报告中显示打包的小脚本(scriptlet)发布的已完成交易信息的能力; 为 bash 提出了一个更高级的输入完成系统。
值得一提的是 该提案尚未经过 FESCo 审核 (Fedora 工程指导委员会),它负责开发 Fedora 发行版的技术部分。
最后 如果您有兴趣了解更多信息, 您可以在中查看详细信息 以下链接。