Definindo XDG_DATA_HOME e XDG_CONFIG_HOME na compilação / por programa

1

O objetivo é ter uma versão -dev e uma versão estável baseada em repositório instalada ao mesmo tempo, mas com diferentes diretórios data e config para que a versão dev não esteja operando (e possivelmente corrompendo ) os dados da versão estável. Na verdade, eles não precisam ser capazes de executar ao mesmo tempo, embora eu não reclame exatamente sobre esse recurso extra.

Eu já conheço e uso ferramentas como stow ou checkinstall , mas até onde eu sei, elas são principalmente para a parte de instalação, não para a parte em execução.
Eu também conheço e uso env vars como XDG_DATA_HOME e XDG_CONFIG_HOME ( especificações fd.org ) e - se o programa realmente os usa - eles funcionam exatamente como eu esperava.

No entanto, sempre criando wrappers que chamam a versão compilada com, por exemplo, XDG_DATA_HOME=~/dev/<program>/data XDG_CONFIG_HOME=~/dev/<program>/config é uma espécie de incômodo. Além disso, alguns deles criam suas próprias pastas GSettings / dconf para que eu corra o risco de ficar fora de sincronia com minhas configurações globais.

Desta vez, em particular, trata-se de um leitor de feeds chamado Liferea , que armazena suas configurações em ~/.config/liferea/ e seu banco de dados em ~/.local/share/liferea .
 Usar XDG_*_HOME prefixos funciona, mas estou procurando mais por algo como checkinstall , algum wrapper para make install talvez. Ou possivelmente até algum bash-fu inteligente que os define se eu estou chamando um programa de um determinado diretório ou algo assim. Como directory == ~/dev/<prog>/ ? -> XDG_*_ ...

Já pesquisei stackexchange e askubuntu, mas tudo o que consegui encontrar foi manter os binários separados ( [1] [2] [3] [4] ).

    
por Beef HamBolt 15.09.2014 / 14:24

0 respostas