系统维护

switch-centos7-repo.sh

这是 LinuxMirrors 上游脚本的站内副本。用于 CentOS 7 时会重写 yum 仓库定义并刷新元数据;若在提示中确认,还可能关闭 firewalld 和 SELinux。CentOS 7 已结束支持。

一键命令

curl -fL 'https://www.helper.sh/switch-centos7-repo.sh' -o './switch-centos7-repo.sh'

此命令只下载本站文件,不会执行。请先检查保存的源码并核对版本,再决定是否运行。

核对已下载文件

与本页面构建时内置的确切字节比较。文件只在当前标签页处理,此工具不上传、不持久化文件。上限 2 MiB。

预期 SHA-256
4a15976771c49d4680122d6390aa19da3b4379bb2bc086d5738472340155930c

内置文件字节数: 207954

保存校验文件

将脚本和校验文件保存在同一目录。Linux 安装 GNU Coreutils 后可用下方命令只检查字节,不运行脚本;使用此命令时需保留原文件名。

sha256sum --check './switch-centos7-repo.sh.sha256'

尚未比较。

校验值与脚本来自同一网站,不是独立签名。一致不证明安全、上游依赖真实可信或适合本机;可变远程依赖需单独审阅。

查看验证与限制

运行要求

  • CentOS 7 主机
  • 需要 root 权限或 sudo
  • 基于 yum 的包管理环境
  • 可访问外部镜像源

适用场景

  • CentOS 7 默认仓库不可用后,快速恢复 yum 安装能力
  • 为归档环境中的老机器重新准备可用软件源
  • 在维护窗口开始前先把失效仓库地址替换掉

脚本亮点

  • 脚本可直接从 helper.sh 拉取并执行
  • 适合处理 CentOS 7 镜像迁移、失效或区域不可达问题
  • 便于老旧生产主机在维护前快速恢复可用源

推荐流程

  1. 使用 root 或 sudo 执行 helper.sh 提供的一键命令。
  2. 让脚本重写 repo 文件并切换到可用镜像源。
  3. 刷新 yum 缓存,确认安装命令已经恢复正常。
  4. 在重新投入生产前,再检查一次变更后的仓库定义。

安全提示

  • CentOS 7 已经结束生命周期,这更适合作为维护恢复措施,而不是长期平台方案。
  • 在生产环境使用前,请先确认选用的镜像和 repo 变更内容。
  • 对关键主机操作前,建议备份现有 repo 配置。

兼容范围与限制

  • 此处内置的上游脚本支持多个 Linux 发行版,本页只说明 CentOS 7 的 yum 用法。CentOS Linux 7 已结束支持;切换镜像只能恢复访问归档软件包,不能恢复安全维护。
  • 需要 root、Bash、yum 和网络;涉及 firewalld 时还需要 systemctl。脚本是交互式的,没有 dry-run 或自动回滚。默认 --backup true 会备份到 /etc/yum.repos.d.bak;若备份已存在,会询问是否覆盖。
  • 重要:firewalld 处于 active 时,“是否关闭防火墙和 SELinux”提示的默认答案是 Yes。请仔细处理该提示,或显式传入 --close-firewall false。软件包升级和清理缓存由另外的提示/选项控制;除非明确需要,不要确认。

受影响的文件、服务和数据

  • 启用备份时复制仓库文件到 /etc/yum.repos.d.bak;删除并重建 /etc/yum.repos.d 中的发行版仓库定义,然后运行 yum makecache。
  • 用户选择时可能安装 EPEL。显式启用软件包升级后会运行 `yum update -y --skip-broken`;启用缓存清理后会运行 `yum autoremove -y` 和 `yum clean packages -y`。
  • 若在提示中确认,会立即停止并禁用 firewalld 开机启动,把 /etc/selinux/config 中的 enforcing 改为 disabled,并运行 setenforce 0。这些是与换源无关的安全配置变更。

只读核验

  • 执行前检查系统版本、`systemctl is-active firewalld`、`getenforce`、`/etc/selinux/config` 以及 `ls -la /etc/yum.repos.d /etc/yum.repos.d.bak`。
  • 经批准只换源后,审阅 `diff -ru /etc/yum.repos.d.bak /etc/yum.repos.d`,查看 `yum repolist -v`,并检查退出码及 yum makecache 输出。
  • 重新检查 `systemctl is-enabled firewalld`、`systemctl is-active firewalld` 和 `getenforce`。yum 元数据刷新成功不能证明主机仍受防护或能获得安全更新。

失败后的下一步

元数据刷新失败时不要立刻带软件包升级重跑。保留当前仓库文件和备份,检查 `yum repolist -v`、DNS/网络连通性及具体报错;必要时从审阅过的备份手动恢复仓库文件。如果防火墙或 SELinux 已变化,按主机策略恢复,并在维护结束前核验远程访问。

先下载、审阅并核对版本,再决定是否执行。哈希只能标识这一版字节,不能证明安全。pipe 命令会立即执行远程内容;上游依赖也可能变化。

相关专题

CentOS 7:选择恢复任务

变更已结束支持的主机前,先区分仓库故障、SSH 访问问题和 Docker 存储压力。

查看专题

问题页面

CentOS 7 yum 404:先检查故障仓库

重写 repo 文件前,区分归档 CentOS 镜像、第三方 URL、DNS、TLS 或网络故障。

打开页面