linux python 2.7.13 自动化安装脚本
包含python 2.7.13安装,pip安装,pip配置为阿里源,安装更新python后yum 问题:ImportError: No module named urlgrabber.grabber 的处理
#!/bin/bash
#
#
#####################################################
PATH=$PATH:$HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH
useroot()
{
check_user=`whoami`
if [ "$check_user" == "root" ]
then
echo "user is root"
else
echo "ERROR: user is ${check_user} ,not user root ,please use root"
exit 1
fi
}
list_info()
{
clear
echo
cat << EOF
#######*#######*#######*#######*#######*#######*#######*#######*#######*#######*#######
# WELCOME TO USE #
# NOTE: This script is suitable for CentOS 7 server Install python version 2.7.13 #
# IF YOU HAVE PROBLEAMS WHERE USE , PLEASE CALL ME #
# AUTHOR: COMPREL #
#######*#######*#######*#######*#######*#######*#######*#######*#######*#######*#######
---------------------------------------------------------------------------------------
Install python 2.7.13
---------------------------------------------------------------------------------------
EOF
}
pre_install()
{
yum install -y gcc zlib-devel bzip2-devel openssl-devel ncurses-devel |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
CHK_GCC=`rpm -qa | grep -w -c gcc`
if [ ${CHK_GCC} -le 1 ];then
echo "ERR : yum package gcc no ok..." |tee /tmp/install_python2.7.13.log
echo "NOTE : pls check network yum and etc.." |tee /tmp/install_python2.7.13.log
echo
exit 1
else
echo "message : yum gcc ok." |tee /tmp/install_python2.7.13.log
fi
wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
sleep 1
if [ -f Python-2.7.13.tgz ] ; then
echo
echo "message: get file Python-2.7.13.tgz complete.continue.." |tee /tmp/install_python2.7.13.log
else
echo "ERR : not get file from https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz " |tee /tmp/install_python2.7.13.log
exit 1
fi
}
install_python()
{
mkdir /usr/local/python2.7.13
echo "message: mkdir /usr/local/python2.7.13" |tee /tmp/install_python2.7.13.log
echo "message: tar get file ." |tee /tmp/install_python2.7.13.log
tar -zxvf Python-2.7.13.tgz |tee /tmp/install_python2.7.13.log >/dev/null
cd Python-2.7.13
echo "message: configure --prefix=/usr/local/python2.7.13" |tee /tmp/install_python2.7.13.log
echo "please wait ... " |tee /tmp/install_python2.7.13.log
./configure --prefix=/usr/local/python2.7.13 |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
echo "configure complete,continue..." |tee /tmp/install_python2.7.13.log
echo "message: make && make install" |tee /tmp/install_python2.7.13.log
echo "please wait ... " |tee /tmp/install_python2.7.13.log
make && make install |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
echo "make && make install complete,continue..." |tee /tmp/install_python2.7.13.log
echo "mv /usr/bin/python /usr/bin/python-bak" |tee /tmp/install_python2.7.13.log
mv /usr/bin/python /usr/bin/python-bak
echo "ln -s /usr/local/python2.7.13/bin/python2 /usr/bin/python" |tee /tmp/install_python2.7.13.log
ln -s /usr/local/python2.7.13/bin/python2 /usr/bin/python
echo "rename python and create ln complete." |tee /tmp/install_python2.7.13.log
echo "change yum trouble" |tee /tmp/install_python2.7.13.log
sed -i "s/python/python-bak/" /usr/libexec/urlgrabber-ext-down
sed -i "s/python/python-bak/" /usr/bin/yum
echo "sed /usr/libexec/urlgrabber-ext-down /usr/bin/yum complete " |tee /tmp/install_python2.7.13.log
sleep 1
yum -y install gcc
if [ $? -eq 0 ];then
echo "change yum ok" |tee /tmp/install_python2.7.13.log
echo "install python 2.7.13 ok" |tee /tmp/install_python2.7.13.log
else
echo "change yum failed" |tee /tmp/install_python2.7.13.log
echo "install python 2.7.13 failed" |tee /tmp/install_python2.7.13.log
echo "rollback,please wait.." |tee /tmp/install_python2.7.13.log
sed -i "s/python-bak/python/" /usr/libexec/urlgrabber-ext-down
sed -i "s/python-bak/python/" /usr/bin/yum
mv /usr/bin/python /usr/bin/python-2.7.13
rm -rf /usr/bin/python-2.7.13
mv /usr/bin/python-bak /usr/bin/python
echo "rollback complete " |tee /tmp/install_python2.7.13.log
echo "NOTE : you can check /tmp/install_python2.7.13.log "
exit 1
fi
}
install_pip()
{
echo "install pip ,please wait.." |tee /tmp/install_python2.7.13.log
mkdir ~/.pip/
yum -y install epel-release |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
yum install python-pip |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
yum clean all |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
echo "install pip complete . checking " |tee /tmp/install_python2.7.13.log
echo "use ali pypi " |tee /tmp/install_python2.7.13.log
echo '[global]' > ~/.pip/pip.conf
echo 'index-url = http://mirrors.aliyun.com/pypi/simple/' >> ~/.pip/pip.conf
echo " " >> ~/.pip/pip.conf
echo '[install]' >> ~/.pip/pip.conf
echo 'trusted-host=mirrors.aliyun.com' >> ~/.pip/pip.conf
pip install flask |tee /tmp/install_python2.7.13.log >/dev/null
if [ $? -eq 0 ];then
echo "install pip ok " |tee /tmp/install_python2.7.13.log
else
echo "install pip failed,please check /tmp/install_python2.7.13.log" |tee /tmp/install_python2.7.13.log
exit 1
fi
}
main()
{
list_info
useroot
pre_install
install_python
install_pip
echo "NOTE : log file /tmp/install_python2.7.13.log"
}
main