dnf(Dandified YUM)是Fedora、RHEL 8、CentOS 8等现代Linux发行版中的下一代软件包管理器。它是yum的下一代替代品,使用libsolv进行依赖解析,提供更好的性能、更丰富的API和更好的用户体验。
| 特性 | dnf | yum |
|---|---|---|
| 依赖解析器 | 使用libsolv(C语言库),更快速、更可靠 | 使用内部Python解析器,较慢 |
| 内存使用 | 内存占用更少 | 内存占用较多 |
| API支持 | 提供更丰富的API,便于扩展 | API相对有限 |
| 历史记录 | 提供更详细的操作历史 | 历史记录较简单 |
| 自动删除 | 自动删除不需要的依赖包(默认开启) | 需要手动清理 |
| 插件架构 | 更好的插件支持 | 插件架构较旧 |
在CentOS 7/RHEL 7上安装dnf:
验证dnf是否安装成功:
| 命令 | 描述 | 示例 |
|---|---|---|
| install | 安装软件包 | dnf install nginx |
| update | 更新软件包 | dnf update nginx |
| upgrade | 升级系统(等同dnf update) | dnf upgrade |
| remove | 卸载软件包 | dnf remove nginx |
| search | 搜索软件包 | dnf search python3 |
| info | 查看软件包信息 | dnf info nginx |
| list | 列出软件包 | dnf list installed |
| autoremove | 自动删除不需要的依赖 | dnf autoremove |
| clean | 清理缓存 | dnf clean all |
| makecache | 生成缓存 | dnf makecache |
| history | 查看操作历史 | dnf history |
| groupinstall | 安装软件包组 | dnf groupinstall "Development Tools" |
安装Nginx Web服务器:
安装特定版本的软件包:
从指定仓库安装:
更新所有软件包:
更新单个软件包:
系统升级(版本升级):
卸载软件包:
自动删除不需要的依赖:
完全删除软件包及其配置文件:
搜索软件包:
获取软件包详细信息:
列出已安装的软件包:
列出可用的软件包:
列出仓库信息:
列出软件包组:
安装软件包组:
查看包组信息:
dnf提供了强大的历史记录功能,可以查看、撤销和重做操作。
查看历史记录:
撤销操作:
清理所有缓存:
清理特定类型的缓存:
生成新的缓存:
sudo dnf makecachednf repolistsudo dnf config-manager --set-enabled repository_namesudo dnf install epel-release
sudo yum install dnfdnf --versionalias yum='dnf' 或 alias yum='dnf'sudo dnf autoremove --assumenosudo dnf mark install package_namesudo vim /etc/dnf/dnf.conf 添加 clean_requirements_on_remove=false| 选项 | 描述 |
|---|---|
| -y, --assumeyes | 自动回答yes,跳过确认提示 |
| -q, --quiet | 安静模式,减少输出 |
| -v, --verbose | 详细输出 |
| --enablerepo=repo | 启用指定的仓库 |
| --disablerepo=repo | 禁用指定的仓库 |
| --nogpgcheck | 跳过GPG签名检查 |
| --best | 尝试安装最佳可用版本 |
| --allowerasing | 允许删除冲突的包 |
配置dnf以提高性能: