qinyuhui 发表于 2023-8-3 14:56

Ubuntu/Debian多版本自动识别一键换源脚本+一键安装谷歌浏览器和远程软件

本帖最后由 qinyuhui 于 2024-5-17 15:18 编辑

使用脚本前请先安装curl

apt -y install curl

Ubuntu一键换源脚本ubuntu14/16/18/20/22,多版本自动识别,包含阿里源、网易源、腾讯源、清华源、华为源

bash <(curl -sL https://giie.cn/sh/ubuntu.sh)



直接使用上面命令即可运行脚本或者自行复制下面内容到服务器内执行

简单弄了个脚本方便自己使用现分享出来,可能也许脚本并不完美或者有问题用不了的自行修改

202400517,ubuntu一键换源脚本修改

#!/bin/bash
# 检查是否为 ubuntu 系统,不是ubuntu系统不允许执行
    if [ -f "/etc/os-release" ]; then
      . /etc/os-release
      if [ "$ID" != "ubuntu" ]; then
            echo "当前系统不是 Ubuntu,不支持此脚本"
            exit 1
      fi
    else
      echo "未能检测到系统信息文件 /etc/os-release"
      exit 1
    fi
# 检测系统版本和内核
detect_system() {
    echo
    echo "感谢使用咕噜云一键换源脚本"
    echo
    echo "注意仅支持:ubuntu14/16/18/20/22/23/24 AMD64架构版本"
    echo
    echo "如果安装的不是以上版本直接重装吧!"
    echo
    distributor_id=$(lsb_release -d -s)
    echo "系统: $distributor_id"
    release=$(lsb_release -r -s)
    echo "版本号: $release"
    jiagou=$(uname -m)
    echo "系统架构: $jiagou"
    kernel_version=$(uname -r)
    echo "内核版本: $kernel_version"
}

# 检测是否为 AMD64 架构
detect_amd64() {
    architecture=$(uname -m)
    if [[ "$architecture" != "x86_64" ]]; then
      echo
      echo "当前系统不是 AMD64 架构,不支持此脚本"
      exit 1
    fi
}

# 检测网络连接
check_network() {
    echo
    echo "正在检测与软件源站的网络连接..."

    # 清华大学源
    ping -c 3 mirrors.tuna.tsinghua.edu.cn >/dev/null 2>&1
    if [ $? -eq 0 ]; then
      echo "清华源连接正常"
    else
      echo "清华源连接失败"
      exit 1
    fi

    # 阿里云源
    ping -c 3 mirrors.aliyun.com >/dev/null 2>&1
    if [ $? -eq 0 ]; then
      echo "阿里源连接正常"
    else
      echo "阿里源连接失败"
      exit 1
    fi

    # 网易163源
    ping -c 3 mirrors.163.com >/dev/null 2>&1
    if [ $? -eq 0 ]; then
      echo "网易源连接正常"
    else
      echo "网易源连接失败"
      exit 1
    fi

    # 腾讯云源
    ping -c 3 mirrors.cloud.tencent.com >/dev/null 2>&1
    if [ $? -eq 0 ]; then
      echo "腾讯源连接正常"
    else
      echo "腾讯源连接失败"
      exit 1
    fi

    # 华为云源
    ping -c 3 mirrors.huaweicloud.com >/dev/null 2>&1
    if [ $? -eq 0 ]; then
      echo "华为源连接正常"
    else
      echo "华为源连接失败"
      exit 1
    fi
}

# 打印菜单
print_menu() {
    echo
    echo "请选择一个镜像站:"
    echo "1. 清华源"
    echo "2. 阿里源"
    echo "3. 网易163源"
    echo "4. 腾讯源"
    echo "5. 华为源"
    echo "0. 退出"
    echo
    echo "如不选择直接回车默认清华源,推荐清华源"
}

# 更新源函数
update_source() {
    case $1 in
      1)
            mirror_url="https://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
            ;;
      2)
            mirror_url="http://mirrors.aliyun.com/ubuntu/"
            ;;
      3)
            mirror_url="http://mirrors.163.com/ubuntu/"
            ;;
      4)
            mirror_url="https://mirrors.cloud.tencent.com/ubuntu/"
            ;;
      5)
            mirror_url="https://mirrors.huaweicloud.com/repository/ubuntu/"
            ;;
      *)
            echo "未选择镜像站,默认使用清华大学"
            mirror_url="https://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
            ;;
    esac

    echo "正在将源更新为所选镜像站..."
    # 删除原有的源文件
    sudo rm /etc/apt/sources.list
    # 生成新的源文件并写入
    echo "deb $mirror_url $(lsb_release -cs) main restricted universe multiverse" | sudo tee /etc/apt/sources.list
    echo "deb-src $mirror_url $(lsb_release -cs) main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
    echo "deb $mirror_url $(lsb_release -cs)-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
    echo "deb-src $mirror_url $(lsb_release -cs)-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
    echo "deb $mirror_url $(lsb_release -cs)-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
    echo "deb-src $mirror_url $(lsb_release -cs)-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list

    # 清除缓存
    sudo apt-get clean

    # 更新软件包索引
    sudo apt-get update

    # 升级系统
    sudo apt-get upgrade -y

    # 清理残余文件
    sudo apt-get autoremove -y

    # 检查是否成功更新源
    if [ $? -eq 0 ]; then
      echo "源已更新为所选镜像站"
      exit 0
    else
      echo "源更新失败,请检查网络连接"
      exit 1
    fi
}

# 主程序
detect_amd64
detect_system
check_network

while true; do
    print_menu
    read -p "请输入源编号数字后回车确认: " choice
    if [[ $choice == 0 ]]; then
      exit 0
    else
      update_source $choice
    fi
done



Debian一键换源脚本Debian 10/11/12多版本自动识别,脚本包含阿里源、网易源、腾讯源、清华源、华为源

bash <(curl -sL https://giie.cn/sh/Debian.sh)

直接使用上面命令即可运行脚本或者自行复制下面内容到服务器内执行

#!/bin/bash

# 备份原始软件源配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 国内软件源数组
declare -a repo_urls=(
    "http://mirrors.aliyun.com/debian/|阿里云"
    "http://mirrors.163.com/debian/|网易"
    "https://mirrors.cloud.tencent.com/debian/|腾讯"
    "https://mirrors.tuna.tsinghua.edu.cn/debian/|清华大学"
    "https://mirrors.huaweicloud.com/repository/debian/|华为云"
)

# 获取当前Debian系统版本
debian_version=$(awk -F'[= "]' '/VERSION_CODENAME/{print $3}' /etc/os-release)

# 根据系统版本选择对应的软件源
case $debian_version in
    "stretch")
      repo_index=3# 清华源
      ;;
    "buster")
      repo_index=3# 清华源
      ;;
    "bullseye")
      repo_index=4# 华为源
      ;;
    *)
      repo_index=0# 默认选择阿里云源
      ;;
esac

# 显示可用的软件源列表
echo "国内软件源列表:"
for ((i=0; i<${#repo_urls[@]}; i++)); do
    url=$(echo ${repo_urls[$i]} | cut -d '|' -f 1)
    name=$(echo ${repo_urls[$i]} | cut -d '|' -f 2)
    echo "$i. $name ($url)"
done

# 提示用户选择一个源
read -p "请选择要使用的软件源的编号 (默认为 $repo_index): " user_repo_index

# 如果用户选择了有效的编号,则更新 repo_index
if [[ $user_repo_index =~ ^+$ ]] && [ $user_repo_index -ge 0 ] && [ $user_repo_index -lt ${#repo_urls[@]} ]; then
    repo_index=$user_repo_index
fi

# 检测源是否正常
repo_url=$(echo ${repo_urls[$repo_index]} | cut -d '|' -f 1)
if ping -c 1 $(echo $repo_url | awk -F/ '{print $3}') &> /dev/null; then
    echo "源 $repo_url 可正常连接。"
else
    echo "源 $repo_url 无法连接,请检查网络连接。"
    # 尝试使用其他源进行更新
    for ((i=0; i<${#repo_urls[@]}; i++)); do
      alt_repo_url=$(echo ${repo_urls[$i]} | cut -d '|' -f 1)
      if ping -c 1 $(echo $alt_repo_url | awk -F/ '{print $3}') &> /dev/null; then
            echo "尝试使用备选源 $alt_repo_url 进行更新。"
            repo_url=$alt_repo_url
            break
      fi
    done
    if [ -z "$repo_url" ]; then
      echo "所有备选源均无法连接,请检查网络连接或稍后再试。"
      exit 1
    fi
fi

# 检查当前使用的源
current_source=$(grep -oP '(?<=^deb\s).+' /etc/apt/sources.list | awk '{print $2}' | cut -d '/' -f 3)
echo "当前使用的源:$current_source"

# 下载并替换为用户选择的软件源配置文件
sudo sed -i "s|http://[^ ]*|${repo_url}|g" /etc/apt/sources.list

# 清除缓存
sudo apt-get clean

# 更新软件包索引
sudo apt-get update

# 升级系统
sudo apt-get upgrade -y

# 清理残余文件
sudo apt-get autoremove -y

echo "软件源已经成功设置并更新完成。"


如使用不了自行修复或者使用其他方法换源,本脚本并不一定适合你使用,也不保证百分百可用。

ubuntu/debian一键安装谷歌浏览器、向日癸、ToDesk、百度网盘


一样随便写的不保证所有版本都可以安装

使用脚本前请先安装curl

apt -y install curl
bash <(curl -sL https://giie.cn/sh/ruanjian.sh)





qinyuhui 发表于 2023-8-3 16:08

200206083139 发表于 2023-8-3 15:57
老哥有没有centos的脚本呀

CentOS 7 阿里源、163、腾讯一键脚本

bash <(curl -sL https://giie.cn/sh/Centos-7.sh)

或者使用下面的
备份
cd /etc/yum.repos.d/
mkdir repo_bak
mv *.repo repo_bak/

下载新的CentOS-Base.repo 到/etc/yum.repos.d/

wget http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all
yum makecache

tslace 发表于 2023-8-3 15:44

在用ubuntu server 22.04,安装时都设置过阿里云了,不知道为啥装依赖时还是会因为网络问题连接超时,只能在安装指令后面指定源才可以。。。。
不知道楼主的脚本管用不管用,可以实现一劳永逸。。。

540151542 发表于 2023-8-3 15:36

我来试试

Ljz31707 发表于 2023-8-3 15:47

可以尝试尝试

200206083139 发表于 2023-8-3 15:57

老哥有没有centos的脚本呀

Pojawa 发表于 2023-8-3 16:18

之前都没想过把换源操作写成脚本 {:1_907:} 不过一次性的东西也确实不太想写

dreamrise 发表于 2023-8-3 16:20

有没有其他各种的,比如pip,npm,等等。

qinyuhui 发表于 2023-8-3 16:32

dreamrise 发表于 2023-8-3 16:20
有没有其他各种的,比如pip,npm,等等。

那没有呢{:301_978:}

200206083139 发表于 2023-8-4 08:47

qinyuhui 发表于 2023-8-3 16:08
CentOS 7 阿里源、163、腾讯一键脚本

bash

谢谢老哥我去试试去
页: [1] 2 3
查看完整版本: Ubuntu/Debian多版本自动识别一键换源脚本+一键安装谷歌浏览器和远程软件