python脚本实现源码安装python2/3

1.选择python来编写脚本的原因:
  • python含有大量的第三方库,调用起来很方便
  • python语言简单明了
思考:对比便可以明白为什么大规模企业更愿意用python,而不用shell
     shell实现起来语法过于繁琐,且代码量大
2.编码思路
  • 1)先判断是不是root用户,root才可以进行软件的安装
  • 2)交互式请求,询问root用户要安装哪个版本的python,现提供2/3
  • 3)将源码编译过程中可能出现的问题进行if判断分析,比如下载源码包的过程网络出现故障,比如安装过程出现依赖包的问题
3.源代码
#!/usr/bin/env python
#coding=utf-8
import os
import sys 

if os.getuid() == 0:
    pass
else:
    print '当前用户不是root用户,请以root用户执行脚本~'
    sys.exit(1)

version = raw_input('请输入你想要安装的python版本(2.7/3.5)')
if version == '2.7':
    url = 'https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz'
elif vesion == '3.5':
    url = 'https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz'
else:
    print '您输入的版本号有误,请输入:2.7/3.5'
    sys.exit(1)
cmd = 'wget '+url
res = os.system(cmd)
if res != 0:
        print '下载源码包失败,请检查网络'
        sys.exit(1)

if version == '2.7':
    package_name = 'Python-2.7.12'
else:
    package_name = 'Python-3.5.2'
cmd = 'tar xf '+package_name+'.tgz'
res = os.system(cmd)
if res != 0:
    os.system('rm '+package_name+'tgz')
    print '解压源码包失败,请重新运行这个脚本下载源码包'
    sys.exit(1)
cmd = 'cd '+package_name+' && ./configure --prefix=/usr/local/python && make && make install'
res = os.system(cmd)
if res != 0:
    print '编译python源码失败,请检查是否缺少依赖库'
    sys.exit(1)
4.运行结果
//非root用户执行脚本
[kiosk@python2 shell]$ python 1.py 
当前用户不是root用户,请以root用户执行脚本~
//root用户执行脚本
[root@python2 shell]# python 1.py 
请输入你想要安装的python版本(2.7/3.5)2.7
--2018-01-30 22:48:54--  https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
Resolving www.python.org (www.python.org)... 151.101.24.223, 2a04:4e42:6::223
Connecting to www.python.org (www.python.org)|151.101.24.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16935960 (16M) [application/octet-stream]
Saving to: ‘Python-2.7.12.tgz8% [======>                ] 1,521,498    151KB/s  eta 89s
……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值