Skip to main content

The Nix Ecosystem (NixOS Part 1)

Nixos Logo

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