NixOS: Sandbox and Reproducible Builds

Categories: NixOS, Nix, Builds, Containers

We have gone through a lot when it comes to configuring our computers with Java, with an editor, and maybe even setting up Git. We often take great care in ensuring that our PATH and even JAVA_PATH environments are clean and organized. Then, when we decide to install software that depends on the software that we already have installed, what does it do, reinstall that dependency! Not only that, it’s somewhere else. Now we have multiple Java’s with the same version. We have multiple pythons, Multiple everything. It’s time to end this madness and aggravation and nix the old way and introduce the new way, NixOS.

In this presentation, we will cover:

  • What NixOS is, and why it is useful?

  • How is it different from using Docker or any other container environment?

  • How to install

  • What is the actual operating system?

  • How to use nix-shell?

  • How to create an environment

  • Using niv

  • Finding and using flakes

  • Programming NixOS

  • Using NixOS with Docker

  • How dependencies are cached

  • How to integrate it with your project

  • What does NixOS mean for CI/CD environments.