Como um appimage mantém as configurações entre os lançamentos?

3

Pelo pedido popular , estou perguntando como é que as AppImages, que são somente leitura e fique compactado , armazene suas configurações.

    
por Dan Dascalescu 26.02.2018 / 09:59

2 respostas

5

Em o README do AppImageKit :

  

Diretórios especiais

     

Normalmente, o aplicativo contido em um AppImage armazenará seus   arquivos de configuração sempre que normalmente os armazena (mais freqüentemente   em algum lugar dentro de $HOME ). Se você invocar um AppImage construído com um   versão recente do AppImageKit e tem um desses   diretórios no local, os arquivos de configuração serão armazenados   ao lado do AppImage. Isso pode ser útil para casos de uso portáteis,   por exemplo, carregando um AppImage em um pendrive, junto com seus dados.

     
  • Se houver um diretório com o mesmo nome que o AppImage mais .home , então $HOME será automaticamente definido para ele antes de executar   o aplicativo de carga útil
  •   
  • Se houver um diretório com o mesmo nome que o AppImage mais .config , então $XDG_CONFIG_HOME será automaticamente definido para ele   antes de executar o aplicativo de carga útil
  •   
    
por muru 26.02.2018 / 10:07
4

@ A resposta de muru é correta e deve ser votada e aceita.

Deixe-me adicionar alguns pontos para maior clareza:

  • Você pode fazer com que o AppImage crie os dois diretórios sozinho chamando-o com os parâmetros --appimage-portable-home e --appimage-portable-config . Isso tem que ser feito apenas uma vez:

    ../some/path/to/my.AppImage --appimage-portable-home
    ../some/path/to/my.AppImage --appimage-portable-config
    

    Isso criará os respectivos diretórios (inicialmente vazios):

    1. O AppImage pensará então que ../some/path/to/my.AppImage.home/ é $HOME .
    2. O AppImage também pensará que ../some/path/to/my.AppImage.config/ é $XDG_CONFIG_HOME .

      (BTW, $XDG_CONFIG_HOME padrão é muito frequente para $HOME/.config .)

  • Se você encontrar dois parâmetros muito difíceis de lembrar, memorize outro: --appimage-help . Usar isso listará e explicará todos os outros que estão disponíveis.

  • Nem todo aplicativo usa $HOME ou $XDG_CONFIG_HOME . Nesse caso, seus diretórios recém-criados permanecerão vazios. Caso contrário, eles serão preenchidos pela carga útil do AppImage em tempo de execução e ao sair para todas as configurações que desejar lembrar.

  • Muitos aplicativos usam apenas uma das duas variáveis de ambiente, $HOME ou $XDG_CONFIG_HOME (e, portanto, my.AppImage.home/ resp. my.AppImage.config/ ), não ambos.

  • Alguns aplicativos podem até ficar confusos se ambos dos diretórios de configurações portáteis existirem ...

  • Se você renomear o old.AppImage para new.AppImage , os diretórios old.AppImage.home/ e old.AppImage.config/ deixarão de funcionar imediatamente. Você precisa renomear os dois diretórios de acordo: new.AppImage.home/ e new.AppImage.config/ .

  • Se você renomear awesome.AppImage para simplesmente incrível , terá que renomear o diretório awesome.AppImage.home/ também: a awesome.home/ .

  • Se você mover o AppImage para um novo local e quiser manter os diretórios base e de configuração usados anteriormente, terá que movê-los também.

  • Se você quiser se livrar da configuração antiga e quiser fazer com que o AppImage use novamente os caminhos "padrão" para $HOME para $XDG_CONFIG_HOME , basta excluir esses diretórios novamente.

  • Se você quiser que uma nova carga útil da AppImage use as mesmas configurações da versão instalada no sistema do aplicativo de carga útil, você deve:

    1. Crie o diretório vazio relevante primeiro;
    2. Localize o respectivo diretório de configuração do aplicativo instalado no sistema;
    3. Copie todo o conteúdo desse diretório para o novo vazio.
por Kurt Pfeifle 01.03.2018 / 02:43