本帖最后由 qinyuhui 于 2024-5-17 15:18 编辑
使用脚本前请先安装curl
apt -y install curl
Ubuntu一键换源脚本ubuntu14/16/18/20/22,多版本自动识别,包含阿里源、网易源、腾讯源、清华源、华为源
bash <(curl -sL https://giie.cn/sh/ubuntu.sh)
直接使用上面命令即可运行脚本或者自行复制下面内容到服务器内执行
简单弄了个脚本方便自己使用现分享出来,可能也许脚本并不完美或者有问题用不了的自行修改
202400517,ubuntu一键换源脚本修改
[Shell] 纯文本查看 复制代码 #!/bin/bash
# 检查是否为 ubuntu 系统,不是ubuntu系统不允许执行
if [ -f "/etc/os-release" ]; then
. /etc/os-release
if [ "$ID" != "ubuntu" ]; then
echo "当前系统不是 Ubuntu,不支持此脚本"
exit 1
fi
else
echo "未能检测到系统信息文件 /etc/os-release"
exit 1
fi
# 检测系统版本和内核
detect_system() {
echo
echo "感谢使用咕噜云一键换源脚本"
echo
echo "注意仅支持:ubuntu14/16/18/20/22/23/24 AMD64架构版本"
echo
echo "如果安装的不是以上版本直接重装吧!"
echo
distributor_id=$(lsb_release -d -s)
echo "系统: $distributor_id"
release=$(lsb_release -r -s)
echo "版本号: $release"
jiagou=$(uname -m)
echo "系统架构: $jiagou"
kernel_version=$(uname -r)
echo "内核版本: $kernel_version"
}
# 检测是否为 AMD64 架构
detect_amd64() {
architecture=$(uname -m)
if [[ "$architecture" != "x86_64" ]]; then
echo
echo "当前系统不是 AMD64 架构,不支持此脚本"
exit 1
fi
}
# 检测网络连接
check_network() {
echo
echo "正在检测与软件源站的网络连接..."
# 清华大学源
ping -c 3 mirrors.tuna.tsinghua.edu.cn >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "清华源连接正常"
else
echo "清华源连接失败"
exit 1
fi
# 阿里云源
ping -c 3 mirrors.aliyun.com >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "阿里源连接正常"
else
echo "阿里源连接失败"
exit 1
fi
# 网易163源
ping -c 3 mirrors.163.com >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "网易源连接正常"
else
echo "网易源连接失败"
exit 1
fi
# 腾讯云源
ping -c 3 mirrors.cloud.tencent.com >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "腾讯源连接正常"
else
echo "腾讯源连接失败"
exit 1
fi
# 华为云源
ping -c 3 mirrors.huaweicloud.com >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "华为源连接正常"
else
echo "华为源连接失败"
exit 1
fi
}
# 打印菜单
print_menu() {
echo
echo "请选择一个镜像站:"
echo "1. 清华源"
echo "2. 阿里源"
echo "3. 网易163源"
echo "4. 腾讯源"
echo "5. 华为源"
echo "0. 退出"
echo
echo "如不选择直接回车默认清华源,推荐清华源"
}
# 更新源函数
update_source() {
case $1 in
1)
mirror_url="https://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
;;
2)
mirror_url="http://mirrors.aliyun.com/ubuntu/"
;;
3)
mirror_url="http://mirrors.163.com/ubuntu/"
;;
4)
mirror_url="https://mirrors.cloud.tencent.com/ubuntu/"
;;
5)
mirror_url="https://mirrors.huaweicloud.com/repository/ubuntu/"
;;
*)
echo "未选择镜像站,默认使用清华大学"
mirror_url="https://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
;;
esac
echo "正在将源更新为所选镜像站..."
# 删除原有的源文件
sudo rm /etc/apt/sources.list
# 生成新的源文件并写入
echo "deb $mirror_url $(lsb_release -cs) main restricted universe multiverse" | sudo tee /etc/apt/sources.list
echo "deb-src $mirror_url $(lsb_release -cs) main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb $mirror_url $(lsb_release -cs)-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb-src $mirror_url $(lsb_release -cs)-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb $mirror_url $(lsb_release -cs)-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
echo "deb-src $mirror_url $(lsb_release -cs)-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
# 清除缓存
sudo apt-get clean
# 更新软件包索引
sudo apt-get update
# 升级系统
sudo apt-get upgrade -y
# 清理残余文件
sudo apt-get autoremove -y
# 检查是否成功更新源
if [ $? -eq 0 ]; then
echo "源已更新为所选镜像站"
exit 0
else
echo "源更新失败,请检查网络连接"
exit 1
fi
}
# 主程序
detect_amd64
detect_system
check_network
while true; do
print_menu
read -p "请输入源编号数字后回车确认: " choice
if [[ $choice == 0 ]]; then
exit 0
else
update_source $choice
fi
done
Debian一键换源脚本Debian 10/11/12多版本自动识别,脚本包含阿里源、网易源、腾讯源、清华源、华为源
bash <(curl -sL https://giie.cn/sh/Debian.sh)
直接使用上面命令即可运行脚本或者自行复制下面内容到服务器内执行
[PHP] 纯文本查看 复制代码 #!/bin/bash
# 备份原始软件源配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 国内软件源数组
declare -a repo_urls=(
"http://mirrors.aliyun.com/debian/|阿里云"
"http://mirrors.163.com/debian/|网易"
"https://mirrors.cloud.tencent.com/debian/|腾讯"
"https://mirrors.tuna.tsinghua.edu.cn/debian/|清华大学"
"https://mirrors.huaweicloud.com/repository/debian/|华为云"
)
# 获取当前Debian系统版本
debian_version=$(awk -F'[= "]' '/VERSION_CODENAME/{print $3}' /etc/os-release)
# 根据系统版本选择对应的软件源
case $debian_version in
"stretch")
repo_index=3 # 清华源
;;
"buster")
repo_index=3 # 清华源
;;
"bullseye")
repo_index=4 # 华为源
;;
*)
repo_index=0 # 默认选择阿里云源
;;
esac
# 显示可用的软件源列表
echo "国内软件源列表:"
for ((i=0; i<${#repo_urls[@]}; i++)); do
url=$(echo ${repo_urls[$i]} | cut -d '|' -f 1)
name=$(echo ${repo_urls[$i]} | cut -d '|' -f 2)
echo "$i. $name ($url)"
done
# 提示用户选择一个源
read -p "请选择要使用的软件源的编号 (默认为 $repo_index): " user_repo_index
# 如果用户选择了有效的编号,则更新 repo_index
if [[ $user_repo_index =~ ^[0-9]+$ ]] && [ $user_repo_index -ge 0 ] && [ $user_repo_index -lt ${#repo_urls[@]} ]; then
repo_index=$user_repo_index
fi
# 检测源是否正常
repo_url=$(echo ${repo_urls[$repo_index]} | cut -d '|' -f 1)
if ping -c 1 $(echo $repo_url | awk -F/ '{print $3}') &> /dev/null; then
echo "源 $repo_url 可正常连接。"
else
echo "源 $repo_url 无法连接,请检查网络连接。"
# 尝试使用其他源进行更新
for ((i=0; i<${#repo_urls[@]}; i++)); do
alt_repo_url=$(echo ${repo_urls[$i]} | cut -d '|' -f 1)
if ping -c 1 $(echo $alt_repo_url | awk -F/ '{print $3}') &> /dev/null; then
echo "尝试使用备选源 $alt_repo_url 进行更新。"
repo_url=$alt_repo_url
break
fi
done
if [ -z "$repo_url" ]; then
echo "所有备选源均无法连接,请检查网络连接或稍后再试。"
exit 1
fi
fi
# 检查当前使用的源
current_source=$(grep -oP '(?<=^deb\s).+' /etc/apt/sources.list | awk '{print $2}' | cut -d '/' -f 3)
echo "当前使用的源:$current_source"
# 下载并替换为用户选择的软件源配置文件
sudo sed -i "s|http://[^ ]*|${repo_url}|g" /etc/apt/sources.list
# 清除缓存
sudo apt-get clean
# 更新软件包索引
sudo apt-get update
# 升级系统
sudo apt-get upgrade -y
# 清理残余文件
sudo apt-get autoremove -y
echo "软件源已经成功设置并更新完成。"
如使用不了自行修复或者使用其他方法换源,本脚本并不一定适合你使用,也不保证百分百可用。
ubuntu/debian一键安装谷歌浏览器、向日癸、ToDesk、百度网盘
一样随便写的不保证所有版本都可以安装
使用脚本前请先安装curl
apt -y install curl
bash <(curl -sL https://giie.cn/sh/ruanjian.sh)
|