dnf(yum)

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>...

注解:

  1. <spec>...

    其支持章节 参数 介绍的类型 package 和 provide。比如 yum install vim 表示提供能力 vim 的软件包。

download

下载二进制或源码包。命令 yumdownloader 也被重定位到此命令。语法格式如下:

dnf download [<options>] <package-spec>...

注解:

  1. options

    常见选项如下:

    选项 说明
    --source 下载源码包,默认为下载二进制包。
    --debuginfo 下载调试信息包。
    --downloaddir 指定下载目录,默认为当前目录。
    --url 打印下载地址,而非下载包。
    --resolve 同时下载依赖包。

remove

卸载指定软件包和依赖此包的包。语法格式如下:

dnf [options] remove --duplicates | <package-spec>...

注解:

  1. --duplicates

    删除所有包名重复的旧版本的包。

autoremove

卸载所有"叶子"包,即作为依赖被安装,但是不再被任何包依赖的包。语法格式如下:

dnf [options] autoremove [<spec>...]

注解:

  1. <spec>...

    当指定此选项,即指定包时,表示卸载此包及其依赖的包。

upgrade

更新软件包。语法格式如下:

dnf [options] upgrade [<package-spec>...]

注解:

  1. <package-spec>...

    如果省略此参数,则默认更新全部软件包为最新版本。否则更新指定软件包为最新版本,可以指定版本号。

search

查找包信息(name、summary)匹配关键字的包。关键字是忽略大小写的字符串,可以使用通配符。语法格式如下:

dnf [options] search [--all] <keywords>...

注解:

  1. [--all]

    默认是同时匹配所有关键字的包。如果指定 --all 选项,则表示匹配任意关键字的包。

check

检查本地包数据库的所有问题。语法格式如下:

dnf [options] check [--dependencies] [--duplicates] [--obsoleted] [--provides]

注解:

  1. [--dependencies] [--duplicates] [--obsoleted] [--provides]

    省略以上选项时,默认检查所有问题。

makecache

下载并缓存仓库的元数据,这些数据用于指示仓库的包信息。其语法格式如下:

dnf [options] makecache

clean

清除仓库临时文件。语法格式如下:

dnf clean <type>

注解:

  1. <type>

    清除文件的类型,有以下几种类型可选:

    类型 说明
    dbcache 清除所有仓库元数据产生的缓存。
    metadata 清除所有仓库元数据,这些文件表明仓库有哪些包。
    packages 清除系统中所有缓存的包。
    all 清除以上所有类型。

repoinfo

显示仓库信息。语法如下:

dnf repoinfo [--enabled|--disabled|--all]

注解:

  1. --enabled|--disabled|--all

    表示显示指定类型的仓库,默认为显示所有使能的仓库。

provides

显示提供指定指定能力、文件名、软件包的软件包。语法格式如下:

dnf [options] provides <provide-spec>

注解:

  1. <provide-spec>

    此参数可以为软件包提供的能力、文件以及软件包名称。文件名不包含路径时,会被默认依次加上 /usr/bin/usr/sbin等前缀进行搜索。详看章节 参数 介绍。

repoquery

显示 DNF 仓库中或者已安装包的相关信息。相当于对远程仓库的包执行 rpm -q 查询命令。语法如下:

dnf [options] repoquery [<select-options>] [<query-options>] [<package-file-spec>]

注解:

  1. <package-file-spec>

    指定软件包名称。如果省略则表示所有软件包。

  2. <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 的包。
  3. <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>]

注解:

  1. <command>

    如果指定 command,则只显示指定命令的帮助手册。

参数

可用于指定以下常用几种类型:

  1. 指定软件包(packages)

    用于指定软件包的名称、提供的能力或文件全名(包含路径),支持 *?[] 等通配符。

    • <package-spec> :可以为软件包名称、提供的能力或文件。
    • <package-file-spec> :可以为软件包名称、提供的文件。
    • <package-name-spec> :可以为软件包名称。
  2. 指定提供的能力(provides)

    • <provide-spec> :软件包明确指定的能力,或隐含提供的能力(比如软件包名),或提供的文件。