Ubuntu 一键切换吉林大学镜像源

Ubuntu 一键切换吉林大学镜像源脚本

本文提供一个 Shell 脚本,用于一键将 Ubuntu 系统的软件源切换为吉林大学镜像源。该脚本会自动完成版本检测、原有源备份、新源替换以及缓存更新,适合所有 Ubuntu 发行版,无需手动修改配置文件。


一、一键切换脚本

将以下代码保存为 switch_jlu_ubuntu_source.sh

bash 复制代码
#!/bin/bash
# 一键切换Ubuntu源为吉林大学镜像源(https://mirrors.jlu.edu.cn/ubuntu/)
# 适用:所有Ubuntu发行版(自动识别版本代号)

# 检查是否为root用户(修改源需要管理员权限)
if [ $EUID -ne 0 ]; then
    echo "错误:请使用root权限运行此脚本(添加sudo)!"
    echo "正确命令:sudo bash 此脚本文件名.sh"
    exit 1
fi

# 步骤1:自动检测Ubuntu版本代号
CODENAME=$(lsb_release -c | awk '{print $2}')
if [ -z "$CODENAME" ]; then
    echo "错误:无法识别Ubuntu版本代号!请手动执行 lsb_release -c 确认版本"
    exit 1
fi
echo "✅ 检测到你的Ubuntu版本代号:$CODENAME"

# 步骤2:备份原有sources.list(避免出错无法恢复)
BACKUP_FILE="/etc/apt/sources.list.bak.$(date +%Y%m%d%H%M%S)"
cp /etc/apt/sources.list "$BACKUP_FILE"
echo "✅ 原有源文件已备份至:$BACKUP_FILE"

# 步骤3:写入吉林大学镜像源配置
cat > /etc/apt/sources.list << EOF
# 吉林大学 Ubuntu 镜像源(自动适配版本:$CODENAME)
deb https://mirrors.jlu.edu.cn/ubuntu/ $CODENAME main restricted universe multiverse
deb https://mirrors.jlu.edu.cn/ubuntu/ $CODENAME-security main restricted universe multiverse
deb https://mirrors.jlu.edu.cn/ubuntu/ $CODENAME-updates main restricted universe multiverse
deb https://mirrors.jlu.edu.cn/ubuntu/ $CODENAME-backports main restricted universe multiverse
# 可选源码源(需启用请取消注释)
# deb-src https://mirrors.jlu.edu.cn/ubuntu/ $CODENAME main restricted universe multiverse
# deb-src https://mirrors.jlu.edu.cn/ubuntu/ $CODENAME-security main restricted universe multiverse
# deb-src https://mirrors.jlu.edu.cn/ubuntu/ $CODENAME-updates main restricted universe multiverse
# deb-src https://mirrors.jlu.edu.cn/ubuntu/ $CODENAME-backports main restricted universe multiverse
EOF

echo "✅ 已写入吉林大学镜像源配置(版本:$CODENAME)"

# 步骤4:更新源缓存(使新源生效)
echo "🔄 正在更新apt缓存,请稍等..."
apt update -y

# 检查更新结果
if [ $? -eq 0 ]; then
    echo -e "\n🎉 源切换成功!吉林大学镜像源已生效。"
else
    echo -e "\n❌ 源更新失败!可能是网络/版本问题,已自动恢复原有源(备份文件:$BACKUP_FILE)"
    cp "$BACKUP_FILE" /etc/apt/sources.list
    apt update -y
fi

二、脚本使用方法

方法 1:在服务器直接创建运行

  1. 创建脚本文件

    bash 复制代码
    nano switch_jlu_ubuntu_source.sh
  2. 粘贴代码:将上方的脚本内容完整复制并粘贴到编辑器中。

  3. 保存退出 :按 Ctrl+O 回车保存,再按 Ctrl+X 退出。

  4. 赋予权限并运行

    bash 复制代码
    chmod +x switch_jlu_ubuntu_source.sh
    sudo ./switch_jlu_ubuntu_source.sh

三、如何验证切换成功

运行脚本后,可通过以下三个维度验证:

1. 检查配置文件

查看 /etc/apt/sources.list,确认是否包含吉大源地址:

bash 复制代码
# 查看源文件核心内容(过滤注释行,只看有效源)
grep -v '^#' /etc/apt/sources.list | grep mirrors.jlu.edu.cn

预期结果 :输出多行包含 mirrors.jlu.edu.cn 的配置。 输出类似以下内容(包含吉大镜像源地址 + 你的系统版本代号),说明配置文件已修改成功:

arduino 复制代码
deb https://mirrors.jlu.edu.cn/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.jlu.edu.cn/ubuntu/ noble-security main restricted universe multiverse
deb https://mirrors.jlu.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.jlu.edu.cn/ubuntu/ noble-backports main restricted universe multiverse

2. 检查 APT 缓存

查看软件包的下载来源:

bash 复制代码
apt-cache policy | grep mirrors.jlu.edu.cn

预期结果:显示吉林大学镜像源的 URL。

3. 实战测试下载

尝试安装一个软件(例如 wget),观察下载链接:

bash 复制代码
sudo apt install -v wget

预期结果 :下载日志中显示的 URL 应为 mirrors.jlu.edu.cn 开头。


相关推荐
程序员老邢4 分钟前
【技术底稿 10】16G Ubuntu 服务器手动部署 Ollama 0.20.4 全流程(避坑 HTTP2 错误)
服务器·ubuntu·ai·语言模型·devops
dddddppppp1235 分钟前
linux head.s 从第一条指令到start_kernel
linux·运维·服务器
BioRunYiXue6 分钟前
AlphaGenome:DeepMind 新作,基因组学迎来 Alpha 时刻
java·linux·运维·网络·数据库·人工智能·eclipse
十五年专注C++开发7 分钟前
windows和linux使用system启动进程是一样的吗?
linux·c++·windows·system
此刻觐神10 分钟前
IMX6ULL开发板学习-04(Linux磁盘管理相关命令)
linux·运维·学习
qq_85730581920 分钟前
ubuntu 22 源码安装bochs
linux·运维·ubuntu
Zhu75820 分钟前
【软件更新】在Ubuntu24 LTS中更新openssl到指定版本,例如openssl3.5.6 LTS
linux·ssh·ssl
ALINX技术博客21 分钟前
【黑金云课堂】VMware Ubuntu 开发环境安装教程
linux·fpga开发·fpga
charlie11451419124 分钟前
嵌入式Linux模块开发——struct module 深度解析:内核模块的核心数据结构
linux·开发语言·数据结构·c
刘某的Cloud30 分钟前
svc中外部流量访问限制
linux·运维·docker·kubernetes·service