生成されたRPMの位置を指定するオプションは何ですか?

生成されたRPMの位置を指定するオプションは何ですか?

私はrpmファイルをビルドするとき、ほとんどが/usr/src/redhat/RPMS/i38632ビットビルドで終わることを発見しました。しかし、一部(私たちが内部的に配布するファイルを含む)は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移動できます。BUILDRPMSSOURCESSPECSSRPMS

これを定義する方法は2つあります。

  1. .rpmmacrosフォルダの作成と追加%_topdir /path

  2. rpmbuild追加を呼び出すとき--define

    • rpmbuild --define "_topdir /path" -bb $specfile

関連情報