Я создал небольшое приложение с использованием Bash и Zenity, которое я хотел бы установить в своей системе как собственное приложение, а также как пакет, который я могу распространять. У меня есть файл .desktop для моего приложения, значок .png и файл .sh. Куда идут эти файлы для создания «нативного» приложения, и каким процессом мне нужно будет создать пакет, который можно скомпилировать для установки этого приложения в другой системе?
О первой части: Прежде всего, я сделал бы исполняемый файл сценария и удалил бы .sh
расширение и из сценария и из .desktop
файл. Если Вы хотите использовать его в масштабе всей системы, то скопируйте целый каталог, кроме .desktop
файл, к /opt
. .desktop
файл тогда был бы:
[Desktop Entry]
Version=1.0
Type=Application
Name=GTeaKup
Comment=The perfect GTK tea timer!
Exec=/bin/bash gteakup
Icon=gteacup.png
Path=/opt/GTeaKup/
Terminal=false
StartupNotify=false
... и копия, что к /usr/share/applications
О второй половине Вашего вопроса: смотрите здесь , особенно этот хорошо запуститься с того, если Вы никогда не создавали пакеты Debian прежде. Вы тогда получите установщик как это . При установке его через центр программного обеспечения это будет жаловаться, потому что обычные файлы как журнал изменений, авторское право и т.д. файлы не включены, но это хорошо работает.
btw Вы действительно знаете, что Ваш сценарий действует по-другому на двойной щелчок и когда кнопка ОК выбрана?;)
Можно использовать сценарий оболочки install.sh
, как дали ниже для установки Вашего tea timer
сценарий к другой машине.
#!/bin/bash
install_dir="$HOME/teaKup"
current_dir="$(pwd)"
dpkg -s sox > /dev/null 2>&1
if [ $? = 0 ]; then
mkdir $install_dir #create directory to place files.
cp $current_dir/gteakup.sh $install_dir/ # copies the file.
cp $current_dir/gteakup.png $install_dir/
cp $current_dir/sound.ogg $install_dir/
cat > $HOME/Desktop/GTeaKup.desktop << EOF # create desktop file at desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=GTeaKup
Comment=The perfect GTK tea timer!
Exec=bash $install_dir/gteakup.sh
Icon=$install_dir/gteakup.png
Terminal=false
StartupNotify=false
EOF
chmod u+x $HOME/Desktop/GTeaKup.desktop # give execution permission to desktop file.
else
# ask user to install sox which is needed to use play command
echo -e "The program 'play' is currently not installed. You can install it by typing:\nsudo apt-get install sox"
fi
Инструкция
install.sh
наряду с другими файлами в zip
файл. Никакая потребность обеспечить .desktop
файл, сценарий сделает тот. bash install.sh
, это будет заботиться об остальных включая привыкание файлов в надлежащих местах и сделает файл на рабочем столе для выполнения его. Примечание
Быть осторожным с положением EOF
в install.sh
. Это должно в начале той строки.