yum命令

yum 命令 #

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

语法 #

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

常用命令 #

命令 描述
install 安装包
update 更新包
check-update 检查可用更新
upgrade 升级所有包
remove 或 erase 移除包
list 列出包
search 搜索包
info 显示包信息
provides 或 whatprovides 查找提供特定文件的包
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 all和yum makecache可以保持仓库元数据的最新状态

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

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

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

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

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

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

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