나만의 .rpm 파일을 만들었습니다. 명령줄에서는 설치가 제대로 작동하지만 GUI에서 설치하면 그렇지 않습니다.
GUI에서 작동하지 않는 유일한 것은 %post 스크립트입니다. 설치 후 브라우저를 호출해 보았지만 명령줄을 통해 실행하면 작동하지만 GUI를 통해서는 작동하지 않습니다.
rpm 빌드용 .spec 파일입니다.
Name:sample_rpm
Version:1.0
Release:1%{?dist}
Summary:Sample RPM package for testing post install script
Group:Development/Tools
License:GPL
URL:None
Source0:sample_rpm.tar.gz
%description
Sample rpm for testing post install script
%prep
%setup -n sample_rpm
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p "$RPM_BUILD_ROOT/opt/sample_rpm"
cp -R * "$RPM_BUILD_ROOT/opt/sample_rpm"
%post
exec "/usr/bin/firefox" "http://www.google.com" &
%clean
rm -rf $RPM_BUILD_ROOT
%files
/opt/sample_rpm/
%defattr(-,root,root,-)
%doc
%changelog
미리 감사드립니다!
답변1
먼저 다음과 같은 매크로를 정의하십시오.
%define runcommand() ( /usr/bin/firefox http://google.com )
그런 다음 해당 섹션 %post
에서 실행하십시오 %runcommand
. 패키지에 루트 액세스가 필요하므로 root
매크로는 %post
DISPLAY를 찾을 수 없습니다. DISPLAY 환경 변수를 내보내면 이 문제가 해결됩니다. 예를 들어
......
%post
export DISPLAY=":0.0"
%runcommand
.........
마지막으로 이를 사용하여 rpmlint -i sample_rpm.spec
오류를 확인합니다. 오류가 없으면 다음 명령을 사용하여 패키지를 빌드하십시오.rpmbuild -ba sample_rpm.spec