생성된 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

이를 정의하는 방법에는 두 가지가 있습니다.

  1. .rpmmacros폴더 생성 및 추가%_topdir /path

  2. rpmbuild추가를 호출할 때 --define:

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

관련 정보