Linux-CentOS-7—— 配置yum源(网络yum源 + 本地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.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. 核心定位不同
特性 | wget | curl |
---|---|---|
设计目标 | 专为文件下载优化 | 通用数据传输工具(支持上传/下载) |
协议支持 | 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
),需重新生成。