RPM PHP ve PEAR Paketleri

0 Cevap php

Ben armut paketleri bir dizi ile son PHP (5.3.3) özel bir yapı paketlemek için çalışıyorum. Ne yazık ki, bunu yapmak için verilen seçenekler çalışmak için görünmüyor. Ben olması gerektiği gördüğünüz gibi ben spec dosyasını gönderme ediyorum. Verilen versiyonu aslında başarısız değil, ama yanlış yerde PEAR paketlerini yükler. Onlar / var/tmp/my_php-5.3.3-1-buildroot/usr/local/lib/php gitmek gerekir, ama onlar / var/tmp/my_php-5.3.3-1-buildroot/var / sonunda da tmp/my_php-5.3.3-1-buildroot/usr/local/lib/php.

Ben tamamen (PHP_PEAR_INSTALL_DIR ortam değişkeni türetilmiş) armut komut geçti ayarı include_path görmezden çünkü pearcmd.php komut kesmek zorunda nerede da görebilirsiniz. Bu tamamen yanlış olabilir, ama ben aslında hiç bir şey yüklemek için alabilir tek yolu buydu.

Ben bu spec diğer birçok varyasyonlar denedi, ama hepsi kendi şekilde "başarısız" gibi görünüyor. Bilginize, ben de Pyrus kullanarak denedim, ancak (non-PEAR2 paketleri ile sorunlara ek olarak) benzer sorunları vardı.

%define PHP_PREFIX  /usr/local
%define CONF_PREFIX /home/config/php/conf
%define APXS_PATH   /usr/local/apache2/bin/apxs
%define ORCL_PATH   /usr/local/lib/oracle

%define PHP         %{PHP_PREFIX}/bin/php
%define PEAR        %{PHP_PREFIX}/bin/pear
%define PEAR_ROOT   %{PHP_PREFIX}/lib/php

%define PHP_INSTALL       $RPM_BUILD_ROOT%{PHP}
%define PEAR_INSTALL      $RPM_BUILD_ROOT%{PEAR}
%define PEAR_ROOT_INSTALL $RPM_BUILD_ROOT%{PEAR_ROOT}

%define PEARCMD %{PEAR_ROOT_INSTALL}/pearcmd.php
%define PECLCMD %{PEAR_ROOT_INSTALL}/peclcmd.php

%define _unpackaged_files_terminate_build 0

Summary: my_php package
Name: my_php
Version: 5.3.3
Release: 1
License: The PHP License, Version 3.01
Vendor: Me
Packager: Me <me@blah.com>
Group: Development/Languages
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Source0: php-%{version}.tar.bz2
Requires: my_httpd >= 2.2.0, oracle-instantclient >= 10.2.0.4
BuildRequires: my_httpd >= 2.2.0
Conflicts: php, php5

%description
PHP, My style

%prep
%setup -q -n php-%{version}

%build
LIB_DIR="lib"

if [ "%{_arch}" == "x86_64" ]; then
  LIB_DIR="lib64"
fi

./configure \
  --prefix=%{PHP_PREFIX} \
  --with-libdir=${LIB_DIR} \
  --with-pear \
  --with-config-file-path=%{CONF_PREFIX} \
  --with-apxs2=%{APXS_PATH} \
  --with-oci8=instantclient,%{ORCL_PATH} \
  --with-mysql \
  --with-pgsql \
  --enable-sockets \
  --with-gd \
  --enable-gd-native-ttf \
  --with-freetype-dir \
  --with-curl \
  --with-bz2 \
  --with-zlib-dir \
  --enable-exif \
  --with-ldap \
  --with-gmp \
  --with-xsl

make clean
make -j

%install
rm -rf $RPM_BUILD_ROOT

# Don't try to change httpd.conf
sed -i.bak -e "s:&& \$(mkinstalldirs) '\$(INSTALL_ROOT)/.\+' \(&& %{APXS_PATH} .\+\)-S SYSCONFDIR='.\+' \(.\+\)-a \(.\+\):\1\2\3:" Makefile

# Install PHP to rpm staging area
make INSTALL_ROOT=$RPM_BUILD_ROOT install

# Modify *cmd.php to use correct include_path
sed -i.bak -e "s:'@'.'include_path'.'@':'%{PEAR_ROOT}':" %{PEARCMD}
sed -i.bak -e "s:'@'.'include_path'.'@':'%{PEAR_ROOT}':" %{PECLCMD}

# Install PEAR packages to rpm staging area
export PHP_PEAR_PHP_BIN="%{PHP_INSTALL}"
export PHP_PEAR_INSTALL_DIR="%{PEAR_ROOT_INSTALL}"

%{PEAR_INSTALL} install -P $RPM_BUILD_ROOT pear/MDB2-beta
%{PEAR_INSTALL} install -P $RPM_BUILD_ROOT pear/MDB2_Driver_oci8-beta
%{PEAR_INSTALL} install -P $RPM_BUILD_ROOT pear/MDB2_Driver_pgsql-beta
%{PEAR_INSTALL} install -P $RPM_BUILD_ROOT pear/MDB2_Driver_mysql-beta
%{PEAR_INSTALL} install -P $RPM_BUILD_ROOT pear/Mail
%{PEAR_INSTALL} install -P $RPM_BUILD_ROOT pear/Mail_Mime
%{PEAR_INSTALL} install -P $RPM_BUILD_ROOT pear/Spreadsheet_Excel_Writer-beta

# Revert *cmd.php
mv %{PEARCMD}.bak %{PEARCMD}
mv %{PECLCMD}.bak %{PECLCMD}

%files
%defattr(-,root,root)
/

%clean
rm -rf $RPM_BUILD_DIR/php-%{version} $RPM_BUILD_ROOT

Herhangi bir yardım için teşekkür ederiz!

0 Cevap