私は.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フォルダにアクセスし、アプリケーションをデスクトップにコピーする必要があることに注意してくださいが、これが自動的に実行されることを願っています。
インストール後のセクションでコピーコマンドを試しましたが、パッケージがインストールされているユーザーのデスクトップにコピーする方法がわかりません。これを行うために作成した.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