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.