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