前言
DNF是新一代的RPM软件包管理器,它克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。目前CentOS7等版本默认未安装DNF,但可以通过yum install dnf -y
的方式来安装dnf软件包管理器。非常推荐用这个来替代yum。
常用命令
#检查并升级可用软件包:
dnf update
#删除缓存:
dnf clean all
#列出可用的软件源:
dnf repolist
#搜索软件:
dnf search $package
#查看软件的详细信息
dnf info $package
#安装软件:
dnf install $package
#升级软件包:
dnf update $package
#重新安装软件包
dnf reinstall $package
#列出所有安装的RPM包
dnf list installed
#删除软件包:
dnf remove $package
#删除所有原先因为依赖关系安装的不需要的软件包
dnf autoremove $package
#只下载软件包,不安装
dnf download $package
#查看更多命令:
dnf help
dnf help显示的帮助信息翻译
[root@localhost ~]# dnf help
usage: dnf [options] COMMANDalias #列出命令别名或为命令创建别名autoremove #删除所有原先因为依赖关系安装的不需要的软件包check #在包数据库中寻找问题check-update #检查是否有软件包升级clean #删除已缓存的数据deplist #列出软件包的依赖关系和提供这些软件包的源distro-sync #同步已经安装的软件包到最新可用版本downgrade #降级包group #显示或使用组信息help #显示一个有帮助的用法信息history #显示或使用事务历史info #显示关于软件包或软件包组的详细信息install #向系统中安装一个或多个软件包list #列出一个或一组软件包makecache #创建元数据缓存mark #在已安装的软件包中标记或者取消标记由用户安装的软件包。module #与模块交互。provides #查找提供指定内容的软件包reinstall #重装一个包remove #从系统中移除一个或多个软件包repolist #显示已配置的软件仓库repoquery #搜索匹配关键字的软件包repository-packages #对指定仓库中的所有软件包运行命令search #在软件包详细信息中搜索指定字符串shell #运行交互式的DNF终端swap #运行交互式的 DNF 终端以删除或者安装 spec 描述文件updateinfo #显示软件包的参考建议upgrade #升级系统中的一个或多个软件包upgrade-minimal #升级,但只有“最新”的软件包已修复可能影响你的系统的问题可选参数:-c [config file], --config [config file]配置文件位置-q, --quiet #静默执行-v, --verbose #详尽执行--version #显示 DNF 版本信息并退出--installroot [path] #设置目标根目录--nodocs #不要安装文档--noplugins #禁用所有插件--enableplugin [plugin] #启用指定名称的插件--disableplugin [plugin] #禁用指定名称的插件--releasever RELEASEVER #覆盖在配置文件和仓库文件中 $releasever 的值--setopt SETOPTS #设置任意配置和仓库选项--skip-broken #通过跳过软件包来解决依赖问题-h, --help, --help-cmd显示命令帮助--allowerasing #允许解决依赖关系时删除已安装软件包-b, --best #在事务中尝试最佳软件包版本。-C, --cacheonly #完全从系统缓存运行,不升级缓存-R [minutes], --randomwait [minutes] #最大命令等待时间-d [debug level], --debuglevel [debug level] #调试输出级别--debugsolver #转储详细解决结果至文件--showduplicates 在 list/search #命令下,显示仓库里重复的条目-e ERRORLEVEL, --errorlevel ERRORLEVEL #错误输出级别--obsoletes 对 upgrade #启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery显示软件包过期的功能--rpmverbosity [debug level name] #rpm调试输出等级-y, --assumeyes #全部问题自动应答为是--assumeno #全部问题自动应答为否--enablerepo [repo]--disablerepo [repo]--repo [repo], --repoid [repo] #启用指定 id 或 glob 的仓库,可以指定多次--enable, --set-enabledenable repos with config-manager command(automatically saves)--disable, --set-disableddisable repos with config-manager command(automatically saves)-x [package], --exclude [package], --excludepkgs [package] #用全名或通配符排除软件包--disableexcludes [repo], --disableexcludepkgs [repo] #禁用 excludepkgs--repofrompath [repo,path] #指向附加仓库的标记和路径,可以指定多次。--noautoremove #禁用删除不再被使用的依赖软件包--nogpgcheck disable gpg signature checking (if RPM policy allows)--color COLOR #配置是否使用颜色--refresh #在运行命令之前将元数据标记为过期。-4 #仅解析 IPv4 地址-6 #仅解析 IPv6 地址--destdir DESTDIR, --downloaddir DESTDIR #设置软件包要复制到的目录--downloadonly #仅下载软件包--comment COMMENT #为事务添加一个注释--bugfix #在更新中包括与 bug 修复有关的软件包--enhancement #在更新中包括与功能增强有关的软件包。--newpackage #在更新中包括与新软件包有关的软件包--security #在更新中包括与安全有关的软件包--advisory ADVISORY, --advisories ADVISORY #在更新中包括修复指定公告所必须的软件包--bzs BUGZILLA #在更新中包括修复给定 BZ 所必须的软件包--cves CVES #在更新中包括修复给定 CVE 所必须的软件包--sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low} #在更新中包括匹配给定安全等级的安全相关的软件包--forcearch ARCH #强制使用一个架构安装包