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] ).