dnf 用于安装、卸载或者查询 rpm 包。其基本语法格式如下:
dnf [options] <command> [<args>...]
示例:
#安装软件包 dnf install <package> #卸载软件包 dnf remove <package> #查找提供文件、包名或者能力的软件包 dnf provides <provides> #下载源码包 dnf download --source <package>
选项
常用的通用选项如下:
选项 | 说明 |
---|---|
--downloadonly | 只下载安装包,不安装。 |
-x, --exclude=<package-file-spec> | 排除指定包。 |
--installroot=<path> | 指定安装根路径。 |
--noautoremove | 禁止删除不再被使用的依赖包。 |
--nogpgcheck | 不检查 GPG 签名(如果 RPM 策略允许)。 |
-q, --quiet | 抑制提示输出。 |
--refresh | 设置所有元数据已过期。 |
--releasever=<release> | 设置发行版本。 |
--repofrompath <repo>,<path/url> | 为查询临时添加一个仓库。 |
--repo=<repoid> | 仅使能指定仓库。 |
--skip-broken | 通过移除造成问题的包,来解决依赖问题。 |
--showduplicates | 显示仓库中重复的包。 |
-v, --verbose | 显示调试信息。 |
-y, --assumeyes | 对所有问题自动回答 yes 。 |
子命令
install
安装指定的软件包及其依赖。语法格式如下:
dnf [options] install <spec>...
注解:
<spec>...
其支持章节 参数 介绍的类型 package 和 provide。比如
yum install vim
表示提供能力vim
的软件包。
download
下载二进制或源码包。命令 yumdownloader 也被重定位到此命令。语法格式如下:
dnf download [<options>] <package-spec>...
注解:
options
常见选项如下:
选项 说明 --source 下载源码包,默认为下载二进制包。 --debuginfo 下载调试信息包。 --downloaddir 指定下载目录,默认为当前目录。 --url 打印下载地址,而非下载包。 --resolve 同时下载依赖包。
remove
卸载指定软件包和依赖此包的包。语法格式如下:
dnf [options] remove --duplicates | <package-spec>...
注解:
--duplicates
删除所有包名重复的旧版本的包。
autoremove
卸载所有"叶子"包,即作为依赖被安装,但是不再被任何包依赖的包。语法格式如下:
dnf [options] autoremove [<spec>...]
注解:
<spec>...
当指定此选项,即指定包时,表示卸载此包及其依赖的包。
upgrade
更新软件包。语法格式如下:
dnf [options] upgrade [<package-spec>...]
注解:
<package-spec>...
如果省略此参数,则默认更新全部软件包为最新版本。否则更新指定软件包为最新版本,可以指定版本号。
search
查找包信息(name、summary)匹配关键字的包。关键字是忽略大小写的字符串,可以使用通配符。语法格式如下:
dnf [options] search [--all] <keywords>...
注解:
[--all]
默认是同时匹配所有关键字的包。如果指定
--all
选项,则表示匹配任意关键字的包。
check
检查本地包数据库的所有问题。语法格式如下:
dnf [options] check [--dependencies] [--duplicates] [--obsoleted] [--provides]
注解:
[--dependencies] [--duplicates] [--obsoleted] [--provides]
省略以上选项时,默认检查所有问题。
makecache
下载并缓存仓库的元数据,这些数据用于指示仓库的包信息。其语法格式如下:
dnf [options] makecache
clean
清除仓库临时文件。语法格式如下:
dnf clean <type>
注解:
<type>
清除文件的类型,有以下几种类型可选:
类型 说明 dbcache 清除所有仓库元数据产生的缓存。 metadata 清除所有仓库元数据,这些文件表明仓库有哪些包。 packages 清除系统中所有缓存的包。 all 清除以上所有类型。
repoinfo
显示仓库信息。语法如下:
dnf repoinfo [--enabled|--disabled|--all]
注解:
--enabled|--disabled|--all
表示显示指定类型的仓库,默认为显示所有使能的仓库。
provides
显示提供指定指定能力、文件名、软件包的软件包。语法格式如下:
dnf [options] provides <provide-spec>
注解:
<provide-spec>
此参数可以为软件包提供的能力、文件以及软件包名称。文件名不包含路径时,会被默认依次加上
/usr/bin
、/usr/sbin
等前缀进行搜索。详看章节 参数 介绍。
repoquery
显示 DNF 仓库中或者已安装包的相关信息。相当于对远程仓库的包执行 rpm -q
查询命令。语法如下:
dnf [options] repoquery [<select-options>] [<query-options>] [<package-file-spec>]
注解:
<package-file-spec>
指定软件包名称。如果省略则表示所有软件包。
<select-options>
用于筛选软件包。需要注意已安装包不一定在仓库中都可得,有可能仓库更换或者手动安装等。常用选项如下:
选项 说明 -a, --all 全部软件包。 --duplicates 重复安装的仅版本号不同的软件包。 --unneeded 作为依赖包被安装的,以后不再需要的包。即会被 dnf autoremove
清除的包。--available 仓库中可得的包(默认)。 --extras 在任何仓库都没有的已安装的包。 -f, --file <file> 包含文件 file 的包。 --installed 已安装的包。 --upgrades 可更新的包。 --userinstalled 显示用户安装的包(避免显示作为依赖安装的包)。 --whatdepends <capability>... 显示依赖能力 capability
的包(requires, enhances, recommends, suggests 或 supplements)。--whatprovides <capability>... 显示提供能力 capability
的包。<query-options>
用于选择显示包的哪些信息。常用选项如下:
选项 说明 -i, --info 显示包的详细信息。 -l, --list 显示包的文件清单。 --changelogs 显示包的修改历史日志。 --depends 显示包依赖的能力(requires, enhances, recommends, suggests 或 supplements)。 --provides 显示包提供的能力。 --requires 显示包依赖的能力 (requires)。 --tree 递归的查询,支持选项: --whatrequires
、--requires
、--provides
等--deplist 显示包所有直接依赖的能力和提供此能力的包。
help
显示所有命令的帮助信息,语法格式如下:
dnf help [<command>]
注解:
<command>
如果指定
command
,则只显示指定命令的帮助手册。
参数
可用于指定以下常用几种类型:
-
指定软件包(packages)
用于指定软件包的名称、提供的能力或文件全名(包含路径),支持
*
、?
、[]
等通配符。- <package-spec> :可以为软件包名称、提供的能力或文件。
- <package-file-spec> :可以为软件包名称、提供的文件。
- <package-name-spec> :可以为软件包名称。
-
指定提供的能力(provides)
- <provide-spec> :软件包明确指定的能力,或隐含提供的能力(比如软件包名),或提供的文件。