#!/bin/bash

 #       、检查当前系统Python版本

 python_old_version=$(python -V >& | awk '{print $2}')
echo "当前系统Python版本为: $python_old_version" # 、检查当前系统网络连接,是否能够访问Python镜像站点 curl -s -k -I http://mirrors.sohu.com/python/ |grep '200 OK' >/dev/null
if [ $? != ]
then
echo 无法访问Python镜像站点,请检查网络连接
exit
fi # 、获取Python官方最新版本信息 python_last_27version=$(curl -s -k http://mirrors.sohu.com/python/ |awk -F '/|>' '{print $3}' |grep '^2.7.*' |sort -t '.' -k3 -n |tail -1)
echo "官方最新Python2.7版本为:$python_last_27version" # 、对比当前系统Python版本与官方最新版本号 if [ $python_old_version = $python_last_27version ]
then
echo '当前已是最新版本,无需升级'
exit
fi # 、下载最新版本Python安装包 yum install -y wget readline readline-devel
mkdir -p /tmp/python_tmp_dir
wget -P /tmp/python_tmp_dir/ http://mirrors.sohu.com/python/$python_last_27version/Python-$python_last_27version.tar.xz # 、解压Python源码包 tar xf /tmp/python_tmp_dir/Python-$python_last_27version.tar.xz -C /tmp/python_tmp_dir/ # 、编译前的准备工作:准备安装目录 mkdir -p /usr/local/python27
cd /tmp/python_tmp_dir/Python-$python_last_27version
./configure --prefix=/usr/local/python27 # 、编译并安装Python make -j$(cat /proc/cpuinfo | grep processor |wc -l) && make install # 、升级Python至官方最新版 mv /usr/bin/python /usr/bin/python$python_old_version
ln -s /usr/local/python27/bin/python /usr/bin/python # 、清理安装过程中产生的文件 rm -rf /tmp/python_tmp_dir/ # 、默认只升级python会导致yum不可用,此处自动修复该问题 sed -i '1s@#!/usr/bin/python@#!/usr/bin/python'$python_old_version'@' /usr/bin/yum
sed -i '1s@#!/usr/bin/python@#!/usr/bin/python'$python_old_version'@' /usr/libexec/urlgrabber-ext-down &>/dev/null
yum --version &>/dev/null && echo "Python 升级对 YUM 无影响" || echo "Python 升级导致 YUM 无法使用"

自动升级CentOS Python至官方最新版的更多相关文章

  1. 超级MINI STLINK V2 官方固件自动升级 ST-Link 【worldsing 笔记】

    简介: 支持所有带SWIM接口的STM8系列单片机 支持所有带SWD接口的STM32系列单片机 完全兼容Keil,STVP,STVD,IAR,COSMIC,STM32 ST-LINK Utility! ...

  2. CentOS 7.0 下 Python 2.7 升级到 Python 3.5

    前段因为时间工作需要,要把 Centos 7.0 默认安装的 Python 2.7 升级到 Python 3.5. 具体操作如下: # 安装 gcc gcc-c++ 等编译工具软件 yum insta ...

  3. 基于esky实现python应用的自动升级

    一.esky介绍 Esky is an auto-update framework for frozen Python applications. It provides a simple API t ...

  4. 关闭centos自动升级内核

    八.关闭Centos自动更新chkconfig --list yum-updatesd  #显示当前系统状态yum-updatesd    0:关闭  1:关闭  2:启用  3:启用  4:启用  ...

  5. 【转】【Mac系统】之Python版本切换、谷歌浏览器取消自动升级

    都是很有用的文章,本文都是转载文章,以便后续查阅: Mac Chrome浏览器取消自动升级(看这一篇就够了) <Mac修改默认python版本> <mac设置python版本切换,和 ...

  6. python使用selenium驱动chromium防止浏览器自动升级失效!

    python爬虫或者自动化项目中有时会用到selenium自动化测试框架,驱动chrom时由于谷歌浏览器自动升级,会造成驱动和浏览器版本不匹配问题,这时可以用到Chromium,这是谷歌推出用于开发目 ...

  7. Code First 迁移----官方 应用程序启动时自动升级(MigrateDatabaseToLatestVersion 初始值设定项)

    Code First 迁移 如果使用的是 Code First 工作流,推荐使用 Code First 迁移改进应用程序的数据库架构. 迁移提供一组允许以下操作的工具: 创建可用于 EF 模型的初始数 ...

  8. Ionic实战 自动升级APP(Android版)

    Ionic 框架介绍 Ionic是一个基于Angularjs.可以使用HTML5构建混合移动应用的用户界面框架,它自称为是"本地与HTML5的结合".该框架提供了很多基本的移动用户 ...

  9. 自动升级系统OAUS的设计与实现(续) (附最新源码)

    (最新OAUS版本请参见:自动升级系统的设计与实现(续2) -- 增加断点续传功能) 一.缘起 自从 自动升级系统的设计与实现(源码) 发布以后,收到了很多使用者的反馈,其中最多的要求就是希望OAUS ...

随机推荐

  1. 深度学习中 --- 解决过拟合问题(dropout, batchnormalization)

    过拟合,在Tom M.Mitchell的<Machine Learning>中是如何定义的:给定一个假设空间H,一个假设h属于H,如果存在其他的假设h’属于H,使得在训练样例上h的错误率比 ...

  2. let申明与const申明

    ES6新增了let命令,用来声明变时量. 它的用法类似于var 但是所声明的变量,只在let命令所在的代码块内有效. // for(let i = 0; i<10 ;i++ ){ console ...

  3. CRM模块

  4. ADOTable的CancelUpdate和CancelBatch的区别?(100分)

    出差新疆,修改别人的代码,请教CancelUpdate和CancelBatch的区别! 如果希望取消对当前记录所做的任何更改或者放弃新添加的记录,则必须调用CancelUpdate 方法CancelB ...

  5. ADODataSet与ADOQuery的区别

    ADODataSet组件  此组件功能是非常强大的,通过ADODataset,可以直接与一个表进行联接,也可以执行SQL语句,还可以执行存储过程,可以说集ADOTable. ADOQuery.   A ...

  6. Go语言之unsafe包介绍及使用

    unsafe内容介绍 type ArbitraryType int type Pointer *ArbitraryType func Sizeof(x ArbitraryType) uintptr f ...

  7. poj2115-C Looooops -线性同余方程

    线性同余方程的模板题.和青蛙的约会一样. #include <cstdio> #include <cstring> #define LL long long using nam ...

  8. VMware vCenter 6.0 安装及群集配置介绍

    一.介绍 VMware vCenter Server 提供了一个可伸缩.可扩展的平台,为虚拟化管理奠定了基础.可集中管理VMware vSphere环境,与其他管理平台相比,极大地提高了 IT 管理员 ...

  9. hdu1728 逃离迷宫

    给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位 ...

  10. Mysql 数据库 基础代码

    -- 创建数据库 CREATE DATABASE book; -- 创建作者表 CREATE TABLE authors( Id int not NULL, -- 作者编号 Fname VARCHAR ...