插件窝 干货文章 Linux之软件包管理器yum详解

Linux之软件包管理器yum详解

软件包 yum 仓库 package 957    来源:    2025-04-02

Linux软件包管理器yum详解

一、yum简介

yum (Yellowdog Updater Modified) 是Red Hat系列Linux发行版(RHEL, CentOS, Fedora等)中的高级软件包管理工具,它能够: - 自动解决软件包依赖关系 - 从配置的软件仓库(repository)中获取软件包 - 执行安装、更新、删除等操作

二、yum基本工作原理

  1. 仓库(Repository):包含软件包及其元数据的远程或本地存储位置
  2. 元数据(Metadata):包含软件包依赖关系、文件列表等信息
  3. 缓存机制:yum会缓存仓库元数据以提高性能

三、yum配置文件

主要配置文件位于/etc/yum.conf/etc/yum.repos.d/目录下:

/etc/yum.conf          # 主配置文件
/etc/yum.repos.d/      # 存放各个仓库的配置文件(.repo文件)

四、常用yum命令

1. 软件包查询

yum list [package]      # 列出所有/指定软件包
yum search keyword      # 搜索包含关键字的软件包
yum info package        # 显示软件包详细信息
yum provides */file     # 查找提供特定文件的软件包
yum deplist package     # 显示软件包的依赖关系

2. 软件包安装与更新

yum install package     # 安装软件包
yum update              # 更新所有可更新的软件包
yum update package      # 更新指定软件包
yum check-update        # 检查可用的更新
yum upgrade             # 升级系统(相当于yum update)
yum localinstall rpmfile # 安装本地rpm文件并解决依赖

3. 软件包移除

yum remove package      # 移除软件包(保留配置文件)
yum erase package       # 完全移除软件包(包括配置文件)

4. 仓库管理

yum repolist            # 列出已启用的仓库
yum repolist all        # 列出所有仓库(包括禁用的)
yum-config-manager --add-repo=URL # 添加新仓库
yum-config-manager --disable repo # 禁用仓库
yum-config-manager --enable repo  # 启用仓库

5. 缓存管理

yum clean all           # 清除所有缓存
yum makecache           # 重建缓存
yum clean packages      # 清除软件包缓存
yum clean metadata      # 清除元数据缓存

6. 组操作

yum grouplist           # 列出软件包组
yum groupinfo "Group Name" # 查看组信息
yum groupinstall "Group Name" # 安装组
yum groupremove "Group Name" # 移除组
yum groupupdate "Group Name" # 更新组

五、yum高级用法

1. 历史记录查询

yum history             # 查看yum操作历史
yum history info ID     # 查看特定操作的详细信息
yum history undo ID     # 撤销特定操作
yum history redo ID     # 重做特定操作

2. 插件使用

yum-plugin-versionlock  # 锁定软件包版本
yum-plugin-priorities   # 设置仓库优先级
yum-plugin-fastestmirror # 自动选择最快镜像

3. 版本锁定

yum versionlock add package # 锁定软件包版本
yum versionlock list       # 列出锁定的软件包
yum versionlock delete package # 解除锁定

4. 下载但不安装

yum install --downloadonly --downloaddir=/path package

5. 排除特定软件包

yum --exclude=package* update

六、常见问题解决

  1. 依赖问题

    yum deplist package   # 查看依赖关系
    yum clean all         # 清除缓存后重试
    
  2. 冲突问题

    yum remove conflicting-package # 移除冲突包
    
  3. 仓库问题

    yum-config-manager --disable problem-repo # 禁用问题仓库
    
  4. 空间不足

    yum clean all         # 清理缓存
    

七、yum与dnf的关系

在较新的RHEL/CentOS版本(8+)中,yum已被dnf(Dandified YUM)取代,但yum命令仍然作为dnf的符号链接存在,基本用法相同。

八、最佳实践

  1. 定期更新系统:yum update
  2. 使用官方或可信的仓库
  3. 在生产环境中测试更新
  4. 考虑使用yum-cron进行自动更新
  5. 对于关键系统,考虑使用yum-plugin-versionlock锁定关键软件包版本

通过掌握yum的使用,你可以高效地管理Linux系统中的软件包,确保系统的稳定性和安全性。