Linux(Centos 7.6)命令详解:yum

1.命令作用

YUM(Yellowdog Updater Modified.)是一个在Fedora 和RedHat 以及SUSE 中的Shell 前端软件包管理器;基于RPM包管理,能够从指定的服务器自动下载RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum源配置: Linux(Centos 7.6)yum源配置

2.命令语法

Usage: yum [OPTION] [COMMAND] [package ...]

3.参数详解

COMMAND:

  • check,检查rpmdb中的问题,检查RPM数据库(rpmdb)的完整性和一致性
  • check-update,检查可用的软件包更新,即列出所有可更新的软件包
  • clean,删除缓存数据,clead选项如下:
    • headers,清除下载的软件包头文件(元数据)
    • packages,删除已下载的软件包文件(.rpm)
    • metadata,清理仓库元数据缓存
    • dbcache,清除YUM内部数据库缓存
    • plugins,清理插件生成的缓存数据
    • expire-cache,使过期的元数据缓存失效
    • rpmdb,重建RPM数据库索引
    • all,headers + packages + metadata + dbcache + plugins
  • deplist,列出包的依赖项
  • distribution-synchronization,将已安装的软件包更新到最新的可用版本
  • downgrade,降级软件包
  • erase,从系统中删除一个或多个包
  • fs,作用于主机的文件系统数据,主要用于删除最小主机的文档(docs)/语言包(languages),测试无效果
  • fssnapshot,创建文件系统快照,或列出/删除当前快照;依赖LVM分区
  • groups,显示或使用组信息,yum grouplist(显示组列表)、yum groupinstall(安装组)、yum groupremove(移除组)、yum groupinfo(显示组内包列表)
  • help,显示有用的使用信息
  • history,用于‌查看和管理事务历史记录‌的核心命令,支持回滚、重做、撤销等操作
  • info,显示一个包或一组包的详细信息,包括安装过的多个版本信息
  • install,在系统上安装一个或多个包
  • langavailable,检查可用语言包列表
  • langinfo,列出语言包或指定语言包信息
  • langinstall,为语言安装适当的语言包
  • langlist,已安装语言列表
  • langremove,删除已安装的语言包
  • list,列出yum源中的一个或一组包
  • load-transaction,从指定文件名加载已保存的事务
  • makecache,生成元数据缓存
  • provides,查找提供特定文件或命令的所属软件包
  • reinstall,重新安装软件包
  • remove,移除已经安装的指定软件包
  • repo-pkgs,将软件库(repo)视为一组软件包, 所有我们可用安装/移除他们所有;命令格式:yum repo-pkgs <repoid> <list|info|install|remove|upgrade|reinstall*|remove-or-*> [pkg(s)]
  • repolist,显示已配置的软件库
  • search,搜索给定字符串的包详细信息
  • shell,运行yum shell进入交互式管理软件包
  • swap,简单的方法来交换包,而不是使用shell;yum swap [remove|cmd] <pkg|arg(s)> [-- install|cmd] <pkg|arg(s)>
  • update,更新系统上的一个或多个软件包
  • update-minimal,工作方式类似于升级,但会到“最新”的软件包匹配,从而修复影响系统的问题
  • updateinfo,处理存储库更新信息
  • upgrade,更新软件包,但保持原内核版本
  • version,显示机器和/或可用版本的版本

OPTION:

  • -h, --help,显示此帮助消息并退出
  • -t, --tolerant,容忍错误,忽略致命性错误
  • -C, --cacheonly,强制使用本地/var/cache/yum目录下的缓存的元数据和软件包信息,不检查远程仓库更新
  • -c [config file], --config=[config file],自定义配置文件位置,默认/etc/yum.conf
  • -R [minutes], --randomwait=[minutes],最大命令等待时间,在发起网络请求前添加指定时间内的随机等待时间
  • -d [debug level], --debuglevel=[debug level],debug输出等级
    • 0-1,简单日志
    • 2,默认级别,基础操作日志
    • 3-4,显示详细步骤和依赖解析
    • 5-10,输出完整调试信息(包括内部通信细节)
  • --showduplicates,在repos、list/search命令中重复显示
  • -e [error level], --errorlevel=[error level],error输出等级
  • --rpmverbosity=[debug level name],指定debug输出等级名称,如emergency、error、warn、info、debug(测试无效果)
  • -q, --quiet,安静运行,-d 0-1日志级别
  • -v, --verbose,详细的操作,5-10日志级别
  • -y, --assumeyes,对所有问题都回答"是",可用避免交互输入y确认执行
  • --assumeno,对所有问题都回答"不"
  • --version,显示Yum版本并退出
  • --installroot=[path],设置安装根
  • --enablerepo=[repo],启用一个或多个存储库(允许使用通配符)
  • --disablerepo=[repo],禁用一个或多个存储库(允许使用通配符)
  • -x [package], --exclude=[package],通过名称或glob排除包
  • --disableexcludes=[repoid/all/main],为一个库或所有库,禁用不包括/etc/yum.conf中[main]的参数;repoid(base/updates);all禁用‌所有仓库‌的排除规则;main仅禁用/etc/yum.conf中[main]的全局排除规则
  • --disableincludes=[repoid/all/main],为一个库或所有库,禁用包括/etc/yum.conf中[main]的参数;repoid(base/updates);all禁用‌所有仓库‌的排除规则;main仅禁用/etc/yum.conf中[main]的全局排除规则
  • --obsoletes,在更新期间启用废弃处理;在更新或升级操作时,自动移除被新版本标记为废弃(obsolete)的旧软件包,并安装其替代包
  • --noplugins,禁用Yum插件
  • --nogpgcheck,关闭GPG签名检查
  • --disableplugin=[plugin],按名称禁用插件
  • --enableplugin=[plugin],按名称启用插件
  • --skip-broken,跳过具有深度问题的包(默认install/update遇到依赖冲突会终止操作,--skip-broken会允许部分完成操作,适合紧急修复场景)
  • --color=COLOR,控制是否使用颜色,always(强制启用彩色输出),never(完全禁用色彩显示),auto(默认,根据终端类型自动判断)
  • --releasever=RELEASEVER,在yum配置和repo文件中设置版本$releasever的值
  • --downloadonly,不要更新,只需下载
  • --downloaddir=DLDIR,指定用于存储包的备用目录
  • --setopt=SETOPTS,临时修改/etc/yum.conf或仓库文件中的选项,优先级高于配置文件
  • --bugfix,在更新中包括bug修复相关的包
  • --security,在更新中包含与安全相关的包,与--bugfix用法类似
  • --advisory=ADVS, --advisories=ADVS,在更新中包含修复给定建议所需的包,yum update --advisory=RHSA-2025:1234,其中RHSA-2025:1234是红帽安全公告编号
  • --bzs=BZS,在更新中包含修复给定BZ所需的包
  • --cves=CVES,在更新中包含修复给定CVE所需的包
  • --sec-severity=SEVS, --secseverity=SEVS,在更新中包含与严重性匹配的安全相关包

4.常用用例

4.1.COMMAND参数用例

4.1.1.查看系统可更新的软件包

[root@node2 ~]# yum check-update           # 查看所有可更新的rpm软件包
[root@node2 ~]# yum check-update less      # 查看指定rpm软件包是否可更新
[root@node2 ~]# yum search less            # 查看yum源中是否有less软件包
[root@node2 ~]# rpm -qa                    # 查看当前系统所有软件包已经安装的版本信息
[root@node2 ~]# rpm -qa less               # 查看当前系统指定软件包已经安装的版本信息

# yum check-update less 结果如下,结果可以看到yum源中less软件包的版本信息
# 软件包名称及系统架构                 可更新的新版本号                提供更新的软件仓库名称
less.x86_64                          458-10.el7_9                   updates

# rpm -qa less 结果如下,结果为当前系统less安装的版本
less-458-9.el7.x86_64

# 对比可更新的版本号(yum check-update less)和现在系统软件版本号(rpm -qa less)的区别

4.1.2.清空/生成yum元数据缓存

[root@node2 ~]# yum clean all                      # 清空yum所有元数据缓存
Loaded plugins: fastestmirror, langpacks
Cleaning repos: base extras updates
Cleaning up list of fastest mirrors
Other repos take up 112 M of disk space (use --verbose for details)
[root@node2 ~]# 
[root@node2 ~]# yum makecache                      # 生成yum元数据缓存
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                  | 3.6 kB  00:00:00     
extras                                                | 2.9 kB  00:00:00     
updates                                               | 2.9 kB  00:00:00     
(1/10): base/7/x86_64/group_gz                        | 153 kB  00:00:00     
... ...   
(10/10): updates/7/x86_64/primary_db                  |  27 MB  00:00:15     
Metadata Cache Created
[root@node2 ~]#

4.1.3.查看软件包的依赖关系

[root@node2 ~]# yum deplist less
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
package: less.x86_64 458-10.el7_9                  # 当前分析的软件包名称
  dependency: /bin/sh                              # 显示运行时的依赖,可分为文件依赖和库依赖,/bin/sh是文件依赖
   provider: bash.x86_64 4.2.46-35.el7_9           # 指出上面的文件依赖/库依赖由哪个包提供
  dependency: groff-base
   provider: groff-base.x86_64 1.22.2-8.el7
  dependency: libc.so.6(GLIBC_2.14)(64bit)         # 上面/bin/sh是文件依赖,这里libc.so.6 这是库依赖
... ...
[root@node2 ~]# 

4.1.4.安装/移除软件包

[root@node2 ~]# yum install httpd      # 执行后根据提示输入y进行安装软件包
[root@node2 ~]# yum reinstall httpd    # 执行后输入y进行软件重新安装(必须安装过才会有重新安装,如果没安装过,执行实际并不会安装软件)
[root@node2 ~]# yum erase httpd        # 执行后根据提示输入y移除软件包
[root@node2 ~]# yum remove httpd       # 执行后根据提示输入y移除软件包

[root@node2 ~]# rpm -qa httpd          # 安装后可以该语句查看

4.1.5.更新可用的新版本软件包

[root@node2 ~]# rpm -qa less                # 查看当前安装的版本
less-458-9.el7.x86_64
[root@node2 ~]# yum check-update less       # 查看yum中是否有可更新的版本
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com

less.x86_64                           458-10.el7_9                               updates
[root@node2 ~]# yum distribution-synchronization less    # 更新可用的新版本软件包
... ...
Is this ok [y/d/N]: y
... ...
Complete!
[root@node2 ~]# rpm -qa less                             # 更新升级后的软件版本
less-458-10.el7_9.x86_64
[root@node2 ~]# 

[root@node2 ~]# yum update less                          # 或者使用update更新软件包,可能升级到新内核
[root@node2 ~]# yum upgrade less                         # 或者使用upgrade更新软件包,保持原内核版本

4.1.6. 降级安装软件包

[root@node2 ~]# yum downgrade less
... ...
Is this ok [y/d/N]: y                 # 如果添加-y参数则不需要交互输入y
... ...
Removed:
  less.x86_64 0:458-10.el7_9          # 根据提示会移除新版本                                                                                                                     

Installed:
  less.x86_64 0:458-9.el7             # 安装旧版本                                                                                          

Complete!
[root@node2 ~]# 

 4.1.7.查看管理历史记录

# yum history后可使用: list, info, summary, repeat, redo, undo, new, rollback, addon, addon-info, stats, statistics, sync, synchronizepkg, pkgs, pkg-list, pkgs-list, package, package-list, packages, packages-list, pkg-info, pkgs-info, package-info, packages-info.
# yum操作记录在/var/log/yum.log文件中

[root@node2 ~]# yum history                        # 查看最进20条事务记录
[root@node2 ~]# yum history list                   # 查看最进20条事务记录
[root@node2 ~]# yum history list all               # 查看全部历史事务记录
[root@node2 ~]# yum history info                   # 查看最后一个事务ID的详细信息
[root@node2 ~]# yum history info 21                # 查看指定事务ID的详细信息
[root@node2 ~]# yum history package-info httpd     # 查看指定软件包的历史操作记录
[root@node2 ~]# yum history undo 21                # 撤销指定事务(恢复到操作前的状态)
[root@node2 ~]# yum history redo 21                # 重新执行指定事务
[root@node2 ~]# yum history rollback 21            # 回滚到指定事务之前的状态
[root@node2 ~]# yum history new                    # 清空历史记录并新建数据库(不影响已安装软件包)
[root@node2 ~]# yum history stats                  # 显示操作统计信息(如安装/更新次数)

# 软件包操作意外失败的内容会记录到以下文件
[root@node2 ~]# ll /tmp/yum_save_tx.2025-06-12.15-16.zfNFpK.yumtx
-rw------- 1 root root 553 Jun 12 15:16 /tmp/yum_save_tx.2025-06-12.15-16.zfNFpK.yumtx
[root@node2 ~]# 
# 可通过yum load-transaction /tmp/yum_save*.zfNFpK.yumtx将文件记录加载到事务内,进行事务操作
[root@node2 ~]# yum load-transaction /tmp/yum_save*.zfNFpK.yumtx

 4.1.8.语言包的安装查看

[root@node2 ~]# yum langavailable           # 查看语言包可用列表
[root@node2 ~]# yum langinfo Zulu           # 查看指定语言包信息
[root@node2 ~]# yum langinstall Zulu        # 安装指定语言包
[root@node2 ~]# yum langlist Zulu           # 查看已安装的语言包列表
[root@node2 ~]# yum langremove Zulu         # 移除指定语言包

4.1.9.查看文件/命令的所属包

[root@node2 ~]# yum provides "*/ifconfig"      # 查找包含该文件/命令的所属软件包
[root@node2 ~]# yum provides lspci             # 查找命令所属包‌
[root@node2 ~]# yum provides /usr/bin/shasum   # 查找文件所属包

 4.1.10.安装整库或指定库中的指定软件包

# 语法: yum repo-pkgs <repoid> <list|info|install|remove|upgrade|reinstall*|remove-or-*> [pkg(s)]
[root@node2 ~]# yum repolist                        # 查看已配置的软件库
[root@node2 ~]# yum repo-pkgs updates               # 安装配置updates软件库下的所有软件包
[root@node2 ~]# yum repo-pkgs base install httpd    # 安装配置base软件库下的httpd软件包

 4.1.11.交互式软件包管理

[root@node2 ~]# yum shell                 # 进入交互式包管理界面
Loaded plugins: fastestmirror, langpacks
> update less
> install httpd
> run                                     # 提交执行以上的命令

4.1.12.替换软件包

语法: yum swap [remove|cmd] <pkg|arg(s)> [-- install|cmd] <pkg|arg(s)>
[root@node2 ~]# yum swap httpd less      # 卸载httpd并安装nginx

4.2.OPTION参数用例

4.2.1.指定本地/远程元数据缓存

[root@node2 ~]# yum -C list installed  # 仅从本地缓存列出已安装的软件包
[root@node2 ~]# yum -C list installed  # 从远程仓库和本地缓存列出已安装的软件包
[root@node2 ~]# yum -C install httpd   # 没有yum makecache,指定-C安装没有本地元数据缓存,执行报错
[root@node2 ~]# yum install httpd      # 没有yum makecache,本地没有元数据缓存,会读取远程的元数据,执行可成功

4.2.2.指定配置文件执行

[root@node2 ~]# yum -c /etc/yum.conf install httpd  # 可自定义yum配置文件

4.2.3.指定随机等待时间

[root@node2 ~]# yum -R 5 install httpd
Loaded plugins: fastestmirror, langpacks    # 输出该行后会等待一个指定时间内的随机时间后继续执行
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
... ...
[root@node2 ~]# 

4.2.4.重复显示

yum search --showduplicates httpd
yum search httpd

4.2.5.自动输入y或n确认是否安装

[root@node2 ~]# yum --assumeyes install httpd  # 等同yum -y install httpd,不再需要交互输入y确认执行
[root@node2 ~]# yum --assumeno install httpd   # 执行在交互式的地方直接输入n退出,不会执行安装

4.2.6.启用/停用某一/多个库或者排除包执行命令

[root@node2 ~]# yum --enablerepo=updates install httpd      # 执行成功
[root@node2 ~]# yum --disablerepo=updates install httpd     # 执行失败,httpd在updates库里,禁用updates后,安装httpd就会报错
[root@node2 ~]# yum -x httpd install httpd                  # 排除httpd包安装httpd包就会报错
[root@node2 ~]# yum -x kernel* update                       # 更新时排除内核相关

4.2.7.禁用包括/不包括main的参数执行命令

yum --disableexcludes=updates install httpd  # 禁用不包括/etc/yum.conf中[main]的参数
yum --disableincludes=updates install httpd  # 禁用包括/etc/yum.conf中[main]的参数

4.2.8.启用废弃旧软件包处理

[root@node2 ~]# yum --obsoletes update
[root@node2 ~]# yum --obsoletes update httpd

4.2.9.禁用插件/关闭GPG签名检查

[root@node2 ~]# yum install httpd                 # 第一行会打印插件信息
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
... ...
[root@node2 ~]# 
[root@node2 ~]# yum --noplugins install httpd     # 禁用插件后不会再打印插件信息了
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-99.el7.centos.1 will be installed
--> Finished Dependency Resolution
... ...
[root@node2 ~]# 
[root@node2 ~]# yum --nogpgcheck install httpd    # 关闭GPG签名检查
... ...
[root@node2 ~]# yum --disableplugin=fastestmirror install httpd # 禁用fastestmirror插件
Loaded plugins: langpacks                                       # 插件不显示fastestmirror
... ... 

4.2.10.跳过依赖问题继续操作

[root@node2 ~]# yum remove httpd-tools --skip-broken
[root@node2 ~]# yum install glusterfs-client-xlators --skip-broken
[root@node2 ~]# yum update --skip-broken

4.2.11.指定系统版本安装

[root@node2 ~]# yum --releasever=7 install httpd
[root@node2 ~]# yum --releasever=8 install httpd

4.2.12.下载yum源中的rpm包

# --downloadonly 参数只下载不安装
# --downloaddir 指定下载目录
# 如果已经安装可使用:yum reinstall --downloadonly --downloaddir=/opt httpd
[root@node2 ~]# yum install --downloadonly --downloaddir=/opt httpd
... ...
[root@node2 ~]# ll /opt/httpd-2.4.6-99.el7.centos.1.x86_64.rpm 
-rw-r--r-- 1 root root 2849200 May 30  2023 /opt/httpd-2.4.6-99.el7.centos.1.x86_64.rpm
[root@node2 ~]# 

4.2.13.临时修改参数

# 临时修改/etc/yum.conf或仓库文件中的选项,优先级高于配置文件
[root@node2 ~]# yum --setopt=keepcache=1 install httpd 

# 临时修改/etc/yum.conf指定库epel中的参数
yum --setopt=epel.gpgcheck=0 update

4.2.14. 安装时选择包含关键修复的版本安装

[root@node2 ~]# yum update --bugfix          # 仅处理标记为修复特定错误的RPM包
[root@node2 ~]# yum update --bugfix httpd
[root@node2 ~]# yum install --bugfix httpd   # 安装软件时优先选择包含关键修复的版本
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆是浪个

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值