Nix Learning
Published on
NixOS is definitely an advanced Linux distro, but it ain’t easy to understand overnight or like Archlinux to have easy manual, but it sure has alot on the table. There is whole bunch of families like Nix functional language, Nix package manager… so and on with the prefix “nix”.
This is really confusing, many hate nix and are not convinced to go long run just because of this difficulty (mess?). To make a simple thing work as expected, you need to go through such a rabbit hole. But once you know Nix* (families), everything will make sense, and you would feel bad to go back to old traditional Linux manners.
These are some of the learning resources, which are rich in content and nonetheless, will be confusing at some point. But engineers do have spared their time in writing these, taking actions, to reach some audience and solve some of the caveats of Nix. So dig through and learn new ;)
nix-learning
Uncategorized
- Nix Fundamentals (Video)
- A Nix terminology primer by a newcomer - Stéphan Kochen
- What Is Nix
- Getting Started With Nix: Introduction - Nasir Hussain
- Lightning Introduction to Nix for Developers - Robin Schroer
- Nix(OS) Thoughts - ?
- On-demand linked libraries for Nix - Farid Zakaria
- What Is Nix and Why You Should Use It - ?
- NixOS on prgmr and Failing to Learn Nix - Peter Bhat Harkins
- Towards a content-addressed model for Nix - Théophane Hufschmitt
- The easiest way (I’ve found) to create your own Nix channel - Luc Perkins
- Debugging a dynamic linking bug in a Nix project - Jack Coughlin
- adhoc executable patching on nixos - ?
- Strategies for Binary Relocation In Functional Build Systems - Max McDonnell
- How I Start: Nix - Christine Dodrill
- I was Wrong about Nix - Christine Dodrill
- Purely Functional Configuration Management with Nix and NixOS - Eelco Dolstra
- Basic Use-Cases of the Nix Package Manager - Brandon Gottlob
- Development with Nix: Python - Thomaz Leite
- Dapp tools and the Nix package manager - Mikael Brockman
- NixOS and Stateless Deployment - ?
- Encrypted Secrets with NixOS - Christine Dodrill
- Purely Functional Linux with NixOS - Joe Nelson
- Nix + Bazel = fully reproducible, incremental builds - Mathieu Boespflug, Théophane Hufschmitt
- Reflections On NixOS - Ian Denhardt
- Hardening Compiler Flags for NixOS - Franz Pletz
- Your home in Nix (dotfile management) - Hugo Reeves
- My NixOS Desktop Flow - Christine Dodrill
- Tailscale on NixOS: A new Minecraft server in ten minutes - Christine Dodrill
- Setting up a git server on NixOS - Terin Stock
- NixOS: For developers - Martin Myrseth
- NixOS: Into the deep end - Martin Myrseth
- A Tutorial Introduction to Nix - Rohit Goswami
- Benchmarking nixpkgs builds - Jonas Chevalier
- Recursive Nix experiment - Jonas Chevalier
- Deploying Kubernetes apps with KubeNix - Jonas Chevalier
- Nix - A One Pager - Vincent Ambo
- Moving into NixOS - Gabriel Arazas
- NixOS: the good, the bad, and the ugly - William G Hatch
- Nix: A Reproducible Setup for Linux and macOS - Nicolas Mattia
- Easy Peasy Nix Versions - Nicolas Mattia
- Recovering Nix derivation attributes of runtime dependencies - Nicolas Mattia
<!– TODO: add more from their website –>
- Nix By Example - Susan Potter
- NixOps By Example - Susan Potter
- NixOS By Example - Susan Potter
- Inspecting Nix lambda function named arguments - Susan Potter
<!– TODO: add Tweag Nix flakes –>
Overview
Nix the language
- A tour of Nix - an introduction to the Nix Programming Language
Nix Shell
- An introduction to nix-shell - Mattia Gheda
- caching your nix-shell - Farid Zakaria
Nix Flakes
- Building with Nix Flakes for, eh .. reasons! - Yannik Sander
- Nix Flakes edition - Jonas Chevalier
Experience
- Eight Months of NixOS - ash
- Nix is the ultimate DevOps toolkit - Ruud van Asseldonk, Reinier Maas, Falco Peijnenburg, Fabian Thorand, and Robert Kreuzer
Language Specific
Java
Elixir
- Using Nix in Elixir projects - Jean-Philippe
C++
- Setting up a C++ project environment with nix - Jacek Galowicz
Rust
Series
- Nix by Example - James Fisher
- Ian Henry’s How to Learn Nix series
- Part 1: What’s all this about?
- Part 2: Prior knowledge
- Part 3: What we talk about when we talk about Nix
- Part 4: Quick starts, full hearts
- Part 5: Basic package management
- Part 6: Profiles
- Part 7: Garbage collection
- Part 8: Channels
- Part 9: Learning to share
- Part 10: My first derivation
- Part 11: Okay my actual first derivation
- Part 12: The Nix expression language
- Part 13: Derivations
- Part 14: Built-in Functions
- Part 15: Advanced Topics
- Part 16: Command Reference
- Part 17: Configuration
- Part 18: So I read the manual huh
- Part 19: Switching from Homebrew to Nix
- Part 20: My first Nix bug
- Part 21: My first package upgrade
- Part 22: Setting up a declarative user environment
- Part 23: How to learn Nixpkgs
- Part 24: Overlays
- Part 25: Overriding
These links are extracted from humancalico’s git repo (https://github.com/humancalico/nix-learning).
With that sorted, I hope learning becomes good ;)