您的位置:首页 > 其它

阿里云 yum无法正常使用的解决办法

2013-06-12 16:07 393 查看
解决了什么问题:一键式更新yum源,省去了复杂的命令和步骤



注:所有执行的脚本都需要root身份来执行,执行方法:以root身执行命令:bash xxx.sh

功能:更新系统的yum源为163的yum源

适用系统版本:线上centos5/6系列,redhat5系列,兼容32位和64位

执行方法:以root身执行命令,bash update_yum_source.sh

博客不能上传文件,就把代码粘贴到下面吧。

#!/bin/bash

#########################################

#Function: update yum source

#Usage: bash update_yum_source.sh

#Author: Customer service department

#Company: Alibaba Cloud Computing

#Version: 2.1

#########################################

check_os_release()

{

while true

do

os_release=$(grep "Red Hat Enterprise Linux Server release" /etc/issue 2>/dev/null)

os_release_2=$(grep "Red Hat Enterprise Linux Server release" /etc/redhat-release 2>/dev/null)

if [ "$os_release" ] && [ "$os_release_2" ]

then

echo "$os_release"

break

fi

os_release=$(grep "CentOS release" /etc/issue 2>/dev/null)

os_release_2=$(grep "CentOS release" /etc/*release 2>/dev/null)

if [ "$os_release" ] && [ "$os_release_2" ]

then

echo "$os_release"

break

fi

break

done

}

modify_rhel5_yum()

{

rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5
cd /etc/yum.repos.d/

wget http://mirrors.163.com/.help/CentOS-Base-163.repo -O CentOS-Base-163.repo

sed -i '/mirrorlist/d' CentOS-Base-163.repo

sed -i 's/\$releasever/5/' CentOS-Base-163.repo

yum clean metadata

yum makecache

cd ~

}

modify_rhel6_yum()

{

rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
cd /etc/yum.repos.d/

wget http://mirrors.163.com/.help/CentOS-Base-163.repo -O CentOS-Base-163.repo

sed -i '/mirrorlist/d' CentOS-Base-163.repo

sed -i '/\[addons\]/,/^$/d' CentOS-Base-163.repo

sed -i 's/\$releasever/6/' CentOS-Base-163.repo

sed -i 's/RPM-GPG-KEY-CentOS-5/RPM-GPG-KEY-CentOS-6/' CentOS-Base-163.repo

yum clean metadata

yum makecache

cd ~

}

##########start######################

#check lock file ,one time only let the script run one time

LOCKfile=/tmp/.$(basename $0)

if [ -f "$LOCKfile" ]

then

echo -e "\033[1;40;31mThe script is already exist,please next time to run this script.\n\033[0m"

exit

else

echo -e "\033[40;32mStep 1.No lock file,begin to create lock file and continue.\n\033[40;37m"

touch $LOCKfile

fi

#check user

if [ $(id -u) != "0" ]

then

echo -e "\033[1;40;31mError: You must be root to run this script, please use root to install this script.\n\033[0m"

rm -rf $LOCKfile

exit 1

fi

os_type=$(check_os_release)

if [ "X$os_type" == "X" ]

then

echo -e "\033[1;40;31mOS type is not RedHat or CentOS,So this script is not executede.\n\033[0m"

rm -rf $LOCKfile

exit 0

else

echo -e "\033[40;32mThis OS is $os_type.\033[40;37m"

echo "$os_type" |grep 5 >/dev/null

if [ $? -eq 0 ]

then

modify_rhel5_yum

rm -rf $LOCKfile

exit 0

fi

echo "$os_type"|grep 6 >/dev/null

if [ $? -eq 0 ]

then

modify_rhel6_yum

rm -rf $LOCKfile

exit 0

fi

fi

rm -rf $LOCKfile
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: