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) 编辑 收藏 举报