Nix: Sandbox and Reproducible Builds
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 a new way, NixOS.
In this presentation, we tell a story.
- I want my group to use the same language and tool versions exactly and repeatedly; I don't want to hear, “It works on my machine.” It should work on all machines and CI/CD.
- Wait, is this like Docker?
- Installing and Using Nix
- How to use
nix-shell
? - Finding our software in the nix-store
- Establishing a default.nix
- How to install
- Using some of the other nix commands
- Programming Nix
- Using Nix with Docker
- How dependencies are cached
- What is the actual operating system? Nix-OS?
About Daniel Hinojosa
Daniel is a programmer, consultant, instructor, speaker, and recent author. With over 20 years of experience, he does work for private, educational, and government institutions. He is also currently a speaker for No Fluff Just Stuff tour. Daniel loves JVM languages like Java, Groovy, and Scala; but also dabbles with non JVM languages like Haskell, Ruby, Python, LISP, C, C++. He is an avid Pomodoro Technique Practitioner and makes every attempt to learn a new programming language every year. For downtime, he enjoys reading, swimming, Legos, football, and barbecuing.
More About Daniel »