2012-07-10 4 views
2

rpmbuild 도구를 사용하여 rpm을 빌드하려고합니다. 약 30GB의 바이너리를 빌드하는 소스 코드가 있습니다. rpm을 만들고있는이 소프트웨어는 수십 개의 실행 파일을 가지고 있습니다. 단일 실행 파일 (예 : init)의 바이너리 만 복사하면 rpm이 성공적으로 빌드됩니다. 하지만 전체 빌드를 rpm으로 덤프하면 rpmbuild가 모든 작업을 수행하지만 결국에는 seg 오류가 발생합니다. 난 단지 바이너리의 일부를 복사하는 경우rpmbuild가 seg 오류를 발생합니다.

# This is a sample spec file for wget 

%define _topdir  /root/mywget 
%define name   source 
%define release  1 
%define version  1.12 
%define _builddir  /root/mywget/BUILD/glenlivet 
%define _buildrootdir /root/mywget/BUILDROOT 
%define _buildroot /root/mywget/BUILDROOT 
%define _sourcedir /root/mywget/SOURCES 

BuildRoot: %{_buildroot} 
Summary:  GNU source 
License:  GPL 
Name:   %{name} 
Version:  %{version} 
Release:  %{release} 
Source:   %{name}-%{version}.tar.gz 
Prefix:   /usr 
Group:   Development/Tools 

%description 
The GNU sample program downloads files from the Internet using the command-line. 

%prep 
%setup -q -n glenlivet 

%build 
cd %{_builddir} 
make all 

%install 
rm -rf %{_buildrootdir} 
mkdir -p %{_buildrootdir}/bin 
cp -p -r %{_builddir}/build/obj-x64/* %{_buildrootdir}/bin/ 

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

그것을 잘 작동합니다 (한 유틸리티와 종속 바이너리를 가정 해 봅시다) :

여기 내 사양 파일입니다. 그러나 빌드 전체를 복사하려고하면 seg 오류가 발생합니다. rpmbuild이 섹션을 실행 한 후 은 내가 독방 감금 오류를 얻을 : 또한 내 소스 파일을 처리 % 준비 % 빌드 %가

rpmbuild를 설치합니다.

처리 파일 : 소스 1.12-1

찾기가 제공 :

찾기가 필요합니다 :

찾기 보충 교재 :

이 제공 : ...

이 필요합니다 : ......

패키지되지 않은 f 검사/usr/lib/rpm/check-files/root/mywget/BUILDROOT

/usr/lib/rpm/check-files/루트/mywget/BUILDROOT

패키지되지 않은 파일을 확인하십시오.

세그먼트 오류

어떤 잘못 되었습니까? 또는 어디에 rpmbuild가 실패합니까? 미리 감사드립니다.

답변

2

이 문제에 대해 google'd에 대해 자세히 알아 보겠습니다. 2GB보다 큰 RPM을 만들려고 할 때 rpmbuild에 몇 가지 문제가있는 것으로 보입니다.

https://bugzilla.redhat.com/show_bug.cgi?id=433795

+1

당신은 아마 지금이 답변을 받아 들일 수 : 이 신청 버그가 있습니다. – hlovdal

관련 문제