Linux从入门到精通—— 一键替换主流 Centos 版本国内(阿里云、华为云、腾讯云)yum和epel源
一键替换主流 Centos 版本国内(阿里云、华为云、腾讯云)yum和epel源
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | #!/bin/bash get_release_version() { cat /etc/redhat-release | awk '{match($0,"release "); print substr($0,RSTART+RLENGTH)}' | awk -F '.' '{print $1}' } update_yum_source() { local start_time=$( date +%s%N) local version=$1 local provider=$2 local repo_url= "" local backup_dir= "/etc/yum.repos.d/backup" local backup_file= "$backup_dir/CentOS-Base.repo.bak.$(date +%Y%m%d%H%M%S)" mkdir -pv "$backup_dir" [ -f "/etc/yum.repos.d/CentOS-Base.repo" ] && mv "/etc/yum.repos.d/CentOS-Base.repo" "$backup_file" || true case $provider in aliyun) case $version in 6) wget_repo https: //mirrors .aliyun.com /repo/Centos-vault-6 .10.repo if host mirrors.cloud.aliyuncs.com > /dev/null 2>&1; then echo -e "\033[32m是阿里云ECS实例,YUM源已成功更新为阿里云内网YUM源地址...\033[0m" else sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum .repos.d /CentOS-Base .repo echo -e "\033[32m非阿里云ECS实例,YUM源已成功更新为阿里云外网YUM源地址...\033[0m" fi ;; 7) wget_repo https: //mirrors .aliyun.com /repo/Centos-7 .repo if host mirrors.cloud.aliyuncs.com > /dev/null 2>&1; then echo -e "\033[32m是阿里云ECS实例,YUM源已成功更新为阿里云内网YUM源地址...\033[0m" else sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum .repos.d /CentOS-Base .repo echo -e "\033[32m非阿里云ECS实例,YUM源已成功更新为阿里云外网YUM源地址...\033[0m" fi ;; 8) if host mirrors.cloud.aliyuncs.com > /dev/null 2>&1; then wget_repo http: //mirrors .cloud.aliyuncs.com /repo/Centos-vault-8 .5.2111.repo sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum .repos.d /CentOS-Base .repo && sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum .repos.d /CentOS-Base .repo && sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum .repos.d /CentOS-Base .repo echo -e "\033[32m是阿里云ECS实例,YUM源已成功更新为阿里云内网YUM源地址...\033[0m" else wget_repo https: //mirrors .aliyun.com /repo/Centos-vault-8 .5.2111.repo echo -e "\033[32m非阿里云ECS实例,YUM源已成功更新为阿里云外网YUM源地址...\033[0m" fi ;; *) echo "当前尚不支持此 CentOS 版本:$version,未来有时间将会进行补充。如有需要,请发送邮件至 zuoyangs@qq.com。" exit 1 ;; esac ;; huaweicloud) echo "准备更新为华为云YUM源..." wget_repo "https://mirrors.huaweicloud.com/repository/conf/CentOS-${version}-anon.repo" ;; tencent) case $version in 5) wget_repo "http://mirrors.cloud.tencent.com/repo/centos5_base.repo" ;; 6) wget_repo "http://mirrors.cloud.tencent.com/repo/centos6_base.repo" ;; 7) wget_repo "http://mirrors.cloud.tencent.com/repo/centos7_base.repo" ;; 8) wget_repo "http://mirrors.cloud.tencent.com/repo/centos8_base.repo" ;; *) echo "当前尚不支持此 CentOS 版本:$version,未来有时间将会进行补充。如有需要,请发送邮件至 zuoyangs@qq.com。" exit 1 ;; esac ;; *) echo "未知的云服务提供商: $provider" exit 1 ;; esac } wget_repo() { local repo_url=$1 echo -e "\033[33m正在从 $repo_url 下载YUM源配置文件...\033[0m" if ! wget -O /etc/yum .repos.d /CentOS-Base .repo "$repo_url" ; then echo -e "\033[31m执行 wget 失败,请检查网络连接或URL是否正确。\033[0m" # 红色错误信息 exit 1 else echo -e "\033[32mYUM源配置文件已成功下载并保存到 /etc/yum.repos.d/CentOS-Base.repo\033[0m" fi } pre_install() { local start_time=$( date +%s%N) if command - v wget &> /dev/null ; then : else echo "wget 没有预安装,准备安装 wget" yum install wget -y > /dev/null 2>&1 echo "已安装好 wget" fi local end_time=$( date +%s%N) local duration=$((end_time - start_time)) print_duration $duration "pre_install 函数执行耗时:" } print_duration() { local duration_ns=$1 local prefix=$2 if [ -z "$prefix" ]; then prefix= "执行耗时:" fi if [ $duration_ns -gt 1000000000 ]; then duration_s=$(($duration_ns / 1000000000)) echo "${prefix}${duration_s}秒" else duration_ms=$(($duration_ns / 1000000)) echo "${prefix}${duration_ms}毫秒" fi } main() { local start_time=$( date +%s%N) echo "当前时间:$(date +'%Y-%m-%d %H:%M:%S')" pre_install local version=$(get_release_version) local provider=$1 update_yum_source "$version" "$provider" yum clean all yum makecache yum install -y epel-release local end_time=$( date +%s%N) local duration=$((end_time - start_time)) print_duration $duration "main 函数执行总耗时:" } # 检查是否以 root 用户运行 if [ "$(id -u)" != "0" ]; then echo "该脚本必须以root用户运行" 1>&2 exit 1 fi if [[ $ # -eq 0 ]]; then echo "用法: $0 {aliyun|huaweicloud}" exit 1 fi main $1 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2023-06-28 Kubernetes编程——client-go基础—— Watch
2023-06-28 Kubernetes编程——client-go基础—— ObjectMeta
2023-06-28 Kubernetes编程——client-go基础—— TypeMeta
2023-06-28 Kubernetes编程——client-go基础—— Go语言中的 Kubernetes 对象介绍
2023-06-28 Kubernetes编程——client-go基础—— 修改客户端默认支持 Protobuf
2018-06-28 【SaltStack官方版】—— Events&Reactor系统—BEACONS