<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hello everyone,<div><br></div><div>This week the Black Team researched Nix Package Manager, a purely functional package management system, used by NixOS, a functional Linux distribution built on top of it. In addition, Nix can be installed side-by-side existing package managers in other Linux distributions, as well as macOS. Due to the purely functional nature of Nix, it supports atomic upgrades, seamless rollback, and efficient multi-user package management, which enhances the reliability and overall quality of a multi-user system.</div><div><br></div><div>Packages are defined using &quot;Nix expressions&quot;, which lazily install packages in directories under cryptographic hashes, so Nix has references to keep track of what is currently installed globally on the system. This prevents users from reinstalling the same packages as well as being able to garbage collect packages that are no longer depended on. Unfortunately, due to the ability of rollbacks and atomic nature of Nix&#39;s upgrades, storage space will have to be sacrificed. Also, since every upgrade is atomic, there will be much longer build times than a traditional package manager because packages have to be compiled from the source.</div><div><br></div><div>References:</div><div><a href="https://nixos.org/nix/about.html">https://nixos.org/nix/about.html</a><br></div><div><a href="https://www.tecmint.com/nix-package-manager-for-linux/">https://www.tecmint.com/nix-package-manager-for-linux/</a><br></div><div><a href="https://hackernoon.com/nix-haskell-concepts-for-package-management-65830ac89659">https://hackernoon.com/nix-haskell-concepts-for-package-management-65830ac89659</a></div><div><a href="https://www.gnu.org/ghm/2009/dolstra-nix-slides.pdf">https://www.gnu.org/ghm/2009/dolstra-nix-slides.pdf</a><br></div><div><div><br></div><div>Regards,</div><div>Black Team</div><div dir="ltr" class="gmail-m_7472864924516573641gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>