Относительные пути не поддерживаются *.
Одно из решений - установить установщик. Этот сценарий обновляет файл рабочего стола в соответствии с местоположением, из которого он запускается. Сделайте сценарий исполняемым, и пользователь сможет щелкнуть его для установки. Сценарий требует, чтобы файл рабочего стола был доступен для записи.
Это было сделано с учетом Linux. Файл называется autorun.sh; но это всего лишь соглашение, обычно он не запускается автоматически. Если вы развертываете это на чем-то другом, кроме Linux, тогда назовите файл как-нибудь (autorun.linux) или адаптируйте его для выполнения разных задач в зависимости от платформы.
#! /bin/sh
#### Fixup $APPNAME.desktop.
APPNAME=xvscatter
ICONNAME=xv_logo.png
cd $(dirname "$0")
APPDIR="$PWD/$APPNAME"
EXEC="$APPDIR/$APPNAME"
ICON="$APPDIR/$ICONNAME"
sed -i -e "s@^Icon=.*@Icon=$ICON@" \
-e "s@^Exec.*@Exec=$EXEC@" "$APPNAME.desktop"
* Соглашение для freedesktop: чтобы значки располагались в $ HOME / .icons, / usr / share / icons или / usr / share / pixmaps. В этих каталогах находятся подкаталоги для значков разных размеров и типов. При использовании одного из этих каталогов для хранения значка в файле рабочего стола отображается только имя значка (без каталога); в противном случае запишите полный путь к файлу.
Исполняемый файл, если он указан в пути, может быть указан без имени пути (небезопасно). Лучше всего указать полный путь. Представьте, что запускается не та программа, потому что не указан полный путь.
Другой вариант - скопировать файл рабочего стола на рабочий стол пользователя или в / usr / share / applications и отредактировать его там. Сделайте это, когда программа находится на носителе только для чтения.
Поскольку ничего из вышеперечисленного не приводит к истинной установке, по возможности используйте собственный установщик платформы и инструменты упаковки (rpm, dep, portage и т. Д.). Эти инструменты обеспечивают основу для полной установки, включая соответствующие права доступа к файлам (подумайте о selinux) и меню рабочего стола. Они также обеспечивают легкое удаление.
Если программа должна запускаться со съемного носителя, рассмотрите возможность использования системной установки только для установки символических ссылок, возможно, в / opt / vendor / progname.
person
frayser
schedule
07.10.2010