yum命令

yum 命令 #

yum(Yellowdog Updater, Modified)是 CentOS、RHEL(Red Hat Enterprise Linux)和早期 Fedora 版本中的包管理工具,用于安装、更新、移除和管理 RPM 软件包,并自动处理依赖关系。

语法 #

yum [选项] 命令 [包...]

常用命令 #

命令 描述
install 安装包
update 更新包
check-update 检查可用更新
upgrade 升级所有包
removeerase 移除包
list 列出包
search 搜索包
info 显示包信息
provideswhatprovides 查找提供特定文件的包
clean 清理缓存
makecache 下载并缓存元数据
groups 显示、安装或移除包组
repolist 列出配置的仓库
history 查看或操作事务历史
reinstall 重新安装包
downgrade 降级包
localinstall 安装本地 RPM 文件
deplist 列出包的依赖关系
check 检查包依赖问题

常用选项 #

选项 描述
-y, --assumeyes 自动回答是,不提示确认
-q, --quiet 静默输出
-v, --verbose 详细输出
--enablerepo=仓库 启用指定的仓库
--disablerepo=仓库 禁用指定的仓库
--exclude=包 排除指定的包
--disableexcludes 禁用排除
--nogpgcheck 禁用 GPG 签名检查
--downloadonly 仅下载不安装
--downloaddir=目录 指定下载目录
--noplugins 禁用所有插件
--skip-broken 跳过有问题的包
--showduplicates 显示所有版本的包
--setopt=选项=值 设置任意配置选项
--security 包含安全更新
--bugfix 包含 bug 修复更新
--cacheonly 仅使用缓存,不下载
--refresh 刷新过期的元数据

常见用法 #

1. 安装包 #

yum install package_name

例如:

yum install httpd

2. 安装多个包 #

yum install package1 package2 package3

3. 更新特定包 #

yum update package_name

4. 更新所有包 #

yum update

5. 检查可用更新 #

yum check-update

6. 移除包 #

yum remove package_name

7. 搜索包 #

yum search keyword

例如:

yum search "web server"

8. 显示包信息 #

yum info package_name

9. 列出所有已安装的包 #

yum list installed

10. 列出所有可用的包 #

yum list available

11. 列出可更新的包 #

yum list updates

12. 查找提供特定文件的包 #

yum provides /path/to/file

例如:

yum provides /usr/bin/htpasswd

13. 清理缓存 #

yum clean all

这将清理所有缓存的包和元数据。

14. 重建缓存 #

yum makecache

15. 列出包组 #

yum groups list

16. 安装包组 #

yum groups install "Group Name"

例如:

yum groups install "Development Tools"

17. 列出已启用的仓库 #

yum repolist

18. 列出所有仓库(包括禁用的) #

yum repolist all

19. 查看事务历史 #

yum history

20. 重新安装包 #

yum reinstall package_name

高级用法 #

1. 从特定仓库安装包 #

yum --enablerepo=epel install package_name

这将从 EPEL 仓库安装包。

2. 排除特定包更新 #

yum --exclude=package_name update

3. 仅下载包不安装 #

yum install --downloadonly --downloaddir=/path/to/directory package_name

4. 安装本地 RPM 文件并解决依赖 #

yum localinstall package.rpm

5. 降级包到早期版本 #

yum downgrade package_name

6. 列出包的依赖关系 #

yum deplist package_name

7. 查看特定事务的详细信息 #

yum history info transaction_id

8. 撤销特定事务 #

yum history undo transaction_id

9. 重做特定事务 #

yum history redo transaction_id

10. 安装特定版本的包 #

yum install package_name-version

例如:

yum install httpd-2.4.6-97.el7

11. 显示包的所有可用版本 #

yum --showduplicates list package_name

12. 只安装安全更新 #

yum --security update

13. 查看包的更新历史 #

yum updateinfo list

14. 查看包组内容 #

yum groupinfo "Group Name"

15. 使用插件 #

# 使用fastestmirror插件
yum --enableplugin=fastestmirror install package_name

# 禁用插件
yum --disableplugin=plugin_name install package_name

配置文件 #

yum 的主要配置文件和目录:

  • /etc/yum.conf:主配置文件
  • /etc/yum.repos.d/:仓库配置文件目录
  • /var/cache/yum/:缓存目录
  • /var/log/yum.log:日志文件

与 DNF 的关系 #

dnf(Dandified YUM)是yum的下一代版本,在 Fedora 22 及更高版本中默认使用,并在 RHEL 8/CentOS 8 中取代了yum。DNF 解决了 YUM 的一些性能和内存使用问题,但保持了类似的命令行接口。在 RHEL 8/CentOS 8 中,yum命令实际上是指向dnf的符号链接。

提示 #

  • 使用yum-utils包中的工具可以扩展 yum 的功能

    • yumdownloader:下载但不安装 RPM 包
    • repoquery:查询包和仓库信息
    • package-cleanup:清理包问题
    • yum-config-manager:管理 yum 配置
    • debuginfo-install:安装调试信息包
  • 定期运行yum clean allyum makecache可以保持仓库元数据的最新状态

  • 使用yum history可以跟踪系统更改并在需要时回滚

  • 在服务器环境中,考虑使用yum-cron自动应用安全更新

  • 使用--skip-broken选项可以在有问题的包存在时继续安装其他包

  • 创建/etc/yum.repos.d/中的自定义.repo 文件可以添加额外的软件仓库

  • 使用subscription-manager可以管理 RHEL 系统的订阅

  • 在生产环境中执行重大更改前,先在测试系统上验证

  • 使用yum-plugin-versionlock可以锁定特定包的版本,防止意外更新