在Ubuntu上编写一键更换清华源的shell脚本,可以按照以下步骤操作:
使用方法
- 创建脚本文件:
vi change_to_tuna.sh
- 复制交互式脚本:
#!/bin/bash
# 一键更换Ubuntu软件源为清华源脚本
# 检查是否为root用户
if [ "$(id -u)" != "0" ]; then
echo "Please run this script with sudo"
exit 1
fi
# 获取系统版本信息
CODENAME=$(lsb_release -c | awk '{print $2}')
VERSION=$(lsb_release -r | awk '{print $2}')
ARCH=$(dpkg --print-architecture)
echo "Detected system version: Ubuntu $VERSION $CODENAME ($ARCH)"
# 备份原有源列表
BACKUP_FILE="/etc/apt/sources.list.backup.$(date +%Y%m%d%H%M%S)"
cp /etc/apt/sources.list "$BACKUP_FILE"
echo "Original sources list backed up: $BACKUP_FILE"
# 根据版本设置清华源
case $CODENAME in
"noble") # Ubuntu 24.04
MIRROR_URL="https://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
;;
"jammy") # Ubuntu 22.04
MIRROR_URL="https://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
;;
"focal") # Ubuntu 20.04
MIRROR_URL="https://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
;;
"bionic") # Ubuntu 18.04
MIRROR_URL="https://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
;;
*)
echo "Unsupported Ubuntu version: $CODENAME"
exit 1
;;
esac
# 生成新的源列表
cat > /etc/apt/sources.list << EOF
# Ubuntu 主仓库
deb [arch=$ARCH] $MIRROR_URL $CODENAME main restricted universe multiverse
# deb-src $MIRROR_URL $CODENAME main restricted universe multiverse
# Ubuntu 更新仓库
deb [arch=$ARCH] $MIRROR_URL $CODENAME-updates main restricted universe multiverse
# deb-src $MIRROR_URL $CODENAME-updates main restricted universe multiverse
# Ubuntu 后备仓库
deb [arch=$ARCH] $MIRROR_URL $CODENAME-backports main restricted universe multiverse
# deb-src $MIRROR_URL $CODENAME-backports main restricted universe multiverse
# Ubuntu 安全更新仓库(使用清华镜像以在中国大陆获得更快速度)
deb [arch=$ARCH] $MIRROR_URL $CODENAME-security main restricted universe multiverse
# deb-src $MIRROR_URL $CODENAME-security main restricted universe multiverse
# 如果需要,也可以使用官方安全仓库(取消注释以下行并注释上面的安全仓库)
# deb [arch=$ARCH] http://security.ubuntu.com/ubuntu/ $CODENAME-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ $CODENAME-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb [arch=$ARCH] $MIRROR_URL $CODENAME-proposed main restricted universe multiverse
# deb-src $MIRROR_URL $CODENAME-proposed main restricted universe multiverse
EOF
echo "Successfully changed to Tsinghua Mirror"
# 更新软件包列表
echo "Updating package list..."
apt update
echo "Complete! You can now install packages using 'apt install'"
- 赋予执行权限:
chmod +x change_to_tuna.sh
- 运行脚本:
sudo ./change_to_tuna.sh
恢复原源
如果需要恢复原来的源,可以使用备份文件:
sudo cp /etc/apt/sources.list.backup.* /etc/apt/sources.list
sudo apt update
注意事项
- 脚本会自动检测你的Ubuntu版本并设置对应的源
- 会自动备份原有源列表,文件名包含时间戳
- 需要root权限运行
- 更换源后建议运行
sudo apt update更新包列表



3725

被折叠的 条评论
为什么被折叠?



