私はrpmファイルをビルドするとき、ほとんどが/usr/src/redhat/RPMS/i386
32ビットビルドで終わることを発見しました。しかし、一部(私たちが内部的に配布するファイルを含む)はrpmファイルを./i386
...に書き込むので、ファイルは/usr/src/redhat/i386
。問題の原因を確認できません。
影響を受けていないtarballをにコピーします/usr/src/redhat/SOURCES
。
建築科cd /usr/src/redhat; rpmbuild -bb ./SPECS/openssl.spec
私の仕様ファイルは次のとおりです(退屈なビルドとインストールに関する部分を除く)。
%define debug_package %{nil}
%define libmaj 1
%define libmin 0
%define librel 1
%define librev l
Release: 1
Summary: Secure Sockets Layer and cryptography libraries and tools
Name: openssl
Version: %{libmaj}.%{libmin}.%{librel}%{librev}
License: Freely distributable
Group: System Environment/Libraries
Source: %{name}-%{version}.tar.gz
URL: http://www.openssl.org/
Packager: Damien Miller <[email protected]>
BuildRoot: /var/tmp/%{name}-%{version}-root
AutoReqProv: yes
Provides: libcrypto.so.6 libssl.so.6
%description
blah blah
%prep
%setup
%build
./Configure --prefix=/usr threads shared linux-elf
LD_LIBRARY_PATH=`pwd` make depend
LD_LIBRARY_PATH=`pwd` make
%install
rm -rf $RPM_BUILD_ROOT
...
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
...
%pre
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
しかも在庫仕様書はここにあります。。
答え1
RPM変数を定義して、フォルダをデフォルトの出力フォルダに_topdir
移動できます。BUILD
RPMS
SOURCES
SPECS
SRPMS
これを定義する方法は2つあります。
.rpmmacros
フォルダの作成と追加%_topdir /path
rpmbuild
追加を呼び出すとき--define
:rpmbuild --define "_topdir /path" -bb $specfile