BuildRoot의 내용을 유지하는 방법?


11

단계별로 패키지를 빌드하는 동안 오래된 오래된 rpm은 단순히 BuildRoot의 내용을 유지했습니다. 소프트웨어가 작성하기 어려우면 모든 것이 정상인지 BuildRoot를 확인할 수 있기 때문에 매우 유용했습니다.

이제 모든 "개선 된"rpm으로 BuildRoot의 내용이 자동으로 삭제되므로 실제로 다이빙을 할 수 없습니다 (설치 단계는 그리 길지 않습니다).

내가 아는 한 가지 해킹은 설치 단계 마지막에 rpm 사양에 일종의 절전 모드를 추가하는 것입니다. 그러나 이것은 추악합니다.

그래서 - 질문은 - 어떻게 좋은 방법으로 BuildRoot의 내용을 유지하는 - 즉, 어떻게하지 않도록 자동으로 한 번 좋은에 대한 삭제 하시겠습니까?

답변:


6

rpmbuild -bi테스트를 통해 모든 것을 구축 할 수 있도록 테스트에 사용해 보셨습니까 %install? 그러면 나중에 자동으로 청소하지 않고 진행중인 작업이 표시됩니다.

그런 다음 만족하면 정상적으로 빌드하십시오.


감사합니다. 이것은 가장 방해가되지 않는 방식이며 작동합니다.
greenoldman


3

%clean스펙 파일에 더미 를 추가 하십시오. 다음과 같은 것 :

%clean
echo NOOP

% install 시작시 BUILDROOT가 삭제되었으므로 작동하지 않습니다. % install 초기화의 일부입니다.
smcg

빌드 후 빌드 루트를 유지하는 것이 목표라면 조사를 위해 작동합니다.
ederag

0

이것은 이다 성가신, 나는 동의한다. rpm을 수정하는 것이 마음에 들지 않으면 rpm 소스로 이동하여 BuildRoot가 삭제되는 위치를 찾고 해당 라인을 비활성화하고 (아마도 한 줄임) 다시 컴파일하는 것이 좋습니다. 내가 제안 할 다른 것은 구성 할 수 있다고 생각하는 이전 동작을 복원하기 위해 위시리스트 버그를 제기하는 것입니다.

질문 :이 동작은 어떤 버전의 rpm에서 변경 되었습니까?


나는 버전에 대해 잘 모르지만, 공식 RPM의 변화는 힘든 것 : lists.rpm.org/pipermail/rpm-list/2008-December/000040.html는 설명은 idelogy가 큰 역할을한다는 것을 나타냅니다. 패치 rpm이 가능하지만 힌트를 주셔서 감사합니다. 아마도 자동 BuildRoot 작성을 되돌릴 수도 있습니다.
greenoldman

@ macias : 데비안 (4.9.0-2)의 rpm 소스를 보았지만 유용한 것을 찾지 못했습니다. 그러나 개발자가 변경을 기꺼이하지 않더라도 개발자가 직접 변경하는 방법을 알려줄 것으로 기대합니다.
Faheem Mitha

운 좋게도 -bi 스위치 가이 경우 작동 하므로 가능한 경우 패치를 건너 뛰십시오. 회귀가있는 소프트웨어 목록이 길어지고 있습니다.
greenoldman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.