bash <<'EOF' #!/usr/bin/env bash set -e if [ "$(id -u)" -ne 0 ]; then echo "错误:请使用 root 执行" exit 1 fi if [ ! -f /etc/os-release ]; then echo "错误:无法识别系统" exit 1 fi . /etc/os-release if [ "$ID" != "debian" ]; then echo "错误:当前系统不是 Debian" exit 1 fi CODENAME="${VERSION_CODENAME:-trixie}" if [ "$CODENAME" != "trixie" ]; then echo "警告:当前系统代号为 $CODENAME,不是 trixie" read -r -p "是否仍然继续?[y/N] " answer case "$answer" in y|Y) ;; *) echo "已取消" exit 0 ;; esac fi BACKUP_DIR="/root/apt-backup-$(date +%Y%m%d-%H%M%S)" echo "备份现有 APT 配置到:$BACKUP_DIR" mkdir -p "$BACKUP_DIR" cp -a /etc/apt/sources.list "$BACKUP_DIR/" 2>/dev/null || true cp -a /etc/apt/sources.list.d "$BACKUP_DIR/" 2>/dev/null || true echo "禁用旧的软件源配置..." mkdir -p /etc/apt/sources.list.d.disabled for file in /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources; do [ -e "$file" ] || continue mv "$file" /etc/apt/sources.list.d.disabled/ done cat > /etc/apt/sources.list <<'SOURCE' deb https://mirrors.aliyun.com/debian trixie main contrib non-free non-free-firmware deb https://mirrors.aliyun.com/debian trixie-updates main contrib non-free non-free-firmware deb https://mirrors.aliyun.com/debian-security trixie-security main contrib non-free non-free-firmware SOURCE echo "新的软件源配置:" cat /etc/apt/sources.list echo echo "正在更新软件包索引..." if apt-get update; then echo echo "======================================" echo "Debian 13 阿里云源切换成功" echo "备份目录:$BACKUP_DIR" echo "======================================" else echo echo "APT 更新失败,正在提示恢复方式" echo "原配置备份目录:$BACKUP_DIR" echo echo "如需恢复,可以执行:" echo "cp -a $BACKUP_DIR/sources.list /etc/apt/sources.list" echo "rm -rf /etc/apt/sources.list.d" echo "cp -a $BACKUP_DIR/sources.list.d /etc/apt/" exit 1 fi EOF