This is a great question that we’ve had a few times so I wanted to answer it separately so that we can include links to this response in documentation, etc.
This is something we’ve put on the back burner for the short term as we work to port the CLI from the original (bash) “MVP” to the new rust rewrite, but the eventual goal is for the “system-installed” flox to:
- automatically pull the
flox/default
environment if it hasn’t been pulled already - at some configurable interval (which can be zero to disable the feature), perform a background
git fetch
for theflox/default
profile and warn or prompt users to perform an upgrade - perform various “sanity checks” such as highlighting when the installed version of Nix is too old, and if necessary warn people to perform a “system upgrade” of flox
- finally, finish by invoking
exec path/to/flox/default/bin/flox @argv
With this approach users will always invoke flox from the flox/default
environment (even if it is not in their PATH
), which will always be at or newer than the version installed in the “system”, but that can be rolled back as necessary if someone wants to explicitly pop back to use a previous version.