※rpm作成環境の構築はこちら ソースコードを入手し、さくっとrpmを作成してみる。
まずは標準のレポジトリから入れてみる。
$ sudo yum install php
・
・
Error: Package: php-5.3.3-40.el6_6.x86_64 (updates)
Requires: httpd-mmn = 20051115
Installed: httpd-2.4.12-1.x86_64 (installed)
httpd-mmn = 20120211
Available: httpd-2.2.15-39.el6.centos.x86_64 (base)
httpd-mmn = 20051115
・
・
となった。バージョンも5.3.3となっているし、httpd 2.4が入ってる環境だと、エラーが出てしまう見たい。
原因はメッセージの通り、httpd 2.2.15までにしか対応していない。ということなのでしょう。
ということで、ソース化からrpmを作ってみることにした。phpのサイトから入手して、、
$ wget http://jp1.php.net/get/php-5.6.5.tar.bz2/from/this/mirror -O php-5.6.5.tar.bz2 $ rpmbuild -bb php-5.6.5.tar.bz2 error: File /home/hayashi/rpmbuild/SOURCES/php-5.6.5.tar.bz2 does not appear to be a specfile.specファイルがないと・・確かにない。ということで、IUSのサイトからSRPMを入手し、試す。
$ cd ~/rpmbuild/SRPMS
$ wget http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/SRPMS/php56u-5.6.5-1.ius.centos6.src.rpm
$ rpmbuild --rebuild --clean php56u-5.6.5-1.ius.centos6.src.rpm
・
・
・
error: Failed build dependencies:
bzip2-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
curl-devel >= 7.9 is needed by php56u-5.6.5-1.ius.el6.x86_64
pam-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
httpd-devel < 2.4 is needed by php56u-5.6.5-1.ius.el6.x86_64
libedit-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libtool-ltdl-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
systemtap-sdt-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libc-client-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
firebird-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
net-snmp-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libxslt-devel >= 1.0.18-1 is needed by php56u-5.6.5-1.ius.el6.x86_64
t1lib-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libjpeg-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libpng-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
freetype-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libXpm-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libvpx-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
gmp-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
tokyocabinet-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libmcrypt-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libtidy-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
aspell-devel >= 0.50.0 is needed by php56u-5.6.5-1.ius.el6.x86_64
recode-devel is needed by php56u-5.6.5-1.ius.el6.x86_64
libicu-devel >= 4.0 is needed by php56u-5.6.5-1.ius.el6.x86_64
enchant-devel >= 1.2.4 is needed by php56u-5.6.5-1.ius.el6.x86_64
$ yum install bzip2-devel curl-devel pam-devel libedit-devel libtool-ltdl-devel systemtap-sdt-devel /
libc-client-devel firebird-devel net-snmp-devel libxslt-devel t1lib-devel libjpeg-devel libpng-devel /
freetype-devel libXpm-devel libvpx-devel gmp-devel tokyocabinet-devel libmcrypt-devel libtidy-devel /
aspell-devel recode-devel libicu-devel enchant-devel
$ sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/httpd-devel-2.4.12-1.x86_64.rpm
error: Failed build dependencies:
httpd-devel < 2.4 is needed by php56u-5.6.5-1.ius.el6.x86_64
おっと、、httpd-develはapache2.4.12と合わせてインストールしたが、、これを見ると2.2じゃないとダメということか?httpdとhttpd-develのバージョンを別々のものを入れてもよいのか?はわからなかった。ということで、php 5.5.xを
探してみる。
ちなみにphpの古いバージョンは、IUSのサイトのアーカイブを参照。まずは、5.5系の最新版である5.5.21。
$ mkdir /tmp/php/ $ wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/SRPMS/php55u-5.5.21-1.ius.el6.src.rpm $ rpm2cpio php55u-5.5.21-1.ius.centos6.src.rpm | cpio -id $ less php55u.spec
・
・
%if 0%{?rhel} < 7
BuildRequires: httpd-devel < 2.4
%else
BuildRequires: httpd-devel
%endif
・
・
となっており、5.6とおなじく、redhet6(この場合はcentos6)だと、httpd-develは2.4未満じゃないとダメらしい。次は5.5.20。5.5.20のspecを見ると、
・ ・ BuildRequires: httpd-devel >= 2.0.46-1, pam-devel ・ ・となっており、大丈夫そうです。ということで、5.5.20で進める。
$ cd ~/rpmbuild/SRPM $ rpmbuild --rebuild --clean php55u-5.5.20-1.ius.centos6.src.rpm ・ ・ Sorry, I cannot run apxs. Possible reasons follow: 1. Perl is not installed 2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs 3. Apache was not built using --enable-so (the apxs usage page is displayed) The output of /usr/sbin/apxs follows: ./configure: line 8754: /usr/sbin/apxs: No such file or directory configure: error: Aborting error: Bad exit status from /var/tmp/rpm-tmp.bYrvIJ (%build) ・ ・というエラーがでた。apache2.4からは、apxsのパスは、「/usr/bin/apxs」に変更になったとの ことで、specファイルを変更する。
$ cd /tmp/php/;rm -f * $ rpm2cpio php55u-5.5.20-1.ius.centos6.src.rpm | cpio -id $ cp php55u.spec ~/rpmbuild/SPECS/ $ cd ~/rpmbuild/SPECS/ $ vi php55u.spec
# /usr/sbin/apsx with httpd < 2.4 and defined as /usr/bin/apxs with httpd >= 2.4
%{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}}
↓
# /usr/sbin/apsx with httpd < 2.4 and defined as /usr/bin/apxs with httpd >= 2.4
#%{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}}
%{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_bindir}/apxs}}
これでいけるかな・・
$ rpmbuild -bb --clean ~/rpmbuild/SPECS/php55u.spec ・ ・ + umask 022 + cd /home/hayashi/rpmbuild/BUILD + rm -rf php-5.5.20 + exit 0 $ cd ~/rpmbuild/RPMS/x86_64/ $ ls php55u-*5.5.20* php55u-5.5.20-1.ius.el6.x86_64.rpm php55u-mbstring-5.5.20-1.ius.el6.x86_64.rpm php55u-bcmath-5.5.20-1.ius.el6.x86_64.rpm php55u-mcrypt-5.5.20-1.ius.el6.x86_64.rpm php55u-cli-5.5.20-1.ius.el6.x86_64.rpm php55u-mssql-5.5.20-1.ius.el6.x86_64.rpm php55u-common-5.5.20-1.ius.el6.x86_64.rpm php55u-mysqlnd-5.5.20-1.ius.el6.x86_64.rpm php55u-dba-5.5.20-1.ius.el6.x86_64.rpm php55u-odbc-5.5.20-1.ius.el6.x86_64.rpm php55u-debuginfo-5.5.20-1.ius.el6.x86_64.rpm php55u-opcache-5.5.20-1.ius.el6.x86_64.rpm php55u-devel-5.5.20-1.ius.el6.x86_64.rpm php55u-pdo-5.5.20-1.ius.el6.x86_64.rpm php55u-embedded-5.5.20-1.ius.el6.x86_64.rpm php55u-pgsql-5.5.20-1.ius.el6.x86_64.rpm php55u-enchant-5.5.20-1.ius.el6.x86_64.rpm php55u-process-5.5.20-1.ius.el6.x86_64.rpm php55u-fpm-5.5.20-1.ius.el6.x86_64.rpm php55u-pspell-5.5.20-1.ius.el6.x86_64.rpm php55u-gd-5.5.20-1.ius.el6.x86_64.rpm php55u-recode-5.5.20-1.ius.el6.x86_64.rpm php55u-gmp-5.5.20-1.ius.el6.x86_64.rpm php55u-snmp-5.5.20-1.ius.el6.x86_64.rpm php55u-imap-5.5.20-1.ius.el6.x86_64.rpm php55u-soap-5.5.20-1.ius.el6.x86_64.rpm php55u-interbase-5.5.20-1.ius.el6.x86_64.rpm php55u-tidy-5.5.20-1.ius.el6.x86_64.rpm php55u-intl-5.5.20-1.ius.el6.x86_64.rpm php55u-xml-5.5.20-1.ius.el6.x86_64.rpm php55u-ldap-5.5.20-1.ius.el6.x86_64.rpm php55u-xmlrpc-5.5.20-1.ius.el6.x86_64.rpm php55u-litespeed-5.5.20-1.ius.el6.x86_64.rpm成功!wordpressを想定してインストールしてみる。
$ sudo rpm -Uvh php55u-5.5.20-1.ius.el6.x86_64.rpm php55u-mbstring-5.5.20-1.ius.el6.x86_64.rpm php55u-mssql-5.5.20-1.ius.el6.x86_64.rpm
error: Failed dependencies:
php55u-common(x86-64) = 5.5.20-1.ius.el6 is needed by php55u-5.5.20-1.ius.el6.x86_64
php55u-cli(x86-64) = 5.5.20-1.ius.el6 is needed by php55u-5.5.20-1.ius.el6.x86_64
php55u-common = 5.5.20-1.ius.el6 is needed by php55u-mbstring-5.5.20-1.ius.el6.x86_64
php55u-pdo = 5.5.20-1.ius.el6 is needed by php55u-mssql-5.5.20-1.ius.el6.x86_64
$ sudo rpm -Uvh php55u-5.5.20-1.ius.el6.x86_64.rpm php55u-mbstring-5.5.20-1.ius.el6.x86_64.rpm php55u-mssql-5.5.20-1.ius.el6.x86_64.rpm php55u-common-5.5.20-1.ius.el6.x86_64.rpm php55u-cli-5.5.20-1.ius.el6.x86_64.rpm php55u-pdo-5.5.20-1.ius.el6.x86_64.rpm
error: Failed dependencies:
php55u-pecl-jsonc is needed by php55u-common-5.5.20-1.ius.el6.x86_64
まだかぁ。先は長いっす。この後も出てきます。ちょっと関係性を整理しておく。
php55u-common
⇒php55u-pecl-jsonc(*)
⇒php55u-devel
⇒php55u-cli
⇒php55u-common
⇒php55u-pecl-jsonc-devel(*)
⇒php55u-pear(*)
⇒php55u-cli
⇒php55u-common
⇒php55u-xml
⇒php55u-common
とループしちゃってます。うち、(*)についてはコンパイルが必要になります。ので、、
コンパイルに必要となるphp55u-cli、php55u-common、php55u-xml、php55u-develについては、依存関係を無視して
インストールする必要があるってことですね。
$ sudo rpm -Uvh --nodeps php55u-cli-5.5.20-1.ius.el6.x86_64.rpm php55u-common-5.5.20-1.ius.el6.x86_6 4.rpm php55u-xml-5.5.20-1.ius.el6.x86_64.rpm php55u-devel-5.5.20-1.ius.el6.x86_64.rpm残りのパッケージについて、IUSで再度入手して進める。
$ wget http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/SRPMS/php55u-pear-1.9.5-2.ius.centos6.src.rpm
$ rpmbuild --rebuild --clean php55u-pear-1.9.5-2.ius.centos6.src.rpm
$ sudo rpm -Uvh ../RPMS/noarch/php55u-pear-1.9.5-2.ius.el6.noarch.rpm
error: Failed dependencies:
php55u-posix is needed by php55u-pear-1:1.9.5-2.ius.el6.noarch
まだあるんですか。。長すぎる。php55u-posixのSRPMをIUSのサイトで調べたけど、見当たらず。yumを使って調査をしてみた。まずはIUSのレポジトリを追加。
$ wget wget http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-13.ius.centos6.noarch.rpm $ sudo rpm -Uvh ius-release-1.0-13.ius.centos6.noarch.rpm $ sudo vi /etc/yum.repos.d/ius.repo
[ius] ・ ・ #enabled=1 enabled=0 ・ ・ [ius-debuginfo] ・ ・調査。
$ yum --enablerepo=ius provides php55u-posix Loaded plugins: fastestmirror, versionlock Loading mirror speeds from cached hostfile * base: ftp.riken.jp * epel: ftp.kddilabs.jp * extras: ftp.riken.jp * ius: hkg.mirror.rackspace.com * updates: ftp.riken.jp php55u-process-5.5.21-1.ius.centos6.x86_64 : Modules for PHP script using system process interfaces Repo : ius Matched from: Other : php55u-posixということで、php55u-processを入れればいいみたい。
$ sudo rpm -Uvh ../RPMS/noarch/php55u-pear-1.9.5-2.ius.el6.noarch.rpm ../RPMS/x86_64/php55u-process-5.5.20-1.ius.el6.x86_64.rpm無事成功。残るは、、php55u-pecl-jsoncとphp55u-pecl-jsonc-develです。
$ wget http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/SRPMS/php55u-pecl-jsonc-1.3.6-3.ius.centos6.src.rpm $ rpmbuild --rebuild --clean php55u-pecl-jsonc-1.3.6-3.ius.centos6.src.rpm $ cd ../RPMS/x86_64/ $ sudo rpm -Uvh php55u-pecl-jsonc-1.3.6-3.ius.el6.x86_64.rpm php55u-pecl-jsonc-devel-1.3.6-3.ius.el6.x86_64.rp $ sudo rpm -Uvh php55u-5.5.20-1.ius.el6.x86_64.rpm php55u-mbstring-5.5.20-1.ius.el6.x86_64.rpm php55u-pdo-5.5.20-1.ius.el6.x86_64.rpm php55u-mysqlnd-5.5.20-1.ius.el6.x86_64.rpmということで、php 5.5.20を無事インストールすることができました。 wordPress $ sudo rpm -Uvh php55u-5.5.14-1.ius.el6.x86_64.rpm php55u-common-5.5.14-1.ius.el6.x86_64.rpm php55u-cli-5.5.14-1.ius.el6.x86_64.rpm php55u-opcache-5.5.14-1.ius.el6.x86_64.rpm php55u-pdo-5.5.14-1.ius.el6.x86_64.rpm php55u-mysqlnd-5.5.14-1.ius.el6.x86_64.rpm php55u-mbstring-5.5.14-1.ius.el6.x86_64.rpm $ sudo rpm -Uvh php55u-fpm-5.5.14-1.ius.el6.x86_64.rpm $ sudo chkconfig php-fpm on http.conf LoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.so #LoadModule mpm_prefork_module lib64/httpd/modules/mod_mpm_prefork.so root:password mysql mysql> create database wp; mysql> grant all privileges on wp.* to wp@localhost identified by "wppassword";
0 件のコメント:
コメントを投稿