rpmbuild를 사용하여 RPM 설치 중 사용자 정의 옵션

rpmbuild를 사용하여 RPM 설치 중 사용자 정의 옵션

RPM 설치 중에 사용자 정의 옵션을 사용하고 싶습니다. RPM을 만들기 위해 rpmbuild를 사용하므로 SPEC 파일이 있습니다.
SPEC 파일에서 사용할 수 있는 고유한 옵션을 정의할 수 있습니다(예: rpm -i --r_password=something acme-1.1-1.el7.noarch.rpmr_password파일에 저장됩니다 -> %postSPEC 파일의 섹션에 의해 제어됩니다)?

답변1

당신은 할 수 없습니다. %post에서 매크로를 사용할 수 있습니다. 하지만 빌드 시 평가되며 빌드 시에만 재정의할 수 있습니다.

%{!?foo:%global foo SOME_DEFAULT}

%post
echo %{foo}

첫 번째 줄은 foo매크로가 없을 때의 일부 기본값을 정의합니다.

그런 다음 다음을 실행할 수 있습니다.

rpmbuild -ba --define='foo bar' evil.spec

foo여기서 content 를 사용하여 자신만의 매크로를 정의할 수 있습니다 bar. RPM이 설정되면 거래가 완료된 것이며 RPM을 변경할 수 없습니다.

하지만 다음과 같이 할 수 있습니다.

%post
cat /etc/myconfig.cfg | ... #do something based on content of the file

그리고 사용자에게 다음과 같이 말합니다.

echo foo > /etc/myconfig.cfg; rpm -i acme-1.1-1.el7.noarch.rpm

관련 정보