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 #强制使用一个架构安装包