ubuntu10将php5.3改为5.2版
2010-10-20 10:50:44 阿炯

Ubuntu 10.04的PHP版本是5.3,兼容性问题一堆,要换回稳定的5.2,这里的方法是安装9.10的PHP 5.2。

一、修改当前源为ubuntu 9.10的源(版本越近越好)
# cd /etc/apt/
# cp sources.list sources.list.lucid    将当前使用的源文件备份
# wget http://mirrors.163.com/.help/sources.list.karmic -O /etc/apt/sources.list
如果你对源码包不感兴趣的话可将源文件中的'deb-src'行去掉,觉得在更新源慢的话也可以将'archive.ubuntu.com'的源去掉。
# apt-get update

二、查看并卸载相关的php包
1、查看已安装的php包
# dpkg -l | grep php| awk '{print $2}'>instd.pak

将上面所输出的软件包全部卸载(注意)
# for i in `dpkg -l | grep php| awk '{print $2}'`; do echo $i && aptitude purge -y $i; done

安装5.2版本的软件包
# for i in `more instd.pak`; do echo $i && apt-get install -y $i; done

# php -v
PHP 5.2.10-2ubuntu6.5 with Suhosin-Patch 0.9.7 (cli) (built: Sep 16 2010 19:48:40)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

已经将php5.2安装好了。
现可以切换回 lucid源,但在更新软件时注意不要升级php,或将php锁定版本在5.2。

锁定php软件包:
--------------------------------------
echo -e "Package: php5\nPin: release a=karmic\nPin-Priority: 991\n" | sudo tee /etc/apt/preferences.d/php > /dev/null

apt-cache search php5-|grep php5-|awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'|sudo tee -a /etc/apt/preferences.d/php > /dev/null

apt-cache search -n libapache2-mod-php5 |awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'| sudo tee -a /etc/apt/preferences.d/php > /dev/null

echo -e "Package: php-pear\nPin: release a=karmic\nPin-Priority: 991\n" | sudo tee -a /etc/apt/preferences.d/php > /dev/null

--------------------------------------
apt-get update
aptitude install -t karmic php5-cli php5-cgi
aptitude hold `dpkg -l | grep php5| awk '{print $2}' |tr"\n" " "`