Вопрос Как создать собственное приложение из Shell Script?


Я создал небольшое приложение, использующее Bash и Zenity, которые я хочу установить в своей системе как собственное приложение, а также пакет, который я могу распространять. У меня есть файл .desktop для моего приложения, значок .png и .sh-файл. Где эти файлы идут, чтобы сделать «родное» приложение, и по какому процессу мне нужно будет создать пакет, который можно скомпилировать, чтобы установить это приложение в другую систему?


4
2018-02-23 05:59


происхождения


Вот ссылка на zip-файл со всеми файлами, необходимыми для запуска приложения - это простой чайный таймер. :) Чтобы запустить его, просто запустите скрипт. Файл .desktop, вероятно, не будет работать. dropbox.com/s/ya9futuiz33lian/GTeaKup.zip - Ryan McClure
Вы проверили packaging.ubuntu.com/html/packaging-new-software.html ? - Radu Rădeanu


ответы:


О первой части: Для начала я сделаю скрипт исполняемым и удалю .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. Затем вы получите установщика, как это, Когда вы устанавливаете его через программный центр, он будет жаловаться, потому что обычные файлы, такие как файлы изменений, файлы авторских прав и т. Д., Не включены, но он отлично работает.

Кстати, вы знаете, что ваш скрипт действует по-разному с двойным щелчком и при выборе кнопки «ОК»? ;)


3
2018-02-23 07:46



Это работает! Я немного отредактировал процесс, и он работает! :) Я пытаюсь (пока) сделать дистрибутивный нейтральный пакет, который можно скомпилировать и установить без менеджера пакетов. В конце концов, я создам для него пакет debian. В настоящее время я пытаюсь понять, как исправить сценарий, чтобы при выборе кнопки ОК меню повторялось до тех пор, пока не будет выбран параметр. Есть предположения? - Ryan McClure
... Я боюсь, что я не специалист по bash, но в python я бы использовал цикл while (в то время как ответ не в [списке], или ответ! = (Не равен) тому или иному, повторите вопрос, else: выполните следующие действия). Помогло бы это: cyberciti.biz/faq/bash-while-loop ? - Jacob Vlijm


Вы можете использовать сценарий оболочки 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 файл, скрипт сделает его.
  • скопируйте zip-файл в другие системы и разархивируйте их.
  • просто беги bash install.sh, он позаботится об остальном, в том числе о том, как справиться с файлами в надлежащих местах и ​​сделает рабочий стол для его запуска.

Заметка

Будьте осторожны с положением EOF в install.sh, Это должно в начале этой строки.


1
2018-02-23 09:22