Deployment

RPM 改變包名,不改變解壓目錄

  • August 13, 2014

我已經開始創建我使用的軟體的 RPM,以便我能夠按照我想要的方式配置它。但是,如果不重命名 RPM 建構它的 tarball,我不知道如何重命名包。

例如,我在 tarball php-5.6.0RC3.tar.gz 中有 PHP5.6 的原始碼。在 RPM 建構過程中,它被提取到目錄 php-5.6.0RC3 並且建構過程 cd 進入該目錄以進行建構。

我想將包名稱更改為 phpcustom,並且仍然從 php-5.6.0RC3.tar.gz 建構它。提取過程有效,但隨後建構過程嘗試 cd 進入phpcustom-5.6.0RC3顯然不存在的目錄,因此它中斷了。

我如何告訴 rpmbuild 建構應該在哪個目錄中進行?

我想我可以將php-5.6.0RC3目錄移動到phpcustom-5.6.0RC3……但這似乎有點傻。

我把我的規範文件放在下面,以防萬一。

%define        __spec_install_post %{nil}
%define          debug_package %{nil}
%define        __os_install_post %{_dbpath}/brp-compress

Summary: Custom built PHP with APCU
Name: php
#Name: phpcustom - this doesn't work
Provides: php
Conflicts: php
Version: 5.6.0RC3
Release: 1
License: None
Group: Development/Tools

Requires: bzip2, libcurl, libxml2

SOURCE0 : http://downloads.php.net/tyrael/php-5.6.0RC3.tar.gz
SOURCE1:        php.ini
SOURCE2:        php-cli.ini
SOURCE3:        apcu-4.0.6.tgz
URL: http://php.net/


%description
%{summary}

%prep
%setup -q -n php-%{version}
%setup -T -D -a 3

%build
mkdir -p  %{buildroot}
./configure  \
               --disable-cgi \
               --disable-debug \
               --disable-rpath \
               --disable-xmlreader \
               --disable-xmlwriter \
               --disable-xml \
               --enable-fpm \
               --enable-intl \
               --enable-json \
               --enable-mbregex \
               --enable-mbstring \
               --enable-pcntl \
               --enable-pdo \
               --enable-sockets \
               --enable-sysvsem \
               --enable-sysvshm \
               --enable-zip \
               --with-apcu \
               --with-bz2 \
               --with-config-file-path=/etc \
               --with-curl \
               --with-freetype-dir=/usr/lib \
               --with-gd \
               --with-jpeg-dir=/usr/lib \
               --with-mcrypt \
               --with-png-dir=/usr/lib \
               --with-pdo-mysql \
               --with-zlib \
               --with-mhash \
               --with-mysql \
               --with-mysqli=mysqlnd \
               --with-openssl \
               --with-pcre-regex \
               --without-pear \
               --without-zlib \
               --enable-maintainer-zts
make -j4


%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_initrddir}
install -Dp -m0755 sapi/fpm/init.d.php-fpm.in %{buildroot}%{_initrddir}/php-fpm
%{__make} install INSTALL_ROOT="%{buildroot}"
cp %{SOURCE1} %{buildroot}/etc/php.ini
cp %{SOURCE2} %{buildroot}/etc/php-cli.ini

%post
%/sbin/chkconfig --add php-fpm
%/sbin/chkconfig --level 2345 php-fpm on


%clean
rm -rf %{buildroot}


%preun
if [ "$1" = 0 ] ; then
   /sbin/service php-fpm stop > /dev/null 2>&1
   /sbin/chkconfig --del php-fpm
fi
exit 0

%postun
if [ "$1" -ge 1 ]; then
   /sbin/service php-fpm condrestart > /dev/null 2>&1
fi
exit 0



%files
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/php.ini
%config(noreplace) %{_sysconfdir}/php-cli.ini
/etc/rc.d/init.d/php-fpm
/usr/local/bin/*
/usr/local/etc/*
/usr/local/include/php/*
/usr/local/lib/php/build/*
/usr/local/php/fpm/*
/usr/local/php/man/man1/*
/usr/local/php/man/man8/*
/usr/local/sbin/*
/usr/local/lib/php/extensions/no-debug-zts-20131226/opcache.a
/usr/local/lib/php/extensions/no-debug-zts-20131226/opcache.so


%changelog
* Thu Apr 24 2009  Elia Pinto <devzero2000@rpm5.org> 1.0-1
- First Build

EOF

-n您可以使用參數來指定展開的目錄%prep

引用自:https://serverfault.com/questions/620160