文章目录
CentOS-7—— 配置yum源(网络yum源 + 本地yum源)YUM 简介1. YUM 的作用2. YUM 的核心定义核心功能类比
3. YUM 的特点4. 基本命令示例
一、配置 网络 YUM 仓库(使用官方或第三方在线源)1. 备份 CentOS-Base.repo 文件2. 下载网络 YUM 源配置文件(二选一)方法 1:使用 wget 下载方法 2:使用 curl 下载(若无 wget)
3. 使用yum makecache 生成缓存4. 安装测试
二、配置本地 YUM 仓库(使用本地 ISO 或光盘作为软件源)1. 创建空目录挂载点2. 挂载镜像2. 切换到 /etc/yum.repos.d/ 目录3. 编辑 CentOS-Media.repo 文件4. 把 CentOS-Base.repo 文件改名5. 安装软件包测试
其他补充wget 和curl为什么要使用 yum makecache 生成缓存
CentOS-7—— 配置yum源(网络yum源 + 本地yum源)
仅供参考
YUM 简介
YUM(全称 Yellowdog Updater, Modified)是 Linux 系统中用于管理 RPM 软件包的工具,主要用于基于 RPM 的发行版(如 CentOS、RHEL、Fedora 等)。它能够自动解决软件包的依赖关系,并从指定的软件仓库(Repository)下载和安装软件。类似于手机的应用商店下载软件。
1. YUM 的作用
安装软件:从配置的软件仓库(Repository)下载并安装 RPM 包。更新系统:升级已安装的软件包到最新版本。卸载软件:移除不再需要的软件包。依赖管理:自动解决软件包之间的依赖关系(如安装 A 需要先安装 B 和 C)。查询软件:搜索、查看软件包信息,列出已安装的包等。
2. YUM 的核心定义
全称:Yellowdog Updater, Modified(源自 Yellow Dog Linux 的包管理工具改进版)。作用:专为 RPM 包管理系统 设计,用于自动化解决依赖关系、下载和安装软件。适用系统:CentOS、RHEL、Fedora 等基于 RPM 的发行版。
核心功能类比
功能YUM 实现方式类比手机应用商店软件安装yum install <包名>点击“安装”按钮依赖自动解决自动下载所需依赖包自动安装运行应用所需的组件软件源管理从 /etc/yum.repos.d/ 配置的仓库获取软件从应用商店官方或第三方源下载更新升级yum update应用商店的“一键更新所有”功能
3. YUM 的特点
✅ 自动化依赖处理:无需手动安装依赖包。 ✅ 多仓库支持:可配置多个软件源(如官方仓库、EPEL 仓库等)。 ✅ 事务机制:支持回滚操作(yum history undo)。 ✅ 缓存管理:下载的软件包会缓存,加快后续安装速度。
4. 基本命令示例
功能命令安装软件yum install 包名更新软件yum update 包名(不加包名则更新所有)卸载软件yum remove 包名搜索软件yum search 关键词查看信息yum info 包名列出已安装yum list installed清理缓存yum clean all
一、配置 网络 YUM 仓库(使用官方或第三方在线源)
1. 备份 CentOS-Base.repo 文件
CentOS-Base.repo 是网络YUM文件,备份现有的yum源。防止配置出错时无法恢复默认设置。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@localhost ~]#
2. 下载网络 YUM 源配置文件(二选一)
这里下载阿里云的 yum 源到 CentOS-Base.repo 文件。可以加速软件包的下载和更新。
备注:如果是最小安装(命令行界面),使用 curl 下载就可以了,因为最小安装可能没有 wget 命令。
像出现这种情况,command not found:找不到命令。只能选择使用 curl 命令下载。
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
-bash: wget: command not found
[root@localhost ~]#
方法 1:使用 wget 下载
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
结果如下:
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
--2025-04-04 11:26:06-- https://mirrors.aliyun.com/repo/Centos-7.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 121.31.228.20, 139.227.230.74, 60.213.135.86, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|121.31.228.20|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2523 (2.5K) [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base.repo’
100%[===================================================>] 2,523 --.-K/s in 0s
2025-04-04 11:26:06 (931 MB/s) - ‘/etc/yum.repos.d/CentOS-Base.repo’ saved [2523/2523]
[root@localhost ~]#
参数说明:
wget
功能:命令行下载工具,支持 HTTP/HTTPS/FTP 协议。用途:从网络下载文件到本地系统。 -O(大写字母O)
功能:指定下载文件的保存路径和名称。注意:若目标路径已存在同名文件,会直接覆盖原文件(无确认提示)。 /etc/yum.repos.d/CentOS-Base.repo
路径说明:CentOS 系统默认存放 YUM 源配置文件的目录。文件作用:该文件定义了软件包的下载仓库地址(替换后可使用阿里云镜像加速)。 https://mirrors.aliyun.com/repo/Centos-7.repo
来源:阿里云提供的 CentOS 7 YUM 源配置文件地址。内容:包含软件仓库的镜像链接、GPG 密钥等配置信息。
方法 2:使用 curl 下载(若无 wget)
如果是最小安装的命令行界面,可能是没有wget命令的,可以用 curl -o 命令代替。
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
结果如下:
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 9252 0 --:--:-- --:--:-- --:--:-- 9275
[root@localhost ~]#
参数说明:
curl
功能:命令行数据传输工具,支持 HTTP/HTTPS/FTP/SCP 等多种协议。对比 wget:curl 更侧重协议支持与数据传输灵活性,wget 更适合简单下载。 -o(小写字母o)
功能:指定下载文件的保存路径和名称。注意:若路径已存在同名文件,会直接静默覆盖(无警告提示)。 /etc/yum.repos.d/CentOS-Base.repo
路径说明:CentOS 系统存放 YUM 源配置的标准目录。文件作用:替换后,YUM 包管理器会从阿里云镜像站获取软件包。 https://mirrors.aliyun.com/repo/Centos-7.repo
来源:阿里云官方维护的 CentOS 7 软件仓库配置。内容:包含 base、updates、extras 等仓库的镜像地址和 GPG 校验密钥。
3. 使用yum makecache 生成缓存
yum makecache
[root@localhost ~]# yum makecache
Loaded plugins: fastestmirror
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
Metadata Cache Created
[root@localhost ~]#
4. 安装测试
这里安装 vim、net-tools、wget 相关的软件包
vim:文本编辑器。net-tools:包含 ifconfig 等传统网络工具(最小安装系统中可能未安装)。wget:文件下载工具。
yum install -y vim net-tools wget
-y 表示自动确认安装,避免交互式提问。
[root@localhost ~]# yum install -y vim net-tools wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Package 2:vim-enhanced-7.4.629-8.el7_9.x86_64 already installed and latest version
Package net-tools-2.0-0.25.20131004git.el7.x86_64 already installed and latest version
Package wget-1.14-18.el7_6.1.x86_64 already installed and latest version
Nothing to do
[root@localhost ~]#
二、配置本地 YUM 仓库(使用本地 ISO 或光盘作为软件源)
在做本地YUM之前,先确保虚拟机的可移动设备这里有没有连接上CD/DVD(重启一次系统会自动连接上)。(右键虚拟机的标签页)
1. 创建空目录挂载点
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]#
2. 挂载镜像
把镜像设备挂载到空目录
/dev/cdrom 是 /dev/sr0 的符号链接(软链接),作用类似于 Windows 的快捷方式。 实际设备:/dev/sr0 代表系统的第一个光驱(物理光驱或虚拟机虚拟光驱)。
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.5G 16G 9% /
/dev/sda1 1014M 138M 877M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /mnt/cdrom # 这个就是挂载上去的镜像
[root@localhost ~]#
/dev/sr0 是光驱设备,不是镜像文件,但可用于访问镜像内容(如挂载 ISO)。镜像文件(.iso) 是数据的静态存储,需通过 /dev/sr0 或 loop 设备挂载后使用。物理光驱、虚拟光驱、ISO 文件三者的关系: ISO 文件 → (挂载到)→ /dev/sr0 → (访问数据需)→ 挂载到目录(如 /mnt)。
2. 切换到 /etc/yum.repos.d/ 目录
找到 CentOS-Media.repo 文件,这个是本地YUM文件
在 CentOS/RHEL 系统中,/etc/yum.repos.d/ 是一个 关键目录,用于存储 YUM(或 DNF)包管理器的 软件仓库配置文件(.repo 文件)
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-x86_64-kernel.repo
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]#
3. 编辑 CentOS-Media.repo 文件
CentOS-Media.repo 是 CentOS/RHEL 系统中用于配置 本地 YUM 仓库 的配置文件。 当系统无法连接互联网时,可通过此文件指定本地存储的软件包(如光盘、ISO 镜像或本地目录)作为软件安装源。
[root@localhost yum.repos.d]# vi /etc/yum.repos.d/CentOS-Media.repo
[root@localhost yum.repos.d]# cat /etc/yum.repos.d/CentOS-Media.repo
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-7. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c7-media [command]
[c7-media] # 仓库ID(必须唯一)
name=CentOS-$releasever - Media # 仓库描述信息
baseurl=file:///mnt/cdrom # 镜像的挂载目录路径
# file:///media/cdrom/ # 备用路径(注释掉或者删除掉)
# file:///media/cdrecorder/ # 备用路径(注释掉或者删除掉)
gpgcheck=0 # 是否校验软件包签名(0=禁用,1=启用。本地源可设为0)
enabled=1 # 是否启用该仓库(1=启用,0=禁用)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 # GPG密钥路径(若gpgcheck=1时需提供)
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]#
4. 把 CentOS-Base.repo 文件改名
把 CentOS-Base.repo 名改了。不让系统识别到 CentOS-Base.repo 文件,不让其生效,直接去找其他的yum源文件。
YUM 默认只读取 /etc/yum.repos.d/ 目录下 .repo 后缀的文件。重命名后(如改为 .repo.bak),系统会忽略该文件,从而强制跳过网络源。转向其他可用源:YUM 会自动检测其他启用的仓库(如本地源 CentOS-Media.repo 或第三方源)。
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-x86_64-kernel.repo
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak # 改名(加上.bak明确是备份文件)
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# ls
CentOS-Base.repo.bak CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-x86_64-kernel.repo
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]#
5. 安装软件包测试
这里安装 vim net-tools wget 三个软件包。
[root@localhost yum.repos.d]# cd
[root@localhost ~]#
[root@localhost ~]# yum install -y vim net-tools wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Package 2:vim-enhanced-7.4.629-7.el7.x86_64 already installed and latest version
Package net-tools-2.0-0.25.20131004git.el7.x86_64 already installed and latest version
Package wget-1.14-18.el7_6.1.x86_64 already installed and latest version
Nothing to do
[root@localhost ~]#
其他补充
wget 和curl
wget 和 curl 虽然都可以用于下载文件,但在 Linux 系统中有着不同的设计目标和适用场景。以下是它们的核心区别:
1. 核心定位不同
特性wgetcurl设计目标专为文件下载优化通用数据传输工具(支持上传/下载)协议支持HTTP/HTTPS/FTP支持 20+ 协议(如 HTTP, FTP, SCP, SMTP 等)交互性纯下载工具可与 API 交互(如 RESTful 接口)
2. 下载行为对比
场景wget 的表现curl 的表现简单下载文件✅ 更简单直接(适合脚本化)✅ 也能完成,但参数略复杂断点续传✅ 原生支持(-c 参数)❌ 需手动处理递归下载✅ 支持(-r 下载整个目录)❌ 不支持输出到终端❌ 默认保存到文件✅ 默认输出到终端(需用 -o 保存)显示进度条✅ 默认显示❌ 需加 -# 或 --progress-bar
为什么要使用 yum makecache 生成缓存
使用 yum makecache 命令生成缓存的主要原因包括:
提高软件包查询速度 Yum 会将元数据(如软件包列表、依赖关系、版本信息等)下载到本地并缓存。后续操作(如搜索、安装)直接读取本地缓存,无需每次联网查询,显著加快速度。减少网络请求 避免每次执行 yum search 或 yum install 时重复下载元数据,节省带宽(尤其对慢速网络或大量主机管理场景重要)。保持元数据一致性 缓存确保一次会话中的所有操作基于同一时间点的仓库状态,避免因仓库中途更新导致依赖解析冲突。离线可用性 缓存后,即使短暂断网,仍能基于缓存的元数据搜索或安装已下载过的软件包(但安装新软件包仍需联网下载实际文件)。
何时需要手动生成缓存?
首次启用新仓库:添加仓库后建议运行 yum makecache。仓库更新后:若仓库内容变化(如新软件包发布),可手动更新缓存以获取最新信息。自动缓存失效时:Yum 默认会定期自动更新缓存,但若手动清除缓存(如 yum clean all),需重新生成。