CentOS 7.4 → 7.9.2009 升级操作步骤(使用 Vault 仓库)

目的

因为要安装docker,目前服务器的版本是CentOS Linux release 7.4.1708,官方要求是 "维护中的 CentOS 7 版本 ",归档/老版本(像 7.4)并不受支持,所以先升级到官方最后的 7.x 维护版(比如 7.9),否则过程中可能遇到依赖或仓库兼容性问题借助。解决问题的方案是采用 CentOS Vault(归档仓库)使 yum 恢复可用,将系统内核/基础包升级到 7.9.2009(CentOS 7 最后一个维护版)。此方案是临时延续运行 CentOS7 的方式。


前提与准备

  1. 有 root 权限

  2. 目前服务器的操作系统版本

    arduino 复制代码
    cat /etc/centos-release
    CentOS Linux release 7.4.1708 (Core)
  3. 网络能访问 vault.centos.org(升级前可测试连通性)。

    bash 复制代码
    curl -I http://vault.centos.org/7.9.2009/os/x86_64/
  4. 备份重要数据 / 快照(因为升级涉及基础包变动,有失败风险)。


步骤详解

1. 备份现有 repo 配置(可选但推荐)

bash 复制代码
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2>/dev/null || true

防止原始配置破坏后无法恢复。

2. 创建指向 Vault 的 repo 文件

新建 /etc/yum.repos.d/CentOS-Vault.repo,内容如下:

ini 复制代码
[base]
name=CentOS-7.9.2009 - Base
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
metadata_expire=never
​
[updates]
name=CentOS-7.9.2009 - Updates
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
metadata_expire=never
​
[extras]
name=CentOS-7.9.2009 - Extras
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
metadata_expire=never
​
[centosplus]
name=CentOS-7.9.2009 - Plus
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
metadata_expire=never

这个配置直接指向归档的 Vault 源,绕过已失效的 mirrorlist。

3. 确保 GPG key 存在并导入

查看密钥文件:

bash 复制代码
ls -l /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

导入(已有则跳过):

arduino 复制代码
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

如果确实拿不到 key,可临时关闭 gpgcheck(不推荐长期):

bash 复制代码
sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/CentOS-Vault.repo

相关做法在多个社区/指南中有说明(这是临时恢复 yum 的手段)。

4. 清缓存并更新系统

sql 复制代码
yum clean all
yum makecache
# 先更新 centos-release,确保版本元信息到位
yum update centos-release -y
# 全量升级到 7.9.2009
yum update -y

升级过程中会把系统的核心包(包括内核、基础库等)拉到 7.9.2009。

5. 重启使变更生效

复制代码
reboot

6. 验证

bash 复制代码
cat /etc/centos-release
# 应显示:CentOS Linux release 7.9.2009 (Core)

常见问题 & 解决

  • yum 报错找不到 repo / repodata 404 确认 .repo 用的是 vault.centos.org/7.9.2009/... 而不是旧的 mirrorlist,并且能连通该地址。
  • GPG 验证失败 检查 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 是否存在并已导入。必要时短期设 gpgcheck=0 以完成升级。
  • 系统仍旧显示旧版本 可能是没有更新 centos-release 先执行 yum update centos-release -y 后再全部更新。
  • 长期安全性问题 CentOS 7 已在 2024 年 6 月 30 日正式 EOL,Vault 只是归档、不再有安全补丁。建议后续迁移到受支持系统(如 AlmaLinux / Rocky Linux / CentOS Stream)。
相关推荐
JiMoKuangXiangQu4 小时前
ARM64 进程虚拟地址空间布局
linux·arm64 虚拟地址布局
阳光九叶草LXGZXJ5 小时前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
春日见5 小时前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶
无垠的广袤6 小时前
【VisionFive 2 Lite 单板计算机】边缘AI视觉应用部署:缺陷检测
linux·人工智能·python·opencv·开发板
阿波罗尼亚6 小时前
Kubectl 命令记录
linux·运维·服务器
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.6 小时前
Keepalived单播模式配置与实战指南
linux·服务器·负载均衡
IDC02_FEIYA6 小时前
Linux文件搜索命令有哪些?Linux常用命令之文件搜索命令find详解
linux·运维·服务器
江畔何人初6 小时前
kubectl apply与kubectl create的区别
linux·运维·云原生
M158227690557 小时前
四通道全能组网!SG-Canet-410 CAN转以太网网关,破解工业CAN通信瓶颈
linux·运维·服务器
誰能久伴不乏7 小时前
【Qt实战】工业级多线程串口通信:从底层协议设计到完美收发闭环
linux·c++·qt