独自の.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