一:概述
- 是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
- 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
二:Yum 基本命令
-
更新系统
yum update # 更新所有已安装的包 yum upgrade # 与 update 类似,但会删除过时的包 -
安装软件包
yum install package_name # 安装指定软件包 yum install package1 package2 # 同时安装多个软件包 yum localinstall package.rpm # 安装本地 RPM 文件并解决依赖 -
移除软件包
yum remove package_name # 移除指定软件包 yum autoremove # 移除不再需要的依赖包 -
搜索软件包
yum search keyword # 搜索包含关键字的软件包 yum list # 列出所有可用软件包 yum list installed # 列出已安装的软件包 yum list updates # 列出可更新的软件包 yum list available # 列出仓库中可用但未安装的软件包 yum info package_name # 显示软件包的详细信息 -
清理缓存
yum clean all # 清理所有缓存数据 yum clean packages # 清理缓存的软件包 yum clean metadata # 清理元数据 -
仓库管理
yum repolist # 列出已配置的仓库 yum repolist all # 列出所有仓库(包括禁用) yum-config-manager --add-repo repository_url # 添加新仓库 yum-config-manager --enable repository_id # 启用仓库 yum-config-manager --disable repository_id # 禁用仓库 -
仓库管理
yum repolist # 列出已配置的仓库 yum repolist all # 列出所有仓库(包括禁用) yum-config-manager --add-repo repository_url # 添加新仓库 yum-config-manager --enable repository_id # 启用仓库 yum-config-manager --disable repository_id # 禁用仓库 -
组操作
yum grouplist # 列出软件包组 yum groupinstall "Group Name" # 安装软件包组 yum groupremove "Group Name" # 移除软件包组 yum groupinfo "Group Name" # 显示软件包组信息 -
其他实用命令
yum provides */command_name # 查找提供特定命令的软件包 yum history # 查看 YUM 操作历史 yum history undo ID # 撤销特定历史操作 yum check-update # 检查可用更新但不执行 yum deplist package_name # 列出软件包的依赖关系
三:Yum仓的网络架构
-
公共网络仓库(红区)
- 位置:互联网
- 示例源:
-
官方基础源: baseurl=mirror.centos.org/centos/$rel…
-
第三方源(如Nginx、Docker等)
-
- 特点:
-
需要互联网连接
-
可能存在访问速度问题
-
适合个人开发环境使用
-
-
内网镜像仓库(绿区)
- 位置:企业内网服务器
- 配置示例:
[local-cdrom] name=Local CD-ROM baseurl=file:///mnt/cdrom/ enabled=1 gpgcheck=0 - 特点:
-
通过reposync工具定期同步公网源
-
可添加企业内部私有RPM包
-
需要维护更新(可配置cron定时同步)
-
推荐使用Nginx或Apache提供HTTP服务
-
-
本地仓库(黄区)
- 位置:服务器本地
- 配置示例:
local-cdrom] name=Local CD-ROM baseurl=file:///mnt/cdrom/ enabled=1 gpgcheck=0 - 特点:
-
无网络环境
-
系统安装基础包
-
可挂载ISO文件:mount -o loop CentOS-xxx.iso /mnt/cdrom
-
四:Yum 建仓
1. 网络仓
本文通过阿里云的源来构建网络仓,网络仓的选型可以自定义
-
备份系统自带的 repo 文件
# 进入yum配置目录 [root@hadoop101 ~]# cd /etc/yum.repos.d # 备份 [root@hadoop101 yum.repos.d]# mv CentOS-Base.repo CentOs-Base.repo.bak -
获取 aliyun repo 源
# 进入yum配置目录 [root@hadoop101 ~]# cd /etc/yum.repos.d # 下载获取 CentOS-aliyun.repo [root@hadoop101 yum.repos.d]# curl -o CentOS-aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo -
验证是否下载成功
2. 本地仓
-
创建挂载点
[root@hadoop101 ~]# mkdir -p /mnt/cdrom -
挂载光盘
[root@hadoop101 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom -
拷贝 rpm 包
[root@hadoop101 ~]# cp -r /mnt/cdrom/Packages /opt/software/ -
创建 rpm 软件包索引
[root@hadoop101 software]# cd /opt/software/Packages/ [root@hadoop101 Packages]# createrepo ./ -
创建一个 local 本地的 repo 文件
[root@hadoop101 yum.repos.d]# vim centos-local.repo [centos-local] name=centos-local baseurl=file:///opt/software/Packages gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 -
测试
[root@hadoop101 ~]# yum install -y vim [root@hadoop101 ~]# yum install -y tree
3. 内网仓
-
安装 httpd 服务
[root@hadoop101 ~]# yum install -y httpd -
修改 httpd 端口
[root@hadoop101 ~]# vim /etc/httpd/conf/httpd.conf Listen 82 -
重启服务
[root@hadoop101 ~]# systemctl restart httpd -
进入 html 目录
[root@hadoop101 ~]# cd /var/www/html/ -
拷贝 rpm 索引包
[root@hadoop101 html]# cp -r /mnt/cdrom/Packages ./ -
建立rpm包索引
[root@hadoop101 html]# cd /var/www/html/Packages/ [root@hadoop101 Packages]# createrepo ./ -
创建内网 repo 文件
[root@hadoop101 Packages]# cd /etc/yum.repos.d/ [root@hadoop101 yum.repos.d]# touch hadoop101.repo -
编辑 repo 文件
baseurl=http://192.168.2.101:82/Packages,这里的ip为配置内网仓的虚拟机外网ip
[root@hadoop101 yum.repos.d]# vim hadoop101.repo [hadoop101] name=hadoop101 baseurl=http://192.168.2.101:82/Packages gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 -
清理和建立缓存
[root@hadoop101 yum.repos.d]# yum clean all [root@hadoop101 yum.repos.d]# yum makecache
五:总结
本文系统性地介绍了 Linux 下 YUM 包管理工具的核心知识体系:
-
基础操作:涵盖软件安装/更新/搜索等高频命令,提供即查即用的命令速查表
-
架构解析:通过拓扑图清晰展示公共网络仓、内网镜像仓、本地仓三类架构的访问路径与适用场景
-
实战搭建:分步骤详解三种仓库的搭建方法,包括网络仓的同步策略、本地仓的 ISO 挂载技巧、企业内网仓的安全配置要点
全文贯穿生产环境最佳实践,既适合初学者快速上手,也能为运维人员提供架构设计参考。后续可扩展 Ansible 自动化部署、DNF 迁移方案等进阶内容。