ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!

2021-06-10 13:57:44  阅读:207  来源: 互联网

标签:shell dev echo repo yum 下载安装 033 0m


yum本地源兼yum阿里源

1. 编写脚本情况分析

  1. 可以对官方源进行判断,然后选择是否做备份;
  2. 可以选择配置本地源、阿里源或者同时兼备;
  3. 设置的第一优先级为:yum本地源;
  4. 任一环节出现问题都会退出脚本。

2. 脚本代码部分

#!/bin/bash
# 一键部署yum本地源、阿里源或同时兼备
# anthor:cheng
# 2021年 06月 010日 星期三 13:15:26 CST

# 备份官方yum源
backup (){
    if ls /etc/yum.repos.d/ | grep repo.bak &> /dev/null
    then
        mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak/
    else
        mkdir /etc/yum.repos.d/repo.bak/
        mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak/
    fi
}

# 配置本地yum源
yumm(){
    echo -e "[local]\nname=local\nbaseurl=file:///mnt\nenable=1\ngpgcheck=0" > /etc/yum.repos.d/local.repo
}


# 配置阿里yum源
ali () {
echo -e "\033[35;5m 正在下载阿里yum源,请稍等............ \033[0m"
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
}

# 对光盘进行挂载
cdmount(){
    # 如果光盘被挂载就解挂重新挂,没有就进行挂载
    if df -h | grep /dev/sr0 &> /dev/null
    then
        umount /dev/sr0 
        mount /dev/cdrom /mnt &> /dev/null
	echo -e '\033[36m 光盘已挂载至/mnt目录!\033[0m'
    else
        mount /dev/cdrom /mnt &> /dev/null
        if [ $? -ne 0 ]
        then
            echo "光盘不存在,检查是否加载镜像,状态是否已连接!"
            exit
        fi
    fi
}

# yum缓存清除并重新建立
clean (){
if yum clean all &> /dev/null
then
    if yum makecache &> /dev/null
    then
	echo -e '\033[33m yum缓存已清除并重新建立!可以正常安装程序!\033[0m'
    else
        echo "yum缓存建立失败!"
    fi
else
    echo "yum缓存清除失败......"        
fi
}


choose(){
	echo -e '\033[33m 输入对应的[数字]选择yum源!\033[0m'
        read -p "本地源[1]|阿里源[2]|同时配置[3]退出[任意] :" rd
        case $rd in
        "1")
			backup
			yumm
			cdmount
			clean
	   		echo -e '\033[33m 本地源已配置完成!\033[0m'
        ;;
        "2")
		backup
			ali
			clean
	    	echo -e '\033[33m 阿里官方源已配置完成!\033[0m'
        ;;
        "3")
			backup
			ali
		if  (rpm -q yum-plugin-priorities.noarch) &> /dev/null
		then
		    continue
		else
    		yum install -y yum-plugin-priorities.noarch &> /dev/null
		    if [ $? -eq 0 ];then
        		continue
    		else
        		echo -e \"yum-plugin-priorities.noarch\"安装失败
			exit
		    fi
		fi
		yumm
		echo -e "priority=3\n[epel]\nname=epel\nbaseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/\nenabled=1\ngpgcheck=0\npriority=2" >> /etc/yum.repos.d/local.repo 
		cdmount
		clean
	  echo -e '\033[33m 本地源和阿里官方源已配置完成!(优先本地源)\033[0m'
        ;;
        *)
	    echo -e '\033[33m 脚本已退出.....\033[0m'
        esac
}


echo -e '\033[33m -----------正常网络测试中--------------\033[0m'
if  ping -c 3  baidu.com &> /dev/null
then
    if ls /etc/yum.repos.d/ | grep CentOS-Base.repo &> /dev/null
    then
		choose
    else
		echo -e '\033[33m 网络正常,官方在线源不存在!\033[0m'
		choose
    fi
else
    echo -e '\033[33m 网络异常....配置本地源!\033[0m'
    backup
    yumm
    cdmount
    clean
fi

3. 实验部分

3.1 配置本地源

在这里插入图片描述
在这里插入图片描述

3.2 配置阿里源

在这里插入图片描述

3.3 同时配置本地源和阿里源

在这里插入图片描述
在这里插入图片描述

标签:shell,dev,echo,repo,yum,下载安装,033,0m
来源: https://blog.csdn.net/weixin_45551608/article/details/117753515

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有