Nix package manager solves the problem of inconsistent, incomplete package state by enforcing complete state by default. Nix provides atomic upgrades and rollbacks, side-by-side installation of multiple versions of a package, multi-user support, per-user profiles, and improved conflicts resolution. It also has powerful user environment management which makes it easy to work with multiple profiles.
How to publish
Package Management