Debian 4.0(etch) 再び
(性懲りもなく)先日の件ですが。
古いバージョンのMySQLは割り切って最新版のMySQLを入れる事にしたんだけど、結局、古いバージョンのPHPがビルドできなくて、古いバージョンのコンパイラを用意するハメになりました。遠回りしすぎ。_| ̄|○
ソースからビルドするのも激しく面倒だったので、Debianパッケージのコンパイラをインストールして小細工をカマしました。apt-get万歳。
関連しそうな部分だけ抜粋しますが、こんな感じ。
apt-get install gcc apt-get install cpp apt-get install g++ apt-get install gcc-3.4 apt-get install cpp-3.4 apt-get install g++-3.4 apt-get install libgdbm3 apt-get install libgdbm-dev apt-get install libdb3 apt-get install libdb3-dev ln -s /usr/include/gdbm-ndbm.h /usr/include/ndbm.h ln -s /usr/lib/libgdbm_compat.a /usr/lib/libdbm_compat.a ln -s /usr/lib/libgdbm_compat.la /usr/lib/libdbm_compat.la ln -s /usr/lib/libgdbm_compat.so /usr/lib/libdbm_compat.so ln -s /usr/lib/libdbm_compat.a /usr/lib/libdbm.a ln -s /usr/lib/libdbm_compat.la /usr/lib/libdbm.la ln -s /usr/lib/libdbm_compat.so /usr/lib/libdbm.so ln -s /usr/lib/libdbm.a /usr/lib/libndbm.a ln -s /usr/lib/libdbm.la /usr/lib/libndbm.la ln -s /usr/lib/libdbm.so /usr/lib/libndbm.so mkdir "$HOME/gcc/3.4" mkdir "$HOME/gcc/3.4/bin" ln -s /usr/bin/gcc-3.4 "$HOME/gcc/3.4/bin/gcc" ln -s /usr/bin/gccbug-3.4 "$HOME/gcc/3.4/bin/gccbug" ln -s /usr/bin/cpp-3.4 "$HOME/gcc/3.4/bin/cpp" ln -s /usr/bin/g++-3.4 "$HOME/gcc/3.4/bin/g++" ln -s /usr/bin/gcov-3.4 "$HOME/gcc/3.4/bin/gcov" source "$HOME/.cshrc" setenv PATH "$HOME/gcc/3.4/bin":$PATH env OPTIM="-O2" EXTRA_LIBS="-R/usr/lib -L/usr/lib -lgdbm_compat" ./configure \ --prefix=/usr/local/apache \ --enable-module=digest \ --enable-module=auth_db \ --enable-module=auth_dbm \ --enable-module=auth_digest \ --enable-module=headers \ --enable-module=info \ --enable-module=rewrite \ --enable-module=so \ --enable-module=expires \ --enable-module=proxy \ --enable-module=speling \ --enable-module=usertrack \ --enable-module=vhost_alias \ --enable-module=status \ --enable-module=unique_id env CC=gcc CXX=gcc ./configure \ --prefix=/usr/local/mysql \ --localstatedir=/usr/local/mysql/data \ --with-charset=ujis \ --with-extra-charsets=all \ --with-unix-socket-path=/tmp/mysqld.sock \ --with-tcp-port=3306 \ --with-low-memory \ --enable-local-infile \ --with-innodb ./configure \ --prefix=/usr/local/pgsql ./configure \ --with-apxs=/usr/local/apache/bin/apxs \ --without-pear \ --enable-zend-multibyte \ --enable-mbstring \ --enable-mbregex \ --with-mysql=/usr/local/mysql \ --with-pgsql=/usr/local/pgsql \ --with-oci8=/usr/local/oracle \ --enable-sigchild \ --enable-dba \ --with-ndbm=/usr \ --with-gdbm=/usr \ --with-db3=/usr \ --with-openssl=/usr \ --with-mcrypt=/usr \ --with-mhash=/usr \ --with-gd=/usr \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-freetype-dir=/usr \ --with-zlib-dir=/usr \ --with-curl=/usr \ --with-dom=/usr \ --enable-ftp \ --enable-sockets \ --enable-bcmath \ --enable-calendar \ --with-zlib=/usr
Apache1.3系にauth_dbm機能を追加してビルドするのと、古いバージョンのMySQLとPHPのビルド(auth_dbmと連携する為に必要な機能を追加)が行えました。
こんなやり方が正当な方法なのか不明ですが、出来たので良しとしたい。。。それにしても、auth_dbmを認識させる部分は(かなり)離れ業のような気が。
ただ、古いコンパイラも(Debianパッケージ的に)永続的サポートが保障されている訳ではないので注意が必要。。。
公式CDを買うか全isoファイルを確保する等して(最悪の場合を想定して)逃げ道を確保しておくべきか。。。うーん。