#!/bin/bash
#function:yum源切換(支持阿里雲、騰訊雲、華為雲、自定義源)
#author:MarkWu 2025.11.25 updated version
##########################################
# 定義阿里雲yum源切換函數
Ali() {
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
}
# 定義騰訊雲yum源切換函數
Tencent() {
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.tencentyun.com/repo/centos7_base.repo
yum clean all
yum makecache
}
# 定義華為雲yum源切換函數
Huawei() {
wget -q -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
yum clean all
yum makecache
}
# 定義自定義源切換函數
CustomRepo() {
read -p "請輸入repo文件路徑: " repo_path
read -p "請輸入repo URL: " repo_url
wget -O "$repo_path" "$repo_url"
yum clean all
yum makecache
}
PS3="請選擇yum源: "
select i in "阿里巴巴鏡像站" "騰訊軟件源" "華為雲鏡像站" "輸入自定義源" "退出"
do
case $i in
"1).阿里巴巴鏡像站")
Ali
;;
"2).騰訊軟件源")
Tencent
;;
"3).華為雲鏡像站")
Huawei
;;
"4).輸入自定義源")
CustomRepo
;;
"5).退出")
echo "系統退出"
exit
;;
*) echo "無效選擇,請重新輸入";;
esac
done
好的,我們來逐一解釋這份腳本的每個部分,讓你徹底明白它是如何工作的。
腳本整體功能
此腳本可 CentOS 7 系統上自動切換 YUM 軟件源
用户可以通過菜單選擇:
- 切換到阿里雲、騰訊雲、華為雲等國內鏡像源(速度快)
- 輸入自定義的YUM源地址
- 退出腳本
腳本結構解析
1. 腳本聲明和註釋
#!/bin/bash
#function:yum源切換(支持阿里雲、騰訊雲、華為雲、自定義源)
#author:MarkWu 2025.11.25 updated version
##########################################
#!/bin/bash:指定腳本使用bash解釋器執行。#開頭的行是註釋,説明腳本功能、作者和版本。
2. 定義切換源的函數
腳本定義了4個函數,分別對應不同的操作:
**(1) 阿里雲源切換函數 **Ali()
Ali() {
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
}
curl -o [輸出文件] [URL]:從阿里雲鏡像站下載CentOS 7的repo配置文件,覆蓋系統默認的/etc/yum.repos.d/CentOS-Base.repo。yum clean all:清空YUM緩存(舊的源信息)。yum makecache:生成新的緩存(使用新的源地址)。
**(2) 騰訊雲源切換函數 **Tencent()
Tencent() {
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.tencentyun.com/repo/centos7_base.repo
yum clean all
yum makecache
}
- 與阿里雲類似,只是使用
wget命令下載騰訊雲的repo文件。 wget -O [輸出文件] [URL]:作用和curl -o相同,都是下載文件到指定路徑。
**(3) 華為雲源切換函數 **Huawei()
Huawei() {
wget -q -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
yum clean all
yum makecache
}
- 使用
wget -q靜默下載(不顯示下載進度)。 - 下載華為雲的repo配置文件。
**(4) 自定義源切換函數 **CustomRepo()
CustomRepo() {
read -p "請輸入repo文件路徑: " repo_path
read -p "請輸入repo URL: " repo_url
wget -O "$repo_path" "$repo_url"
yum clean all
yum makecache
}
read -p [提示語] [變量名]:讀取用户輸入的repo文件保存路徑和源地址。- 下載用户指定的repo文件到自定義路徑。
- 同樣執行清理和重建緩存操作。
3. 菜單交互部分
PS3="請選擇yum源: "
select i in "1).阿里巴巴鏡像站" "2).騰訊軟件源" "3).華為雲鏡像站" "4).輸入自定義源" "5).退出"
do
case $i in
"1).阿里巴巴鏡像站") Ali ;;
"2).騰訊軟件源") Tencent ;;
"3).華為雲鏡像站") Huawei ;;
"4).輸入自定義源") CustomRepo ;;
"5).退出") echo "系統退出"; exit ;;
*) echo "無效選擇,請重新輸入" ;;
esac
done
PS3:設置select菜單的提示語。select i in [選項列表]:生成一個交互式菜單,用户輸入序號選擇對應的選項。case $i in ... esac:根據用户選擇的選項,執行對應的函數。
- 如果輸入
1,執行Ali()切換到阿里雲。 - 如果輸入
4,執行CustomRepo()讓用户自定義源。 - 如果輸入
5,輸出提示並退出腳本。 - 輸入其他無效值,提示重新輸入。
關鍵説明
yum** 緩存**:
yum clean all:刪除所有緩存的包和元數據。yum makecache:將新源的包信息緩存到本地,加快後續安裝速度。
- 權限要求:
- 腳本需要 root權限 執行,因為要修改
/etc/yum.repos.d/目錄下的系統文件。 - 運行時請用
sudo ./腳本名.sh。
- 適用系統:
- 腳本中使用的repo文件是為 CentOS 7 設計的,不適用於CentOS 8+/9或其他Linux發行版(如Ubuntu、Debian)。
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。