Como criar um aplicativo nativo a partir de um script de shell?

4

Eu criei um pequeno aplicativo usando o Bash e o Zenity que gostaria de instalar no meu sistema como um aplicativo nativo, bem como um pacote que eu possa distribuir. Eu tenho um arquivo .desktop para meu aplicativo, um ícone .png e o arquivo .sh. Para onde esses arquivos vão fazer um aplicativo "nativo" e por qual processo eu precisaria ir para criar um pacote que possa ser compilado para instalar esse aplicativo em outro sistema?

    
por Ryan McClure 23.02.2014 / 06:59

2 respostas

3

Sobre a primeira parte: Para começar, gostaria de tornar o script executável e remover a extensão .sh do script e do arquivo .desktop . Se você quiser usá-lo em todo o sistema, copie todo o diretório, exceto o arquivo .desktop , para /opt . O arquivo .desktop seria então:

[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

... e copie isso para /usr/share/applications

Sobre a segunda metade da sua pergunta: dê uma olhada aqui , especialmente este é bom para começar se você nunca criou pacotes Debian antes. Você então obterá um instalador como este . Quando você instala através do centro de software, ele irá reclamar, porque os arquivos comuns, como changelog, copyright etc., não estão incluídos, mas funciona bem.

btw você sabe que o seu script age de forma diferente em um clique duplo e quando o botão ok é escolhido? ;)

    
por Jacob Vlijm 23.02.2014 / 08:46
1

Você pode usar um script de shell install.sh conforme indicado abaixo para instalar seu script tea timer em outra máquina.

#!/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

Instrução

  • coloque esse install.sh junto com outros arquivos em um arquivo zip . Não é necessário fornecer o arquivo .desktop , o script fará um.
  • copie o arquivo zip para outros sistemas e descompacte-os.
  • apenas execute bash install.sh , ele cuidará do resto, incluindo o processamento dos arquivos em locais apropriados e criará um arquivo da área de trabalho para executá-lo.

Nota

Tenha cuidado com a posição de EOF em install.sh . Deveria no começo dessa linha.

    
por souravc 23.02.2014 / 10:22

Tags