Abstract #
Introduction #
Nix, to put it succinctly, is an ecosystem of tools for making software deployments more reproducible. It aims to eliminate the complaint of “it works on my machine.”
In order to achieve this, an incredibly powerful set of tools has been developed. This presentation will cover a few of the most popular Nix projects, namely:
Nixlang #
- The purely functional domain-specific-language that all other Nix tools are configured in
Nix-Shell #
- An ephemeral shell environment which allows developers to specify dependencies, set environment variables, run setup scripts etc for a reproducible development environment
- Solves many of the same use cases as Docker for developers, but is more lightweight
- Also allows regular users to test out software before installing it
Disko #
- A tool which allows disk partitions and filesystem to be described in Nixlang
- Then it can automatically format and mount drives with a single command
Home-Manager #
- A tool which uses Nixlang to configure a user’s home directory, and can work alongside or replace standard dotfiles
Nixpkgs #
- One of the largest, most up-to-date software repositories in the world
- Larger than the AUR and much better maintained
Real-World Example #
This presentation will also show an example of how the author used Nixpkgs to replace the use of traditional package managers in an install script in a real-world software project. This expanded the amount of distros supported while simultaneously reducing maintainer overhead.
Presenter #
Zachary Liebl hartfordlug (at) zachliebl.com
Date #
Friday November 22nd 2024 at 6:30PM EST
Part 2 #
Part 2 (scheduled for December) will cover NixOS and related topics