问题背景
在CentOS 7系统上安装Docker时,执行 sudo yum install
命令出现以下报错:
File contains no section headers.
file: file:///etc/yum.repos.d/CentOS-Base.repo, line: 1
'<!DOCTYPE html>\n'
原因是/etc/yum.repos.d/CentOS-Base.repo
文件被错误覆盖为HTML内容,导致yum仓库配置失效。
问题根源
- CentOS 7官方停止维护
自2024年6月30日起,CentOS 7进入EOL阶段,官方镜像源(mirrorlist.centos.org
)已不可用。 - 镜像源配置错误
使用阿里云等第三方镜像源时,链接失效或网络异常导致下载到错误内容。
解决方案
一、手动修复yum仓库配置
-
备份原有配置
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
-
写入新的仓库配置
直接使用vault.centos.org
官方存档源(兼容EOL后的CentOS 7):sudo tee /etc/yum.repos.d/CentOS-Base.repo <<-'EOF' [base] name=CentOS-7 - Base baseurl=https://vault.centos.org/7.9.2009/os/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-7 - Updates baseurl=https://vault.centos.org/7.9.2009/updates/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-7 - Extras baseurl=https://vault.centos.org/7.9.2009/extras/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 EOF
二、清理缓存并重试安装
-
清除旧缓存
sudo yum clean all sudo rm -rf /var/cache/yum
-
重建元数据缓存
sudo yum makecache
-
安装Docker依赖工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
验证配置是否成功
• 检查仓库配置
cat /etc/yum.repos.d/CentOS-Base.repo
输出应包含vault.centos.org
的baseurl
路径。
• 测试安装命令
sudo yum install -y curl
若成功安装,说明yum源已修复。