系統維護

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 或網路故障。

打開頁面