2009年11月22日

CentOS5.4でPHP5.3のrpmを作ってみた

ちょこっと苦労したのでメモ代わりに。
fedoraのsrc.rpmから作成したので、何かとfedoraで使われているライブラリとか
パッケージをbuildしました。
各ライブラリやらツール群を本家から最新版をダウンロード、コンパイル、インストールでも良かったのですが、
rpmパッケージで管理した方が何かと便利なので、rpmパッケージを作成&インストールという事で頑張ってみました。

 
まずはrpmパッケージ開発環境の準備
$ sudo yum groupinstall "Development Tools"
$ sudo yum groupinstall "Development Libraries"
$ sudo yum install -y pcre-devel distcache-devel tcl-devel libXt-devel gtk2-devel xinetd gcc-java emacs
 
$ mkdir -p ~/rpm/{BUILD,SOURCES,SPECS,SRPMS,RPMS/{i386,i586,i686,x86_64,noarch}}
$ echo "%_topdir $HOME/rpm" > ~/.rpmmacros
エラーメッセージを取っておくの忘れちゃったけど、ライブラリ周りで足りないものがあったから
シンボリックリンクを作成します。
rpmパッケージを作成する時に、これまたエラーが出たので"%define _unpackaged_files_terminate_build 0"も追加。
$ sudo ln -s /lib/libuuid.so.1 /lib/libuuid.so
$ wget http://ftp.jaist.ac.jp/pub/Linux/CentOS/5/os/SRPMS/apr-util-1.2.7-7.el5_3.2.src.rpm
$ rpm -ivh apr-util-1.2.7-7.el5_3.2.src.rpm
$ cd ~/rpm/SPECS/
$ vi apr-util.spec
  3 %define _unpackaged_files_terminate_build 0
 77         --with-expat=builtin \
$ rpmbuild -bb --target=x86_64 --clean apr-util.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh apr-util-1.2.7-7.2.x86_64.rpm apr-util-devel-1.2.7-7.2.x86_64.rpm
ここからPHP5.3に必要なライブラリを片っ端から作成&インストールしていきます。
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/sqlite-3.6.17-1.fc12.src.rpm
$ rpm -ivh --nomd5 sqlite-3.6.17-1.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean sqlite.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -Fvh sqlite-3.6.17-1.x86_64.rpm sqlite-devel-3.6.17-1.x86_64.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/t1lib-5.1.2-5.fc12.src.rpm
$ rpm -ivh --nomd5 t1lib-5.1.2-5.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean t1lib.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh t1lib-5.1.2-5.x86_64.rpm t1lib-devel-5.1.2-5.x86_64.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/malaga-7.12-6.fc12.src.rpm
$ rpm -ivh --nomd5 malaga-7.12-6.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean malaga.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh malaga-7.12-6.x86_64.rpm malaga-devel-7.12-6.x86_64.rpm libmalaga-7.12-6.x86_64.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/malaga-suomi-voikko-1.4-0.3.rc3.fc12.src.rpm
$ rpm -ivh --nomd5 malaga-suomi-voikko-1.4-0.3.rc3.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean malaga-suomi-voikko.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh malaga-suomi-voikko-1.4-0.3.rc3.x86_64.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/libvoikko-2.2.1-2.fc12.src.rpm
$ rpm -ivh --nomd5 libvoikko-2.2.1-2.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ vi libvoikko.spec
  2 %define _unpackaged_files_terminate_build 0
$ rpmbuild -bb --target=x86_64 --clean libvoikko.spec
$ cd ~/rpm/RPMS/noarch/
$ sudo rpm -ivh libvoikko-2.2.1-2.noarch.rpm libvoikko-devel-2.2.1-2.noarch.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/updates/11/SRPMS/hunspell-1.2.8-7.fc11.src.rpm
$ rpm -ivh --nomd5 hunspell-1.2.8-7.fc11.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean hunspell.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh hunspell-1.2.8-7.x86_64.rpm hunspell-devel-1.2.8-7.x86_64.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/enchant-1.5.0-3.fc12.src.rpm
$ rpm -ivh --nomd5 enchant-1.5.0-3.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean enchant.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh enchant-1.5.0-3.x86_64.rpm enchant-devel-1.5.0-3.x86_64.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/libedit-2.11-4.20080712cvs.fc12.src.rpm
$ rpm -ivh --nomd5 libedit-2.11-4.20080712cvs.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean libedit.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh libedit-2.11-4.20080712cvs.x86_64.rpm libedit-devel-2.11-4.20080712cvs.x86_64.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/firebird-2.1.3.18185.0-5.fc12.src.rpm
$ rpm -ivh --nomd5 firebird-2.1.3.18185.0-5.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean firebird.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh firebird-2.1.3.18185.0-5.x86_64.rpm \
    firebird-libfbclient-2.1.3.18185.0-5.x86_64.rpm \
    firebird-filesystem-2.1.3.18185.0-5.x86_64.rpm \
    firebird-libfbembed-2.1.3.18185.0-5.x86_64.rpm \
    firebird-classic-2.1.3.18185.0-5.x86_64.rpm \
    firebird-devel-2.1.3.18185.0-5.x86_64.rpm
僕はlzmaという拡張子がある事すら知りませんでした。恥ずかしい...orz
$ wget http://tukaani.org/lzma/lzma-4.32.7.tar.gz
$ tar zxvf lzma-4.32.7.tar.gz
$ cd lzma-4.32.7
$ ./configure
$ make && sudo make install
$ sudo ln -s /usr/local/bin/lzma /usr/bin/lzma
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/releases/11/Fedora/source/SRPMS/m4-1.4.12-2.fc11.src.rpm
$ rpm -ivh --nomd5 m4-1.4.12-2.fc11.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean m4.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -Fvh m4-1.4.12-2.x86_64.rpm

$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/development/source/SRPMS/autoconf-2.63-3.fc12.src.rpm
$ rpm -ivh --nomd5 autoconf-2.63-3.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean autoconf.spec
$ cd ~/rpm/RPMS/noarch/
$ sudo rpm -Fvh autoconf-2.63-3.noarch.rpm
 
$ wget http://ftp.jaist.ac.jp/pub/Linux/fedora/releases/11/Fedora/source/SRPMS/automake-1.10.2-3.src.rpm
$ rpm -ivh --nomd5 automake-1.10.2-3.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean automake.spec
$ cd ~/rpm/RPMS/noarch/
$ sudo rpm -Fvh automake-1.10.2-3.noarch.rpm
 
$ wget http://asic-linux.com.mx/~izto/checkinstall/files/rpm/checkinstall-1.6.1-1.i386.rpm
$ sudo rpm -ivh checkinstall-1.6.1-1.i386.rpm

libtoolのrpmパッケージ作成に結構時間を取られて、しかもタイムアップ...
ホントはもうちょっと調べたかったのですが、お仕事ですからね。
悔しいですがcheckinstallでrpmパッケージを作成しました。
$ wget http://ftp.gnu.org/gnu/libtool/libtool-2.2.6a.tar.gz
$ tar zxvf libtool-2.2.6a.tar.gz
$ cd libtool-2.2.6/
$ ./configure
$ make
$ sudo /usr/local/sbin/checkinstall -y -R
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -Fvh libtool-2.2.6-1.x86_64.rpm
$ sudo cp /usr/local/share/aclocal/* /usr/share/aclocal/
$ sudo yum install -y httpd httpd-devel sqlite-devel libc-client-devel mysql-devel \
    unixODBC-devel firebird-devel net-snmp-devel libXpm-devel libjpeg-devel libpng-devel \
    freetype-devel t1lib-devel libmcrypt-devel libtidy-devel freetds-devel aspell-devel \
    recode-devel libicu-devel enchant-devel
やっとPHPのbuildです。
$ wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/development/source/SRPMS/php-5.3.0-6.fc12.src.rpm
$ rpm -ivh --nomd5 php-5.3.0-6.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --target=x86_64 --clean php.spec
$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -ivh php-5.3.0-6.x86_64.rpm \
    php-cli-5.3.0-6.x86_64.rpm \
    php-common-5.3.0-6.x86_64.rpm \
    php-dba-5.3.0-6.x86_64.rpm \
    php-mbstring-5.3.0-6.x86_64.rpm \
    php-odbc-5.3.0-6.x86_64.rpm \
    php-pdo-5.3.0-6.x86_64.rpm \
    php-pgsql-5.3.0-6.x86_64.rpm \
    php-xml-5.3.0-6.x86_64.rpm
 
$ wget http://ftp.iij.ad.jp/pub/linux/fedora/development/source/SRPMS/php-pear-1.9.0-1.fc12.src.rpm
$ rpm -ivh --nomd5 php-pear-1.9.0-1.fc12.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --clean php-pear.spec
$ cd ~/rpm/RPMS/noarch/
$ sudo rpm -ivh php-pear-1.9.0-1.noarch.rpm
 
という訳で、PHP5.3が作成できてインストールもできました。
ラベル:Linux CentOS PHP rpm
posted by qphoneyとかiaraとか at 17:33| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

2009年09月09日

gethostbynameとdns_get_recordでの挙動の違い

初ブログ。

PHPのgethostbynameとdns_get_recordで挙動が違う。
具体的には名前解決にいくDNSサーバが違う。
なんで?

CLI上で叩くと全く問題なし(どちらの関数も)
mod_phpから動かすと再現する。
なんで?
ラベル:PHP
posted by qphoneyとかiaraとか at 23:51| Comment(1) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。