Estoy desarrollando una interfaz de usuario multiplataforma con .Net Core y la estoy empaquetando usando RPM Package Manager. He creado el archivo RPM para instalarlo localmente. La sección %install de mi archivo de especificaciones se ve así
%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
El proyecto contiene el ejecutable para Linux, archivos de dependencia y un .png para el icono. En el paso de instalación, creé un archivo .desktop y lo coloqué en /usr/share/applications para que el ejecutable aparezca en las aplicaciones cuando se instala el paquete.
Me gustaría saber cómo hacer que la aplicación tenga un acceso directo en el escritorio creado cuando se instala el paquete para que el usuario no tenga que crearlo él mismo. Sé que para hacer esto manualmente después de la instalación, debes acceder a la carpeta /usr/share/applications usando Nautilus y copiar la aplicación al escritorio, pero me gustaría que esto se hiciera automáticamente.
Intenté usar un comando de copia en la sección posterior a la instalación, pero no sé cómo copiarlo en el escritorio de ningún usuario que instale el paquete. ¿Existe algún comando que pueda agregar a mi archivo de especificaciones o al archivo .desktop creado para lograr esto?
Respuesta1
Recomendaría crear un enlace después de la instalación exitosa en lugar de durante, crear un enlace en la %post
sección para la compilación de rpm.
https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s04s05.html
Algo enlace abajo
ln [OPTION]... [-T] TARGET LINK_NAME