#!/bin/bash
echo "=== 配置清华大学镜像源安装 clang ==="
# 备份原始源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
echo "✓ 已备份原始源配置到 /etc/apt/sources.list.backup"
# 获取Ubuntu版本代号
UBUNTU_VERSION=$(lsb_release -cs)
echo "检测到Ubuntu版本: $UBUNTU_VERSION"
# 写入清华大学镜像源配置
cat << EOF | sudo tee /etc/apt/sources.list
# 清华大学开源软件镜像站
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_VERSION-proposed main restricted universe multiverse
EOF
echo "✓ 已配置清华大学镜像源"
# 更新软件包列表
echo "正在更新软件包列表..."
sudo apt update
if [ $? -eq 0 ]; then
echo "✓ 软件包列表更新成功"
else
echo "❌ 软件包列表更新失败,可能网络有问题"
exit 1
fi
# 搜索可用的clang版本
echo ""
echo "=== 可用的clang版本 ==="
apt-cache search "^clang-[0-9]" | sort
echo ""
echo "=== 安装clang和clang-format ==="
# 安装clang和clang-format
sudo apt install -y clang clang-format
# 检查安装结果
if [ $? -eq 0 ]; then
echo "✓ clang和clang-format安装成功"
# 验证安装
echo ""
echo "=== 安装验证 ==="
echo "clang版本:"
clang --version
echo ""
echo "clang-format版本:"
clang-format --version
echo ""
echo "✅ 安装完成!"
else
echo "❌ 安装失败"
exit 1
fi
# 提供恢复原始源的命令
echo ""
echo "📝 如需恢复原始软件源,请运行:"
echo " sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list"
echo " sudo apt update"
echo ""
echo "🔧 如需安装特定版本的clang,可运行:"
echo " sudo apt install clang-11 clang-format-11 # 安装clang 11"
echo " sudo apt install clang-12 clang-format-12 # 安装clang 12"