DNF 介绍
- DNF代表Dandified YUM是基于RPM的Linux发行版的软件包管理器
- DNF新一代的RPM软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,他取代了YUM,正式成为 Fedora 22 的包管理器。
- DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。
- DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。
常用命令
- 检查并升级可用软件包:
$ 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
[root@vultrguest ~]# dnf help
usage: dnf [options] COMMAND
主要命令列表:
alias List or create command aliases
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-enabled
enable repos with config-manager command
(automatically saves)
--disable, --set-disabled
disable 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 #强制使用一个架构安装包