DNF5 是用 C++ 重写的 dnf 软件,它极大的提高了 dnf 处理数据的能力,因此缩短了 dnf 的查询时间
Important
|
如果你在使用一些 python 写的 dnf 命令行插件,那么我建议你先不要尝试用 dnf5 替换 dnf4,因为 dnf5 目前(2023 Nov)还不支持(未来也可能不打算支持)python 写的 cli 插件 |
Note
|
如果不想用 dnf5 替换默认的 dnf 命令,那么直接 下面说的是要将 dnf 命令替换为 dnf5 的版本,而 dnf4 则需要使用 dnf4 调用的方法 |
# 启用 dnf5-testing copr 仓库
# 该仓库下的 dnf5,在构建时,启用了替换 dnf 的功能
dnf copr enable rpmsoftwaremanagement/dnf5-testing
# 用 dnf 下载 dnf5 的 rpm 包
dnf download --arch x86_64 dnf5 libdnf5 libdnf5-cli
# 移除 dnf 和 yum
# 注意,包名一定要加引号,否则 bash 会搜索当前目录下的 rpm 文件
# 由于 dnf 默认是被保护的状态,不可以移除,因此我们要使用 --setopt protected_packages= 在命令行中清空 dnf 的保护
dnf remove --setopt protected_packages= 'dnf*' 'yum*'
# 通过 rpm 安装 dnf5
rpm -i ./dnf5* ./libdnf5*
之后,为了保证我们一直优先使用 copr 的 dnf5,我们可以设置一下这个 copr 仓库的优先级
编辑 /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:rpmsoftwaremanagement:dnf5-testing.repo 这个文件,在其中加入一行
priority=95
默认情况下,一个 repo 的优先级为 99,值越小越优先,这里设置到 95,就可以保证比 update 和 fedora 这两个 repo 更加优先
然后,我们用 repo 中的 dnf5 libdnf5 libdnf5-cli 替换我们本地安装的版本
dnf reinstall dnf5 libdnf5 libdnf5-cli
另:在使用 sudo
的时候,将被 sudo 的指令所需要的环境变量写在 sudo
的后面,默认情况下,sudo 前面的环境变量是不会传递给里面的命令的