ubuntu2204换腾讯云的apt源
!/bin/bash
switch-to-tencent-mirrors.sh
将Ubuntu APT源切换为腾讯云镜像源
支持Ubuntu 18.04/20.04/22.04
set -e
颜色定义
GREEN="\033[0;32m"
YELLOW="\033[1;33m"
RED="\033[0;31m"
BLUE="\033[0;34m"
NC="\033[0m" # No Color
打印信息函数
log_info() {
echo -e "\({GREEN}[INFO]\){NC} $1"
}
log_warn() {
echo -e "\({YELLOW}[WARN]\){NC} $1"
}
log_error() {
echo -e "\({RED}[ERROR]\){NC} $1"
}
log_step() {
echo -e "\({BLUE}[STEP]\){NC} $1"
}
检查是否以root权限运行
if [[ $EUID -ne 0 ]]; then
log_error "此脚本必须以root权限运行"
exit 1
fi
检测Ubuntu版本
UBUNTU_VERSION=\((lsb_release -cs)
if [[ -z "\)UBUNTU_VERSION" ]]; then
log_error "无法检测到Ubuntu版本"
exit 1
fi
log_info "检测到Ubuntu版本: $UBUNTU_VERSION"
支持的版本列表
SUPPORTED_VERSIONS=("bionic" "focal" "jammy")
IS_SUPPORTED=false
for version in "\({SUPPORTED_VERSIONS[@]}"; do
if [[ "\)UBUNTU_VERSION" == "$version" ]]; then
IS_SUPPORTED=true
break
fi
done
if [[ "$IS_SUPPORTED" == "false" ]]; then
log_warn "不支持的Ubuntu版本: $UBUNTU_VERSION,但仍将尝试替换源"
fi
备份原始sources.list
log_step "备份原始sources.list文件"
BACKUP_FILE="/etc/apt/sources.list.bak.\((date +%Y%m%d%H%M%S)"
cp /etc/apt/sources.list "\)BACKUP_FILE"
log_info "原始sources.list已备份到: $BACKUP_FILE"
替换为腾讯云镜像源
log_step "替换为腾讯云镜像源"
case "$UBUNTU_VERSION" in
"bionic") # Ubuntu 18.04
cat > /etc/apt/sources.list << EOF
默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.cloud.tencent.com/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ bionic-security main restricted universe multiverse
EOF
;;
"focal") # Ubuntu 20.04
cat > /etc/apt/sources.list << EOF
默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.cloud.tencent.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ focal-security main restricted universe multiverse
EOF
;;
"jammy") # Ubuntu 22.04
cat > /etc/apt/sources.list << EOF
默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.cloud.tencent.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.cloud.tencent.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.cloud.tencent.com/ubuntu/ jammy-security main restricted universe multiverse
EOF
;;
*)
# 对于未明确支持的版本,尝试通用替换
log_warn "使用通用方法替换源,可能不完全适配您的系统版本"
sed -i "s@http://(archive|security).ubuntu.com/ubuntu/@https://mirrors.cloud.tencent.com/ubuntu/@g" /etc/apt/sources.list
;;
esac
log_info "已成功切换到腾讯云镜像源"
处理APISIX等特殊仓库
log_step "检查并处理特殊仓库"
if grep -q "repos.apiseven.com" /etc/apt/sources.list.d/*.list 2>/dev/null; then
log_info "检测到APISIX仓库,尝试保留"
# 由于APISIX可能没有镜像,我们保留它
fi
更新源
log_step "更新APT源索引"
log_info "正在执行 apt update..."
apt update
log_info "源已更新完成,您现在可以继续安装软件包"
log_info "如果遇到问题,可以使用备份文件恢复: cp $BACKUP_FILE /etc/apt/sources.list"
提示可以安装APISIX地理位置模块了
log_info "现在您可以运行APISIX GeoDefender安装脚本: bash /opt/install-apisix-geo-defender.sh"
exit 0

浙公网安备 33010602011771号