Как создать собственное приложение из сценария оболочки?

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

4
задан 13.05.2020, 05:40

2 ответа

О первой части: Прежде всего, я сделал бы исполняемый файл сценария и удалил бы .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 Вы действительно знаете, что Ваш сценарий действует по-другому на двойной щелчок и когда кнопка ОК выбрана?;)

0
ответ дан 13.05.2020, 05:41
  • 1
    ... Я боюсь, что я не специалист по удару, но в Python, я использовал бы цикл с условием продолжения (в то время как ответ не находится в [списке] или ответе! = (не равно), это или что, повторите вопрос, еще: сделайте следующее). Был бы эта справка: cyberciti.biz/faq/bash-while-loop ? – Hien Nguyen 13.05.2020, 05:41
  • 2
    Это работает! Я отредактировал процесс немного, и он работает!:) Я пытаюсь (на данный момент) сделать нейтральный в отношении дистрибутива пакет, который может быть скомпилирован и установлен без диспетчера пакетов. В конечном счете я создам debian пакет для него. Я в настоящее время борюсь, чтобы выяснить, как зафиксировать сценарий так, чтобы, когда кнопка OK выбрана, повторения меню, пока опция не была выбрана. Какие-либо мысли? – user10087184 13.05.2020, 05:42

Можно использовать сценарий оболочки 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. Это должно в начале той строки.

0
ответ дан 13.05.2020, 05:42

Теги

Похожие вопросы