&gt; Remember when everyone switched to Homebrew because Fink&#x2F;macports were &quot;antiquated&quot;, a.k.a. not written in Ruby?<p>Yes, I must admit I chose the word &quot;antiquated&quot; quite intentionally, as Homebrew seems to get so much attention (for now) because it&#x27;s written in Ruby and the website (<a href="http:&#x2F;&#x2F;brew.sh&#x2F;" rel="nofollow">http:&#x2F;&#x2F;brew.sh&#x2F;</a>) is shiny, rather than technical merits.<p>&gt; It was nice back then. Packages didn&#x27;t install themselves in &#x2F;usr&#x2F;local.<p>You might enjoy Nix, then -- for that reason, and the following:<p>1. Everything is stored in &#x2F;nix&#x2F;store -- nothing ever touches &#x2F;{local,}&#x2F;{bin,lib,share}<p>2. Profiles are symlink forests that merge multiple packages into one FSH[1]-like tree -- each link pointing into &#x2F;nix&#x2F;store. When you install a package, a new symlink forest is created replacing the one at ~&#x2F;.nix-profile (your user profile, being the default). If you request that nix rollback to a previous &quot;generation&quot; of your profile, all Nix has to do is replace the ~&#x2F;.nix-profile link to instead point at the previous generation&#x27;s symlink forest (you can think of this as bumping HEAD in git -- it&#x27;s nearly instantaneous). If upgrading a package goes wrong, just rollback.<p>3. Because Nix knows the entire dependency graph, its trivial to distribute a build plan across multiple machines (you can set this up to happen by default)<p>4. We have a continuous integration server (Hydra[2]) that builds and signs all of our packages. Of course, there&#x27;s nothing stopping you from building from source (or you could run your own Hydra instance, if you so wish).<p>[1]: <a href="http:&#x2F;&#x2F;www.pathname.com&#x2F;fhs&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.pathname.com&#x2F;fhs&#x2F;</a>
[2]: <a href="http:&#x2F;&#x2F;nixos.org&#x2F;hydra&#x2F;" rel="nofollow">http:&#x2F;&#x2F;nixos.org&#x2F;hydra&#x2F;</a>