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


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 等多种协议。
    • 对比 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: 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. 安装测试

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

  • 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/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]# 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

wgetcurl 虽然都可以用于下载文件,但在 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 命令生成缓存的主要原因包括:

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

何时需要手动生成缓存?

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

1.查看系统本身存在的版本 rpm -qa | grep yum 2.卸载centos7上存在的yum安装包 rpm -e --nodeps 3.下载yum包(http://mirrors.163.com/centos/7/os/x86_64/Packages/) yum-metadata-parser-1.1.4-10.el7.x86_64 PackageKit-yum-1.0.7-6.el7.centos.x86_64 yum-utils-1.1.31-40.el7.noarch 下方两个一起装 yum-plugin-fastestmirror-1.1.31-40.el7.noarch yum-langpacks-0.4.2-7.el7.noarch yum-3.4.3-150.el7.centos.noarch yum-rhn-plugin-2.0.1-6.el7.noarch 4.安装yum包 rpm -ivh yum* 5.创建配置文件(/etc/yum.repos.d/CentOS-Base.repo) vi /etc/yum.repos.d/CentOS-Base.repo [base] name=CentOS-$releasever - Base - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch;=$basearch&repo=os baseurl=http://mirrors.163.com/centos/(系统版本号)7/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch;=$basearch&repo=updates baseurl=http://mirrors.163.com/centos/7/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch;=$basearch&repo=extras baseurl=http://mirrors.163.com/centos/7/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=$releasever - Plus - 163.com baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 每一个baseurl的centos后都改成自己系统的版本号 6.执行命令 yum clean all yum makecache yum install telnet
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值