dnf命令常见用法

dnf命令总结

Main Commands:

命令 描述
alias List or create command aliases 列出或创建命令别名
autoremove remove all unneeded packages that were originally installed as dependencies 删除之前自动安装但是现在已经不需要的依赖
check check for problems in the packagedb 检查包装中的问题
check-update check for available package upgrades 检查可用的软件包
clean remove cached data 删除缓存
deplist [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them 检查包依赖的,现在用repoquery --deplist xxx
distro-sync synchronize installed packages to the latest available versions 将已安装的软件包同步到最新可用版本
downgrade Downgrade a package 降级软件包,是upgrade的逆向操作
group display, or use, the groups information 显示或使用组信息
help display a helpful usage message 显示帮助信息
history display, or use, the transaction history 显示历史
info display details about a package or group of packages 显示一个包或一组包的详细信息
install install a package or packages on your system 向系统中安装一个或多个软件包
list list a package or groups of packages 列出一个或一组包
makecache generate the metadata cache 生成元数据缓存,是clean的逆向操作
mark mark or unmark installed packages as installed by user. 标记或取消标记已安装的包为用户安装。
module Interact with Modules. 与模块交互。
provides find what package provides the given value 查找提供给定值的包,一个软件可以被多个仓库提供,确认已先后可以选择指定的仓库的软件安装
reinstall reinstall a package 重装
remove remove a package or packages from your system 删除
repolist display the configured software repositories 列出仓库列表,默认只会可用的仓库
repoquery search for packages matching keyword 搜索匹配关键字的包
repository-packages run commands on top of all packages in given repository 在给定存储库中的所有包上运行命令
search search package details for the given string 搜索给定字符串的包详细信息,和list的区别在于 list 不联网,查询的本地缓存,search联网
shell run an interactive DNF shell 运行交互式DNF shell
swap run an interactive DNF mod for remove and install one spec 运行交互式DNF模块来删除和安装一个规范
updateinfo display advisories about packages 显示有关包的建议
upgrade upgrade a package or packages on your system 升级

Plugin Commands:

命令 描述
builddep Install build dependencies for package or spec file 安装包或规范文件的构建依赖项
changelog Show changelog data of packages 显示包的变更日志数据
config-manager manage dnf configuration options and repositories 管理DNF配置选项和存储库
copr Interact with Copr repositories. 与Copr存储库交互。
debug-dump dump information about installed rpm packages to file 将安装的RPM包信息转储到文件中
debug-restore restore packages recorded in debug-dump file 还原记录在调试转储文件中的包
debuginfo-install install debuginfo packages 安装debuginfo包
download Download package to current directory 下载包到当前目录
groups-manager create and edit groups metadata file 创建和编辑组元数据文件
needs-restarting determine updated binaries that need restarting 确定需要重新启动的已更新二进制文件
offline-distrosync Prepare offline distrosync of the system 准备系统离线同步
offline-upgrade Prepare offline upgrade of the system 准备系统离线升级
playground Interact with Playground repository. 与Playground存储库交互。
repoclosure Display a list of unresolved dependencies for repositories 显示存储库的未解析依赖项列表
repodiff List differences between two sets of repositories 列出两组存储库之间的差异
repograph Output a full package dependency graph in dot format 以点格式输出完整的包依赖关系图
repomanage Manage a directory of rpm packages 管理rpm包目录
reposync download all packages from remote repo 从远程repo下载所有包
system-upgrade Prepare system for upgrade to a new release 准备系统升级到新版本

备注:dnf移除了update命令,但是还可以使用 目前的upgrade代替update,区别是加了一个参数--obsoletes

参数选项

选项 说明
-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 通过跳过软件包来解决依赖问题
--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] Enable additional repositories. List option. Supports globs, can be specified multiple times.
--disablerepo [repo] Disable repositories. List option. Supports globs, can be specified multiple times.
-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 在运行命令之前将元数据标记为过期
--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 在更新中包括匹配给定安全等级的安全相关的软件包
--forcearch ARCH 强制使用一个架构安装包
-h, --help,-?, --help 显示命令帮助,如果后面跟着命令名称,则显示该命令的帮助信息,例如:dnf --help install

查询命令说明的方式

如果记不住命令,先大概开一下有哪些命令对能做什么心里有个大概认知,后面在查询

使用dnf --help 得到命令提示

[root@localhost yum.repos.d]# dnf --help 
usage: dnf [options] COMMAND

List of Main Commands:

alias                     List or create command aliases
autoremove                remove all unneeded packages that were originally installed as dependencies
check                     check for problems in the packagedb
check-update              check for available package upgrades
clean                     remove cached data
deplist                   [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them
distro-sync               synchronize installed packages to the latest available versions
downgrade                 Downgrade a package
group                     display, or use, the groups information
help                      display a helpful usage message
history                   display, or use, the transaction history

使用 dnf 命令 --help得到改命令特有的参数提示

[root@localhost yum.repos.d]# dnf list --help
#开始是对这个命令参数的例子和描述
usage: dnf list [-c [config file]] [-q] [-v] [--version] [--installroot [path]] [--nodocs] [--noplugins] [--enableplugin [plugin]]
                [--disableplugin [plugin]] [--releasever RELEASEVER] [--setopt SETOPTS] [--skip-broken] [-h] [--allowerasing] [-b | --nobest] [-C]
                [-R [minutes]] [-d [debug level]] [--debugsolver] [--showduplicates] [-e ERRORLEVEL] [--obsoletes]
                [--rpmverbosity [debug level name]] [-y] [--assumeno] [--enablerepo [repo]] [--disablerepo [repo] | --repo [repo]]
                [--enable | --disable] [-x [package]] [--disableexcludes [repo]] [--repofrompath [repo,path]] [--noautoremove] [--nogpgcheck]
                [--color COLOR] [--refresh] [-4] [-6] [--destdir DESTDIR] [--downloadonly] [--comment COMMENT] [--bugfix] [--enhancement]
                [--newpackage] [--security] [--advisory ADVISORY] [--bz BUGZILLA] [--cve CVES] [--sec-severity {Critical,Important,Moderate,Low}]
                [--forcearch ARCH] [--all | --available | --installed | --extras | --updates | --upgrades | --autoremove | --recent]
                [PACKAGE ...]

list a package or groups of packages



#中间是共有参数省略



#末尾有一些特有的命令
List command-specific options:
  --all                 show all packages (default)
  --available           show only available packages
  --installed           show only installed packages
  --extras              show only extras packages
  --updates             show only upgrades packages
  --upgrades            show only upgrades packages
  --autoremove          show only autoremove packages
  --recent              show only recently changed packages

  PACKAGE               Package name specification

yum仓库文件结构

dnf目前用的就是yum的仓库文件,位于/etc/yum.repos.d
下面是仓库定义文件,一个仓库定义文件里面有多个仓库地址

[root@localhost yum.repos.d]# ls -l
total 52
-rw-r--r--. 1 root root 1919 Nov 27 18:01 docker-ce.repo
-rw-r--r--. 1 root root 1142 Aug 31 04:52 epel-cisco-openh264.repo
-rw-r--r--. 1 root root 1453 Aug 31 04:52 epel.repo
-rw-r--r--. 1 root root 1552 Aug 31 04:52 epel-testing.repo
-rw-r--r--. 1 root root 3070 Apr 22  2024 mysql-community-debuginfo.repo
-rw-r--r--. 1 root root 2755 Apr 22  2024 mysql-community.repo
-rw-r--r--. 1 root root 2870 Apr 22  2024 mysql-community-source.repo
-rw-r--r--. 1 root root 6610 Nov  1 11:27 rocky-addons.repo
-rw-r--r--. 1 root root 1165 Nov  1 11:27 rocky-devel.repo
-rw-r--r--. 1 root root 2387 Nov  1 11:27 rocky-extras.repo
-rw-r--r--. 1 root root 3417 Nov  1 11:27 rocky.repo
-rw-r--r--. 1 root root  162 Nov 29 18:03 wlnmp-release-centos.repo

仓库文件的格式

#这个一个仓库的Id,后面是仓库的属性,比如名字,是否启用,密钥等文件gpg是一种类似公私钥的加密方式
#baseurl是仓库真实的地址,search,更新,下载软件需要连接这个地址
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/8/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

#一个仓库文件里面定义了多个repoId 
[mysql-innovation-community]
name=MySQL Innovation Release Community Server
baseurl=http://repo.mysql.com/yum/mysql-innovation-community/el/8/$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022

[mysql-8.4-lts-community]
name=MySQL 8.4 LTS Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.4-community/el/8/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023

我们使用dnf repolist的时候列出的是所有enable的reportId 和对应的 name属性

[root@localhost yum.repos.d]# dnf repolist
repo id                                                repo name
appstream                                              Rocky Linux 9 - AppStream
baseos                                                 Rocky Linux 9 - BaseOS
docker-ce-stable                                       Docker CE Stable - x86_64
epel                                                   Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264                                    Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras                                                 Rocky Linux 9 - Extras
mysql-8.4-lts-community                                MySQL 8.4 LTS Community Server
mysql-connectors-community                             MySQL Connectors Community
mysql-tools-8.4-lts-community                          MySQL Tools 8.4 LTS Community

查询一个软件包相关文件路径

#yum使用的rmp安装,只是对依赖做自动管理,查找安装路径需要知道安装了哪些基础软件,然后查询了对应的文件路径

#查询安装了哪些软件
[root@localhost yum.repos.d]# rpm -qa|grep mysql
mysql84-community-release-el8-1.noarch
mysql-community-client-plugins-8.4.3-1.el8.x86_64
mysql-community-common-8.4.3-1.el8.x86_64
mysql-community-libs-8.4.3-1.el8.x86_64
mysql-community-client-8.4.3-1.el8.x86_64
mysql-community-icu-data-files-8.4.3-1.el8.x86_64
mysql-community-server-8.4.3-1.el8.x86_64


#查询指定软件的路径
[root@localhost yum.repos.d]# rpm -ql mysql-community-server-8.4.3-1.el8.x86_64
/etc/logrotate.d/mysql
/etc/my.cnf
/etc/my.cnf.d
/usr/bin/ibd2sdi
/usr/bin/innochecksum
/usr/bin/my_print_defaults
/usr/bin/myisam_ftdump

posted on 2024-12-03 18:30  zhangyukun  阅读(15)  评论(0编辑  收藏  举报

导航