本文发布已超过一年,其中的内容可能已经过时。
出于某些原因,某台低配VPS上面只能使用 CentOS 5.8 系统,但是 el5 系列的 python 版本只更新到了 2.4.3 而需要运行的应用建议使用 2.6.x 系列,所以设法更新python版本。
找了好几处不同的网站,最后综合起来达到了想要的效果:非编译安装 python 2.6 并通过 yum 管理,同时系统全局默认使用 2.6 版本替代 2.4.3
对于刚安装好的vps来说,当然要更新系统至最新。然后我们来更新python.
python是一个系统级的依赖包,没有办法卸掉(要不然很多东西都不能用了),于是只能用第三方提供的二进制包了,这里我用的是 Fedora 维护的 EPEL 源,同时还需添加 RPMForge 源以满足依赖关系。
首先安装第三方源:
1 2 |
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm |
然后安装 python26 包:
1 |
yum install python26 |
这个包可以让系统自带的2.4和新版本的2.6共存。
装好过后运行 python26 应该就能出来了,不过我还想让它全局替换掉2.4
找到的方法很简单,只要这样就行:
1 2 3 |
mkdir -p ~/bin ln -s /usr/bin/python26 ~/bin/python export PATH=~/bin:$PATH |
但是,重启过后 path 又还原了。怎么才能“永久性”替换 python 命令呢?
反正就是说要在系统启动的时候设置好全局变量就行,一番搜索过后找到了方法。
在 /etc/profile.d/
目录下存储了系统会在启动时自动初始化的脚本,所以在这里进行上面用到的 path 的设置就行了。
1 2 |
cd /etc/profile.d/ vi python26.sh |
因为之前用的是root用户,所以在文件中写入:
1 |
export PATH=/root/bin:$PATH |
然后以防万一给加上执行权限:
1 |
chmod +x python26.sh |
顺便提一下,直接把这一句写到 /etc/rc.local
貌似是没有用的。
重启过后立刻执行 python 命令,可以看到是调用的 2.6 版本了:
1 2 3 4 5 |
[root@wiki ~]# python Python 2.6.8 (unknown, Apr 12 2012, 20:59:00) [GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> |
现在只是更新好系统,还不清楚安装上 app 过后是调用哪个版本的 python, 确认之后会在此更新。