> 技术文档 > Linux-CentOS-7—— 配置yum源(网络yum源 + 本地yum源)_centos7配置yum源

Linux-CentOS-7—— 配置yum源(网络yum源 + 本地yum源)_centos7配置yum源


文章目录

  • 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.repoResolving 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 OKLength: 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 Speed100 2523 100 2523 0 0 9252 0 --:--:-- --:--:-- --:--:-- 9275[root@localhost ~]# 

参数说明

  • curl
    • 功能:命令行数据传输工具,支持 HTTP/HTTPS/FTP/SCP 等多种协议。
    • 对比 wgetcurl 更侧重协议支持与数据传输灵活性,wget 更适合简单下载。
  • -o(小写字母o)
    • 功能:指定下载文件的保存路径和名称。
    • 注意:若路径已存在同名文件,会直接静默覆盖(无警告提示)。
  • /etc/yum.repos.d/CentOS-Base.repo
    • 路径说明:CentOS 系统存放 YUM 源配置的标准目录。
    • 文件作用:替换后,YUM 包管理器会从阿里云镜像站获取软件包。
  • https://mirrors.aliyun.com/repo/Centos-7.repo
    • 来源:阿里云官方维护的 CentOS 7 软件仓库配置。
    • 内容:包含 baseupdatesextras 等仓库的镜像地址和 GPG 校验密钥。

3. 使用yum makecache 生成缓存

yum makecache 
[root@localhost ~]# yum makecache Loaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.combase| 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. 安装测试

这里安装 vimnet-toolswget 相关的软件包

  • vim:文本编辑器。
  • net-tools:包含 ifconfig 等传统网络工具(最小安装系统中可能未安装)。
  • wget:文件下载工具。
yum install -y vim net-tools wget

-y 表示自动确认安装,避免交互式提问。

[root@localhost ~]# yum install -y vim net-tools wgetLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.comPackage 2:vim-enhanced-7.4.629-8.el7_9.x86_64 already installed and latest versionPackage net-tools-2.0-0.25.20131004git.el7.x86_64 already installed and latest versionPackage wget-1.14-18.el7_6.1.x86_64 already installed and latest versionNothing to do[root@localhost ~]# 

二、配置本地 YUM 仓库(使用本地 ISO 或光盘作为软件源)

在做本地YUM之前,先确保虚拟机的可移动设备这里有没有连接上CD/DVD(重启一次系统会自动连接上)。(右键虚拟机的标签页)

Linux-CentOS-7—— 配置yum源(网络yum源 + 本地yum源)_centos7配置yum源


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 -hFilesystem  Size Used Avail Use% Mounted ondevtmpfs  475M 0 475M 0% /devtmpfs  487M 0 487M 0% /dev/shmtmpfs  487M 7.6M 479M 2% /runtmpfs  487M 0 487M 0% /sys/fs/cgroup/dev/mapper/centos-root 17G 1.5G 16G 9% //dev/sda1  1014M 138M 877M 14% /boottmpfs  98M 0 98M 0% /run/user/0/dev/sr0  4.4G 4.4G 0 100% /mnt/cdrom# 这个就是挂载上去的镜像[root@localhost ~]# 
  • /dev/sr0 是光驱设备,不是镜像文件,但可用于访问镜像内容(如挂载 ISO)。
  • 镜像文件(.iso) 是数据的静态存储,需通过 /dev/sr0loop 设备挂载后使用。
  • 物理光驱、虚拟光驱、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]# lsCentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repoCentOS-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]# lsCentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repoCentOS-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]# lsCentOS-Base.repo.bak CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repoCentOS-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 wgetLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfilePackage 2:vim-enhanced-7.4.629-7.el7.x86_64 already installed and latest versionPackage net-tools-2.0-0.25.20131004git.el7.x86_64 already installed and latest versionPackage wget-1.14-18.el7_6.1.x86_64 already installed and latest versionNothing to do[root@localhost ~]# 


其他补充


wget 和curl

wgetcurl 虽然都可以用于下载文件,但在 Linux 系统中有着不同的设计目标和适用场景。以下是它们的核心区别:

1. 核心定位不同

特性 wget curl 设计目标 专为文件下载优化 通用数据传输工具(支持上传/下载) 协议支持 HTTP/HTTPS/FTP 支持 20+ 协议(如 HTTP, FTP, SCP, SMTP 等) 交互性 纯下载工具 可与 API 交互(如 RESTful 接口)

2. 下载行为对比

场景 wget 的表现 curl 的表现 简单下载文件 ✅ 更简单直接(适合脚本化) ✅ 也能完成,但参数略复杂 断点续传 ✅ 原生支持(-c 参数) ❌ 需手动处理 递归下载 ✅ 支持(-r 下载整个目录) ❌ 不支持 输出到终端 ❌ 默认保存到文件 ✅ 默认输出到终端(需用 -o 保存) 显示进度条 ✅ 默认显示 ❌ 需加 -#--progress-bar

为什么要使用 yum makecache 生成缓存

使用 yum makecache 命令生成缓存的主要原因包括:

  1. 提高软件包查询速度
    Yum 会将元数据(如软件包列表、依赖关系、版本信息等)下载到本地并缓存。后续操作(如搜索、安装)直接读取本地缓存,无需每次联网查询,显著加快速度。
  2. 减少网络请求
    避免每次执行 yum searchyum install 时重复下载元数据,节省带宽(尤其对慢速网络或大量主机管理场景重要)。
  3. 保持元数据一致性
    缓存确保一次会话中的所有操作基于同一时间点的仓库状态,避免因仓库中途更新导致依赖解析冲突。
  4. 离线可用性
    缓存后,即使短暂断网,仍能基于缓存的元数据搜索或安装已下载过的软件包(但安装新软件包仍需联网下载实际文件)。

何时需要手动生成缓存?

  • 首次启用新仓库:添加仓库后建议运行 yum makecache
  • 仓库更新后:若仓库内容变化(如新软件包发布),可手动更新缓存以获取最新信息。
  • 自动缓存失效时:Yum 默认会定期自动更新缓存,但若手动清除缓存(如 yum clean all),需重新生成。