CentOS 5.5 php5.3.6からphp5.2.17へyumでダウングレード

CentOS 5.5 php5.3.6からphp5.2.17へyumでダウングレード

remiリポジトリでphp5.3をyumでインストールしたけど、php5.2で動いていたスクリプトが動かない。
困るのでphpをダウングレードする。

php関連パッケージを調べる。

# yum list installed | grep php*
php.i386                               5.3.6-1.el5.remi                installed
php-cli.i386                           5.3.6-1.el5.remi                installed
php-common.i386                        5.3.6-1.el5.remi                installed
php-gd.i386                            5.3.6-1.el5.remi                installed
php-imap.i386                          5.3.6-1.el5.remi                installed
php-ldap.i386                          5.3.6-1.el5.remi                installed
php-mbstring.i386                      5.3.6-1.el5.remi                installed
php-mcrypt.i386                        5.3.6-1.el5.remi                installed
php-mysql.i386                         5.3.6-1.el5.remi                installed
php-pdo.i386                           5.3.6-1.el5.remi                installed
php-pear.noarch                        1:1.9.2-3.el5.remi              installed
php-pgsql.i386                         5.3.6-1.el5.remi                installed
php-xml.i386                           5.3.6-1.el5.remi                installed

# yum remove php*
だと、全てのパッケージが削除されない?ようなので、手動設定でパッケージを削除。

# yum remove php php-cli php-common php-gd php-imap php-ldap php-mbstring php-mcrypt php-mysql php-pdo php-pear php-pgsql php-xml

※ /etc/php.ini は /etc/php.ini.rpmsave として保存される。

RPMのバージョンを確認

  • 32bit http://rpms.famillecollet.com/enterprise/5/olds/i386/
  • 64bit http://rpms.famillecollet.com/enterprise/5/olds/x86_64/
  • remiにあるバージョンがphp5.2.17-1でした。
    RPMをダウンロードしてインストールする方法が紹介されているのだけれど、php-pdo をインストールする際にlibsqlite.so.0に依存していてインストール出来なかった。
    (php-mysql、php-pgsqlもphp-pdoに依存しているので両方インストール出来ない)
    という事で、yumのバージョン指定インストールで行ってみた。

    yumでバージョン指定してphpをインストール

    # yum install --enablerepo=remi php-common-5.2.17* php-cli-5.2.17* php-5.2.17*

    php関連モジュールをインストール

    # yum install --enablerepo=remi php-gd-5.2.17* php-imap-5.2.17* php-ldap-5.2.17* php-mbstring-5.2.17* php-mcrypt-5.2.17* php-mysql-5.2.17* php-pdo-5.2.17* php-pgsql-5.2.17* php-xml-5.2.17*

    すんなりインストール完了。
    当然ですが、remiリポジトリが導入されていることが前提です。

    失敗編

    以下はRPMパッケージをダウンロードしてインストールしてみたときのメモです。

    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-cli-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-common-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-gd-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-imap-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-ldap-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-mbstring-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-mcrypt-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-mysql-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-pdo-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-pgsql-5.2.17-1.el5.remi.i386.rpm
    wget http://rpms.famillecollet.com/enterprise/5/olds/i386/php-xml-5.2.17-1.el5.remi.i386.rpm
    # rpm -ivh php-common-5.2.17-1.el5.remi.i386.rpm
    # rpm -ivh php-cli-5.2.17-1.el5.remi.i386.rpm
    # rpm -ivh php-5.2.17-1.el5.remi.i386.rpm
    ※順番通りにインストールしないと依存関係でインストール出来ない
    # rpm -ivh php-gd-5.2.17-1.el5.remi.i386.rpm
    # rpm -ivh php-imap-5.2.17-1.el5.remi.i386.rpm
    # rpm -ivh php-ldap-5.2.17-1.el5.remi.i386.rpm
    # rpm -ivh php-mbstring-5.2.17-1.el5.remi.i386.rpm
    # rpm -ivh php-mcrypt-5.2.17-1.el5.remi.i386.rpm
    # rpm -ivh php-xml-5.2.17-1.el5.remi.i386.rpm
    ※順番はないと思われる
    # rpm -ivh php-pdo-5.2.17-1.el5.remi.i386.rpm
    エラー: 依存性の欠如:
    	libsqlite.so.0 は php-pdo-5.2.17-1.el5.remi.i386 に必要とされています

    sqliteに入っているらしい。
    バージョンを合わせる必要がある。
    ※yumでインストールした時にsqlite2がインストールされたので、それに入っているのかも。当環境ではsqlite3のみがインストールされていたので。

    ここで挫折。yumでのインストールに切り替える。

    参考:
    php 5.3.0からphp 5.2.10にダウングレード - KENCOM.BIZ
    CentOS5.5でPHP5.3を5.2にダウングレードする - 見果てぬ夢