Conselhos gerais para esse tipo de problema
Tente alterar Exec=/opt/gish/gi.sh
para Exec=sh /opt/gish/gi.sh
.
Se isso não funcionar, tente alterar a linha Path
para especificar o diretório em que você está quando executar o programa no Terminal. Supondo que você esteja em seu diretório home, a linha se tornará Path=/home/aberration
, onde aberration
é substituído por seu nome de usuário em seu sistema Ubuntu (se diferente).
Se isso não funcionar, abra o arquivo chamado .xsession-errors
localizado no seu diretório pessoal (no PCManFM você terá que pressionar Ctrl + H ou clique em View
> Show Hidden
para fazer este e outros arquivos que começam com .
aparecerem, selecione todo o seu conteúdo, copie-o para a área de transferência, cole-o no diretório Ubuntu Pastebin e edite sua pergunta para incluir o URL dela. Certifique-se de ter tentado executar o jogo nos menus do LXDE muito pouco antes de abrir .xsession-errors
, de forma que as mensagens relacionadas à falha provavelmente apareçam perto do final do arquivo.
Conselho específico para o erro em .xsession_errors e o conteúdo específico do script
Parece provável que sua suspeita esteja correta; ou seja, quando o script é executado a partir do LXPanel, o teste para saber se sua arquitetura é de 64 bits não está funcionando corretamente. Eu não tenho certeza exatamente o que está errado. Mas como o script não tem uma linha de hashbang principal (isto é, uma linha começando com #!
seguida imediatamente pelo caminho completo para o programa que deve atuar como o interpretador do script), ele provavelmente está sendo executado por um shell diferente quando você o executa a partir do LXPanel do que quando o executa a partir de bash
no LXTerminal. Quando você o executa do LXPanel, ele provavelmente está sendo executado pelo shell padrão ( /bin/sh
, que é um link simbólico para o dash
shell), enquanto quando você o executa de dentro de bash
no LXTerminal, ele está sendo executado por bash
. O script usa algumas sintaxes incomuns com as quais não estou familiarizado, o que pode refletir que meu conhecimento de script está um pouco enferrujado, mas pode ser porque eu escrevo scripts para sh
/ dash
em vez de bash
.
Eu recomendo que você faça o backup do script ( sudo cp /opt/gish/gi.sh /opt/gish/gi.sh.old
) e, em seguida, tente editá-lo adicionando a linha #!/bin/bash
ao topo, para torná-lo executado com bash
. Então veja se ele funciona corretamente.
Se isso acontecer, recomendo enviar um relatório de bug para os criadores de gi.sh
. (Eu estou supondo que este não é um pacote Ubuntu, já que está instalado em /opt
, então você terá que verificar se o projeto tem suas próprias diretrizes de relatório de erros primeiro.) Embora a correção detalhada acima seja apropriada para o Ubuntu, O conserto provável de funcionar adequadamente em uma variedade maior de sistemas semelhantes ao Unix (com base no Linux e outros) seria usar #!/usr/bin/env bash
em vez de #!/bin/bash
, pois env
está em /usr/bin
significativamente mais do que bash
em código%. (Os autores também devem estar cientes de que /bin
não está presente em todos os sistemas semelhantes ao Unix, portanto, se o Gish tiver a intenção de rodar em sistemas que provavelmente não têm bash
e não requerer bash
, eles podem querer editar o script.) E, de qualquer forma, um script que requer bash
não deve ter o sufixo bash
, mas deve ter o sufixo .sh
(ou nenhum).
Se essa alteração não fizer o script ser executado corretamente, ainda será recomendável verificar se o problema é que a versão de 32 bits do Gish estava em execução, em vez da versão de 64 bits. Então você pode criar um novo arquivo .bash
com o conteúdo:
[Desktop Entry]
Categories=Game;ActionGame;AdventureGame;ArcadeGame;
Exec=/opt/gish/gish_64
Path=/opt/gish
Icon=x-gish
Terminal=false
Type=Application
Name=Gish
A execução desse arquivo .desktop
- supondo que ele funcione - deve confirmar que o problema é que o executável incorreto está sendo executado (e também deve contornar o problema para você, assim você pode executar o Gish do LXPanel).