2009-12-10 7 views
5

내가 나에게 다음과 같은 오류RPM이 빌드 오류

  • 을주고있다 rpm 패키지를 만들려고 /usr/lib/rpm/find-debuginfo.sh은/usr/src/redhat/BUILD/RPMS 발견 : 유효하지 않은 술어 '' 오류 : /var/tmp/rpm-tmp.86590 (% 설치)에서 나쁜 종료 상태 이 나를 도와 하나 .can 이유가 될 수있는 것을 ... 감사

답변

6

사양 파일에 BuildRoot 변수를 정의 해보십시오. find-debuginfo 스크립트는 해당 디렉토리를 여러 번 검색하고 그 디렉토리 없이는 죽을 것입니다.

이 보통과 같이 보일 것이다 : 두 번째 질문에 관해서는 BuildRoot: %{_tmpdir}/%{name}-%{version}-%{release}

를, 내가 직접 사양 파일과 소스를 보지 않고 말할 수 없다, 나는 더는 RPM 전문가 의미로 생각하지 않습니다. 최대 RPM의 13 장 (무료로 제공되는 사본이 있습니다)과 How to make good RPM packages에 대한 Tom Callaway의 프리젠 테이션의 메모를 추천 해 드리겠습니다 - 여기에서 스펙 예제가 매우 유용하다는 것을 발견했습니다. 귀하의 사양에

+0

누락 된 BuildRoot는 문제의 정확한 루트입니다.이를 정의하면 (예 : ..와 같이 시작해야 함) 문제가 잘 해결됩니다. 감사! – Shirkrin

5

당신은 상단에이 작업을 수행 할 수 있습니다

%define debug_package %{nil} 

이이 문제

1

를 우회해야 레드햇 5.3 서버에 구축 할 때 난 그냥이 같은 문제를했다. 여기 내가 찾은 것이 있습니다. 이 오류는 빈 RPM_BUILD_ROOT 변수로 인해 발생하는 것 같습니다. RPM_BUILD_ROOT가 정의되어 있지 않은 경우

find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \ 
       \(-perm -0100 -or -perm -0010 -or -perm -0001 \) \ 
       -print | 

, 찾을 다음 첫 번째 인수가이 오류가 발생 빈 문자열 ""입니다 : 아래에 하나 개 문제가되는 라인입니다. 흥미롭게도, 약 $RPM_BUILD_ROOT에서 따옴표를 제거하면 첫 번째 인수가 "!"가되므로 명령이 올바르게 작동합니다. spec 파일에 "BuildRoot :"을 정의 할 필요가 없으므로 이것은 분명히 저에게 버그와 같습니다.