使用dnf管理软件包
DNF是Fedora 22新默认的包管理器。DNF从Yum分支出来,使用专注于性能的C语言库hawkey进行依赖关系解析工作,大幅度提升包管理操作效率并降低内存消耗。DNF替代Yum的原因如下:
Yum不能“Python 3 as default”,而DNF支持Python 2和Python3
启动DNF项目的原因是Yum的三个陷阱:
undocumented API
、broken dependency solving algorithm
和inability to refactor internal functions
。Yum插件可以在Yum代码中使用任何method,这会造成Yum utility因一些细小变化而突然崩溃。DNF目标是为了避免Yum执行的错误。从一开始所有暴露的API都被适当的记录,且测试几乎包含了每一次新的提交。这个项目采用了敏捷开发,会提供用户一些优先级功能实现。
安装DNF包管理器
DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经默认使用 DNF
在RHEL/CentOS 7中安装DNF需要先安装
epel-release
然后安装
DNF
包
DNF包管理器使用
c
查看系统中可用的DNF软件库
查看系统中可用的和不可用的所有的DNF软件库
例如在Fedora 23中显示输出
列出所有RPM包
列出所哟安装了RPM包
列出所有可供安装的RPM包(包括了所有可用软件库的可供安装的软件包)
搜索软件库中的软件包
查找某个文件的提供者
查看软件包的详情
安装软件包
升级软件包
检查软件包的更新 - 检查系统中所有软件包的更新
升级系统中所有可以升级的软件包
删除软件包
删除无用鼓励的软件包:当没有软件再依赖时,某些用于解决特定软件依赖的软件包可以清理掉
删除缓存的无用软件包
获取某条命令的使用帮助
查看所有的DNF命令及用途
查看DNF命令的执行历史
查看所有的软件包组
安装一个软件包组
升级一个软件包组中的软件包
删除一个软件包组
从特定的软件包安装特定的软件
更新软件包都最新的稳定发行版:这个命令可以通过所有可用的软件源更新系统中所有已经安装的软件包到最新的稳定版本
重装特定软件包
回滚某个特定的软件版本
yum
和dnf
命令差异在 DNF 中没有
--skip-broken
命令,并且没有替代命令供选择在 DNF 中没有判断哪个包提供了指定依赖的
resolvedep
命令在 DNF 中没有用来列出某个软件依赖包的 deplist 命令。
当你在 DNF 中排除了某个软件库,那么该操作将会影响到你之后所有的操作,不像在 YUM 下那样,你的排除操作只会在升级和安装软件时才起作用。
DNF插件和高级命令
DNF通过一些插件提供了安装debuginfo包或下载仓库中RPM的功能
YUM command | DNF command | 提供的软件包 |
debuginfo-install | dnf debuginfo-install | dnf-plugins-core |
repoquery | dnf repoquery | dnf-plugins-core |
yum-builddep | dnf builddep | dnf-plugins-core |
yum-config-manager | dnf config-manager | dnf-plugins-core |
yumdownloader | dnf download | dnf-plugins-core |
repo-graph | dnf repograph | dnf-plugins-extras-repograph |
删除软件包同时清理系统中不再需要的依赖包
当删除某个不需要的软件包的时候,如何清理掉系统中因这个软件包而安装的一系列依赖软件包?
yum-utils
工具package-cleanup提供了列出"leaf nodes"软件包的功能,这些依赖软件可以通过以下命令清理
从Fedora 18开始,可以简化成yum autoremove
或者yum remove --setopt=clean_requirements_on_remove=1
。所以最简单的命令方法是yum autoremove <package>
实际上,dnf提供了这个autoremove
功能:
参考
Last updated