The goal is to have a -dev
version and a stable repository-based version installed at the same time, but with different data
and config
directories so that the dev version is not operating on(and possibly corrupting) the stable version's data. They don't actually have to be able to run at the same time, although I wouldn't exactly complain about that extra feature.
I already know and use tools like stow
or checkinstall
, however as far as I can tell they're mostly for the installation part, not the actually running part.
I also know and use env vars like XDG_DATA_HOME
and XDG_CONFIG_HOME
(fd.org specs) and - if the program actually uses them - they work pretty much exactly as I hoped they would.
However always creating wrappers that call the compiled version with e.g. XDG_DATA_HOME=~/dev/<program>/data XDG_CONFIG_HOME=~/dev/<program>/config
is kind of a nuisance. Plus, some of them then create their own GSettings/dconf folders so that I risk them getting out of sync with my global settings.
This time in particular it's about a feed reader called Liferea which stores its settings in ~/.config/liferea/
and its database in ~/.local/share/liferea
.
Using XDG_*_HOME
prefixes works, but I'm looking more for something like checkinstall
, some wrapper for make install
maybe. Or possibly even some clever bash-fu that sets them if I'm calling a program from a certain directory or so. Like directory == ~/dev/<prog>/ ? -> XDG_*_ ...
I've already searched stackexchange and askubuntu, but all I could find was about keeping the binaries separated([1] [2] [3] [4]).