por exemplo.
$ mkdir ~/AppImage
$ cd ~/AppImage
$ wget -O celestia-1.7.0-git-x86_64.AppImage https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-latest-x86_64.AppImage
$ chmod 755 *.AppImage
crie um diretório $ HOME portátil e dependente da versão principal na mesma pasta do arquivo AppImage
$ mkdir celestia-1.7.home
iniciar Celestia / obter ajuda (o nome do arquivo pode mudar após as atualizações)
$ ./celestia-1.7.0-git-x86_64.AppImage
$ ./celestia-1.7.0-git-x86_64.AppImage -h
$ wget -O celestia-1.6.2-x86_64.AppImage https://download.opensuse.org/repositories/home:/munix9/AppImage/celestia-latest-x86_64.AppImage
$ chmod 755 *.AppImage
crie um diretório $ HOME portátil e dependente da versão principal na mesma pasta do arquivo AppImage
$ mkdir celestia-1.6.home
iniciar Celestia / obter ajuda (o nome do arquivo pode mudar após as atualizações)
$ ./celestia-1.6.2-x86_64.AppImage
$ ./celestia-1.6.2-x86_64.AppImage -h
$ wget https://github.com/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage
$ chmod 755 *.AppImage
opcionalmente, crie um diretório $ HOME portátil na mesma pasta do arquivo AppImage
$ mkdir AppImageUpdate-x86_64.AppImage.home
$ wget -O obs-munix9.pub https://build.opensuse.org/projects/home:munix9/public_key
global (sem um $ HOME portátil para AppImageUpdate)
$ gpg2 --import obs-munix9.pub
apenas para AppImageUpdate (portátil $ HOME, veja acima)
$ HOME=~/AppImage/AppImageUpdate-x86_64.AppImage.home gpg2 --import obs-munix9.pub
coisas antigas
Sistema de compilação:
Sistemas de teste:
Versão: celestia-qt, git master (com hacks / patches adicionais e especiarias habilitadas)
O ambiente de teste AppImage agora mudou de OBS para github / travis-ci
https://github.com/munix9/Celestia (branch appimage_build)
Agora, as atualizações devem ser possíveis por meio de https://github.com/AppImage/AppImageUpdate
criar um diretório de trabalho (é arbitrário, pode ser movido ou renomeado posteriormente)
$ mkdir ~/celestia-app
$ cd ~/celestia-app
baixe o arquivo AppImage em https://github.com/munix9/Celestia/releases (construção contínua)
$ wget https://github.com/munix9/Celestia/releases/download/continuous/celestia-qt-continuous-x86_64.AppImage
e torná-lo executável
$ chmod 755 celestia-qt-continuous-x86_64.AppImage
crie uma pasta pessoal portátil para usar como $ HOME
$ ./celestia-qt-continuous-x86_64.AppImage --appimage-portable-home
Dica: agora existe uma alternativa para um diretório $ HOME portátil. Se um diretório gravável denominado celestia-qt.home
existir na mesma pasta que AppImage, esse diretório será definido como $ HOME portátil.
Isso deve tornar mais fácil lidar com os diferentes nomes de AppImage após as atualizações.
arriscar um primeiro começo
$ ./celestia-qt-continuous-x86_64.AppImage
"Erro ao salvar favoritos" "Sistema de arquivos somente leitura" ao sair - resolvido (# 335)
$ mkdir -m 700 ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.config
(celestia-qt: ...): Gtk-WARNING **: ...: Não foi possível localizar o mecanismo do tema em module_path: "murrine", - resolvido, não deve ocorrer novamente
primeiro instale gtk2-engines-murrine
$ sudo apt-get install gtk2-engines-murrine
solução adicionando a var GTK_PATH64 env quando o AppImage é iniciado
$ GTK_PATH64=$GTK_PATH64:/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/ ./celestia-qt-continuous-x86_64.AppImage
ou criando um link simbólico
$ mkdir -p ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.gtk-2.0/engines
$ ln -s /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/libmurrine.so ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.gtk-2.0/engines/
o jeito Celestia
$ ./celestia-qt-continuous-x86_64.AppImage --celestia-extract-data
done: celestia data extracted to '/home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage.data'
start celestia e.g. with
CELESTIA_DATA_DIR=/home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage.data/ /home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage
a maneira AppImage
$ ./celestia-qt-continuous-x86_64.AppImage --appimage-extract
$ mv squashfs-root/usr/share/celestia/ my-data
$ rm -r squashfs-root
e agora o celestia pode ser iniciado com o caminho de dados alternativo
$ CELESTIA_DATA_DIR=~/celestia-app/my-data/ ./celestia-qt-continuous-x86_64.AppImage
O procedimento para realizar atualizações ainda está em revisão. Até o esclarecimento, o AppImage pode ser atualizado com AppImageUpdate.
Dicas:
Por enquanto é isso.
Parece um caso para um script AppRun personalizado?
Parece um caso para um script AppRun personalizado?
Me desculpe, eu não entendo. Você poderia explicar um pouco?
Com o nº 335 mesclado, este:
crie uma pasta pessoal portátil para usar como $ HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-home
crie uma pasta de configuração portátil para usar como $ XDG_CONFIG_HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-config
e isto:
"Erro ao salvar favoritos" "Sistema de arquivos somente leitura" ao sair
$ mkdir -m 700 ~ / celestia-app / celestia-qt-latest-x86_64.AppImage.home / .config
não é mais necessário (cruzar os dedos :))
Me desculpe, eu não entendo. Você poderia explicar um pouco?
Pelo que você escreveu, parece que o usuário precisa exportar certas variáveis de ambiente para fazer isso funcionar. O que eu queria apontar é AppRun
, um arquivo dentro do AppImage que você pode usar para escrever seu próprio script, que exportaria as variáveis de ambiente necessárias.
Deixe-me saber se você estiver travado e precisar de ajuda concreta.
Com o nº 335 mesclado, este:
crie uma pasta pessoal portátil para usar como $ HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-home
crie uma pasta de configuração portátil para usar como $ XDG_CONFIG_HOME
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-confige isto:
"Erro ao salvar favoritos" "Sistema de arquivos somente leitura" ao sair
$ mkdir -m 700 ~ / celestia-app / celestia-qt-latest-x86_64.AppImage.home / .confignão é mais necessário (cruzar os dedos :))
Observe:
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-home
$ ./celestia-qt-latest-x86_64.AppImage --appimage-portable-config
não têm nada a ver com problemas ou erros, pelo contrário, oferecem a possibilidade de armazenar configurações e similares não em $ HOME /, $ HOME / .config, $ HOME / .local, mas nos diretórios portáteis mencionados acima.
Desculpe, então eu estava entendendo mal. Na verdade, é tão simples quanto essas 3 etapas:
wget -c https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-latest-x86_64.AppImage # Download
chmod +x celestia-qt-latest-x86_64.AppImage # Make executable
./celestia-qt-latest-x86_64.AppImage # Run
Aqui, ele está sendo executado no Xubuntu 18.04:
__Impressionante! __: +1:
Me desculpe, eu não entendo. Você poderia explicar um pouco?
Pelo que você escreveu, parece que o usuário precisa exportar certas variáveis de ambiente para fazer isso funcionar. O que eu queria apontar é
AppRun
, um arquivo dentro do AppImage que você pode usar para escrever seu próprio script, que exportaria as variáveis de ambiente necessárias.Deixe-me saber se você estiver travado e precisar de ajuda concreta.
Certamente seria uma vantagem limpar https://build.opensuse.org/project/show/OBS : AppImage, instalar novas versões e consertar as compilações existentes não resolvidas / com falha / quebradas.
Mas há outros responsáveis, provavelmente farei uma entrada de bug.
Também notei que AppImageUpdate não funciona corretamente com o AppImages gerado pelo OBS - mas preciso dar uma olhada nisso.
A coisa com libmurrine.so é irritante, sim, mas devemos esperar por mais testes dos usuários em tantas plataformas quanto possível.
não têm nada a ver com problemas ou erros, pelo contrário, oferecem a possibilidade de armazenar configurações e similares não em $ HOME /, $ HOME / .config, $ HOME / .local, mas nos diretórios portáteis mencionados acima.
Parece que você está correto, porque, como vejo, se você não criar explicitamente esses dirs appimage, use o padrão $ HOME etc.
Mas, falando francamente, --appimage-portable-config
exigido apenas para aqueles que não possuem $XDG_CONFIG_HOME
não padrão. E appimage não tem meios para redefinir $XDG_DATA_HOME
.
Tentei com duas ferramentas de atualização diferentes e nenhuma delas foi capaz de atualizá-lo corretamente:
https://github.com/AppImage/AppImageUpdate
https://github.com/antony-jr/AppImageUpdater
Esta mensagem é realmente muito útil @ antony-jr. Nós podemos ver:
me<strong i="15">@host</strong>:~$ strings Downloads/celestia-qt-0-Build160.1.glibc2.14-x86_64.AppImage | strings | grep zsync
zsync|https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-latest-x86_64.AppImage.zsync
(...)
me<strong i="16">@host</strong>:~$ wget https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-latest-x86_64.AppImage.zsync
--2019-08-04 20:57:11-- https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-latest-x86_64.AppImage.zsync
(...)
HTTP request sent, awaiting response... 302 Found
Location: http://downloadcontent.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-qt-0-Build160.1.glibc2.14-x86_64.AppImage.zsync [following]
Portanto, parece que há um bug em https://download.opensuse.org que o faz redirecionar para http em vez de https. Isso costumava funcionar; portanto, suspeito que seja um bug que foi introduzido recentemente.
cc @AdrianSchroeter
appimage não tem meios para redefinir $ XDG_DATA_HOME
Você acha que devemos adicioná-lo?
Tentei com duas ferramentas de atualização diferentes e nenhuma delas foi capaz de atualizá-lo corretamente:
https://github.com/AppImage/AppImageUpdate
https://github.com/CelestiaProject/Celestia/issues/333#issuecomment -518027817
sim, eu estava pensando algo assim, obrigado pelo teste.
Para celestia, AppImageUpdate seria muito vantajoso, então você não precisa baixar o pacote completo com cada build.
Para celestia, AppImageUpdate seria muito vantajoso, então você não precisa baixar o pacote completo com cada build.
De fato! : +1:
appimage não tem meios para redefinir $ XDG_DATA_HOME
Você acha que devemos adicioná-lo?
Isso parece lógico para mim.
Você estaria interessado em ter um atualizador dentro do aplicativo? Existe um plugin Qt que pode fazer isso. https://github.com/TheFutureShell/updatedeployqt cc @ antony-jr
Você estaria interessado em ter um atualizador dentro do aplicativo? Existe um plugin Qt que pode fazer isso. https://github.com/TheFutureShell/updatedeployqt cc @ antony-jr
Isso parece interessante. Vou dar uma olhada mais de perto.
@ munix9 deixe-me saber se você deseja integrar o atualizador em seu aplicativo. Você também pode usar https://antony-jr.github.io/AppImageUpdaterBridge que pode ser usado como uma biblioteca ou como um plugin Qt para fazer a atualização automática. É inteiramente escrito em Qt e respeita o loop de eventos.
PS : updatedeployqt ainda está em alpha e passa por uma cirurgia de coração aberto todas as semanas, então não estou muito confiante para recomendá-lo a você.
@ munix9 Se você quiser ver como a atualização funciona, veja como qtox a usa -> https://github.com/qTox/qTox-nightly-releases/releases
Depois de baixá-lo, adicione alguns dados de lixo para acionar uma atualização,
$ echo "changes" >> qTox-*-x86_64.AppImage
$ ./qTox-*-x86_64.AppImage
vá para configurações -> sobre -> atualização disponível (o botão aparecerá depois de algum tempo)
Para sua informação: usei https://github.com/antony-jr/updatedeployqt para testar a opção de atualização (a tag "1", a tag "contínua" parece não funcionar no momento).
Acho que é uma maneira rápida e fácil de experimentar uma funcionalidade de atualização integrada - o código não precisa ser alterado - exceto para atribuir um nome de QObject para o menu de ajuda.
AppImageUpdaterBridge parece ser uma alternativa interessante - vamos ver o que o futuro reserva.
https://github.com/munix9/Celestia/releases/tag/continuous
https://github.com/munix9/Celestia/blob/appimage_build/dist/appimage/fix-appimage_dir.patch#L43
exceto para atribuir um nome de QObject para o menu de ajuda.
Você também pode tentar combinar a substring de todos os objetos QMenu ou objetos QAction no programa.
EDIT : Eu não adicionei nenhuma documentação porque eu realmente não tenho tempo (mas estou muito animado) e a ferramenta ainda está em alfa, então grandes mudanças ainda estão por vir.
@ munix9 O atualizador funciona muito bem do meu lado. : +1:
exceto para atribuir um nome de QObject para o menu de ajuda.
Você também pode tentar combinar a substring de todos os objetos QMenu ou objetos QAction no programa.
EDIT : Eu não adicionei nenhuma documentação porque eu realmente não tenho tempo (mas estou muito animado) e a ferramenta ainda está em alfa, então grandes mudanças ainda estão por vir.
@ munix9 O atualizador funciona muito bem do meu lado. +1
Algo que pode ser melhor resolvido:
Se uma atualização estiver disponível, o novo arquivo recebe o nome, por exemplo
celestia-qt-continuous-x86_64-revised-on-2019-08-29T10-57-48.AppImage
Isso torna os diretórios existentes
celestia-qt-continuous-x86_64.AppImage.config
celestia-qt-continuous-x86_64.AppImage.home
obsoleto porque eles não são renomeados automaticamente.
Existe uma solução para isso?
Algo que pode ser melhor resolvido:
Se uma atualização estiver disponível, o novo arquivo recebe o nome, por exemplocelestia-qt-continuous-x86_64-revised-on-2019-08-29T10-57-48.AppImage
@ munix9 Na verdade, o atualizador o renomeia apenas se existir um arquivo com o nome de destino; no atualizador oficial, o arquivo antigo é movido com a extensão .zs_old
mas decidi não mexer na versão antiga e deixar os usuários lidar com isso. Podemos, no entanto, adicionar uma opção para excluir o arquivo antigo quando esse conflito ocorrer ou podemos renomeá-lo da mesma forma que o atualizador oficial.
Além disso, se continuarmos movendo a versão antiga com a extensão .zs_old
, a outra versão será perdida para sempre. Caso o AppImage use o mesmo nome para todas as versões como no seu caso.
Em primeiro lugar, apenas UM dos seguintes deve ser usado:
celestia-qt-continuous-x86_64.AppImage.config
celestia-qt-continuous-x86_64.AppImage.home
Normalmente, os aplicativos portáteis devem manter sua configuração por versão, para que um usuário possa executar várias versões do mesmo aplicativo ao lado, sem que interfiram entre si. Se quiser que diferentes versões do aplicativo compartilhem o mesmo conjunto de configuração, você pode, como parte de um AppRun
, fazer algo como (pseudocódigo não testado):
VERSIONLESSHOME=$(dirname "$APPIMAGE")/celestia.home
if [ -d "$VERSIONLESSHOME" ] ; then
export HOME=$VERSIONLESSHOME
fi
Então ele usará celestia.home
se estiver lá, independente do nome do arquivo do AppImage.
Isso faz sentido?
Sim, AppImage.home
deve ser suficiente.
Já havia considerado e testado uma adaptação no AppRun.
Talvez com um fallback, se version-AppImage.home
não existir para a versão atual, use o AppImage.home
se disponível - semelhante ao que você sugere.
Isso pode fazer sentido.
Vamos ver se há algum feedback revelador dos usuários.
Olá,
podemos colocar os addons? e em caso afirmativo, em qual diretório?
Obrigado
@ Amich-26 Celestia 1.7 lê ~/.celestia.cfg
se existir.
No arquivo, você pode adicionar ExtrasDirectories
com diretórios com complementos:
{
ExtrasDirectories [ "extras-standard" "extras" "~/celestia"]
}
Observe que todos os diretórios devem ser listados, não apenas um adicional.
Na verdade, @ munix9 adiciona um patch para celestia.cfg
, então você pode usar ~/.celestia
para colocar addons.
Também é possível extrair os dados incorporados no AppImage:
./celestia-1.7.0-git-x86_64.AppImage --celestia-extract-data
Os complementos podem ser colocados na pasta criada e, em seguida, iniciados com CELESTIA_DATA_DIR=<dir> ./celestia-1.7.0-git-x86_64.AppImage
.
Veja também ./celestia-1.7.0-git-x86_64.AppImage -h
Celestia 1.7.0~git - Real-time visual space simulation
Usage: ./celestia-1.7.0-git-x86_64.AppImage [OPTION]...
CELESTIA_DATA_DIR=<dir> ./celestia-1.7.0-git-x86_64.AppImage [OPTION]...
Celestia options:
--conf <file>
Alternate configuration file.
--dir <dir>
Alternate installation directory.
The same can also be achieved with
CELESTIA_DATA_DIR=<dir> ./celestia-1.7.0-git-x86_64.AppImage
--extrasdir <dir>
Additional 'extras' directory.
--fullscreen
Start full-screen (not implemented yet).
-l, --log <file>
Copy console output into a file.
-s, --nosplash
Disable splash screen (not implemented yet).
-u, --url <url>
Start with the given URL (not implemented yet).
--help
Show celestia help (not implemented yet).
AppImage options:
--celestia-fisheye
Start celestia with fisheye projection (celestia-fisheye.cfg)
--celestia-create-general-home
Create a general home directory depending on the main version
/tmp/celestia-1.7.home
--celestia-extract-data
Extract the embedded data in the directory
/tmp/celestia-1.7.0-git-x86_64.AppImage.data
-h, --celestia-help
Show this help and exit.
obrigada ! Funciona.
Comentários muito úteis
Isso parece interessante. Vou dar uma olhada mais de perto.