Nix
nix is a language/tool used to handle reproducible declarative packages and system configurations.
It can be used as a package manager nearly everywhere, as an OS, both for server and user machines, and as a dev env and services hosting deployements.
Reading Ressources
Installation
System-wide/userspace-wide
There are two ways to install nix to use as your system package manager etc:
You do not necessarily need home-manager, but it automates nicely setting up your environment, handle dotfiles etc.
On a non-nix machine, I first install nix, then home-manager (root access needed), in single-user mode.
I then setup my home.nix file, and then run :
home-manager switch
This installs and sets up everything as defined in the home.nix file.
Specifics
Missing /etc/nix/nix.conf or ~/.config/nix/nix.conf
It's okay to create those files.
Flatpaks
Apparently, installing the package is enough to add flatpaks to the system.