前言:
自己会创建很多的虚拟机来模拟真实情况,从而每次在每个虚拟机会做很多重复的工作,从而使用shell脚本来简化,此次是因为每次都要升级python到2.7版本,从而写出下面的shell。
在安装软件的时候,将所有需要安装的软件放在单独的目录install中,便于规范整理,例如如下:
[root@Bserver install]# ls -l
total 25988
-rw-r--r-- 1 root root 7700057 Sep 19 11:19 Django-1.10.1.tar.gz
-rw-r--r-- 1 root root 108935 Sep 19 11:19 MySQL-python-1.2.5.zip
-rw-r--r-- 1 root root 1138794 Sep 19 11:19 pip-8.1.0.tar.gz
-rw-r--r-- 1 root root 16856409 Sep 19 11:19 Python-2.7.11.tgz
-rw-r--r-- 1 root root 793737 Sep 19 11:19 setuptools-7.0.tar.gz
-rw-r--r-- 1 root root 1512 Sep 19 11:19 upgradepython.sh
在进行执行脚本的时候,直接使用sh upgradepython.sh执行即可,分别的步骤如下:
检查需要安装的包是否安装,如果没有安装,那么直接使用yum进行安装
安装python,这个大约需要六分钟时间
将python进行链接,并且解决yum不能使用的问题
安装setuptools
安装pip
安装Django
安装mysql模块
将mysql设置开机启动并启动
打印Django版本
脚本内容如下:测试可以使用,并且可以直接使用django,然后运行测试,可以修改settings,然后使用mysql数据库:
#!/bin/bash
#filename:upgradepython.sh
#date:2016/09/19
#version:1.0
#author:kel
INSTALLPATH=/server/install/
#check the package
echo "check the package"
for i in python-devel readline-devel sqlite-devel bzip2-devel openssl-devel ncurses-devel zlib-devel readline sqlite bzip2 openssl libdbi ncurses zlib gdbm MySQL-python mysql-server mysql-devel
do
result=`rpm -qa $i`
if [ ! -n "$result" ]
then
yum -y install $i &>/dev/null
else
echo "--$i is install --"
fi
done
#install python
echo "install python ,will take six minutes,smoking now..."
cd $INSTALLPATH && tar -zxvf Python-* &>/dev/null && cd Python-* && ./configure --prefix=/usr/local/python &>/dev/null && make &>/dev/null && make install &>/dev/null && echo "python is installed /usr/local/python"
sed -i "1s/python/python2.6/" /usr/bin/yum
mv /usr/bin/python /usr/bin/python2.6.bak
ln -s /usr/local/python/bin/python /usr/bin/python
cd $INSTALLPATH && tar -zxvf setuptools-* &>/dev/null && cd setuptools-* && python setup.py install &>/dev/null && echo "setuptools is installed"
cd $INSTALLPATH && tar -zxvf pip-* &>/dev/null && cd pip-* && python setup.py install &>/dev/null && cd .. && echo "pip is installed"
cd $INSTALLPATH && tar -zxvf Django-* &>/dev/null && cd Django-* && python setup.py install &>/dev/null &&echo "django is installed"
cd $INSTALLPATH && unzip MySQL-python-* &>/dev/null && cd MySQL-python-* && python setup.py install &>/dev/null &&echo "mysqldb installed"
chkconfig mysqld on
/etc/init.d/mysqld start &>/dev/null
echo "the django version is `python -m django --version`"
主要目的是为了在新建虚拟机之后,只要上传安装的文件,然后执行脚本即可,提供便利性。