Centos 7 RPM パッケージ - インストール中にデスクトップ ショートカットを作成する

Centos 7 RPM パッケージ - インストール中にデスクトップ ショートカットを作成する

私は.Net CoreでクロスプラットフォームUIを開発しており、RPMパッケージマネージャーを使用してパッケージ化しています。ローカルにインストールするRPMファイルを作成しました。私のスペックファイルの%installセクションは次のようになります。

%install
mkdir -p %{buildroot}/%{_bindir}
mkdir -p %{buildroot}/%{_bindir}/%{name}
mkdir -p %{buildroot}/%{_datadir}/applications
install -m 0755 %{name} %{buildroot}/%{_bindir}/%{name}
install -m 0755 *.dll %{buildroot}/%{_bindir}/%{name}
install -m 0755 *.json %{buildroot}/%{_bindir}/%{name}
install -m 0755 *.so %{buildroot}/%{_bindir}/%{name}
install -m 0755 %{name}.png %{buildroot}/%{_bindir}/%{name}

cat > %{buildroot}/%{_datadir}/applications/%{name}.desktop <<'EOF'
[Desktop Entry]
Name=Hello_World
Exec=%{_bindir}/%{name}/%{name}
Icon=%{_bindir}/%{name}/%{name}.png
Type=Application
Terminal=false
EOF

プロジェクトには、Linux 用の実行可能ファイル、依存ファイル、およびアイコン用の .png が含まれています。インストール手順で、.desktop ファイルを作成して /usr/share/applications に配置したので、パッケージがインストールされると実行可能ファイルがアプリケーションに表示されます。

パッケージのインストール時にアプリケーションのデスクトップ ショートカットを作成して、ユーザーが自分で作成しなくても済むようにする方法を知りたいです。インストール後に手動でこれを行うには、Nautilus を使用して /usr/share/applications フォルダーにアクセスし、アプリケーションをデスクトップにコピーする必要があることはわかっていますが、これを自動的に実行したいと思います。

インストール後のセクションでコピー コマンドを使用しようとしましたが、パッケージをインストールするユーザーのデスクトップにコピーする方法がわかりません。これを実現するために、spec ファイルまたは作成された .desktop ファイルに追加できるコマンドはありますか?

答え1

%postインストール中ではなく、インストールが成功した後にリンクを作成し、 rpm ビルドのセクションでリンクを作成することをお勧めします。

https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s04s05.html

下のリンク

ln [OPTION]... [-T] TARGET LINK_NAME

関連情報