Nix Ecosystem Overview

  • Software is graph of dependencies
    • Typically this graph is implicit
    • Nix makes it explicit

Problems with traditional package managers

  • Things don’t always work the same on my machine as on your machine
  • Dependency conflicts
  • Accumulation of cruft
  • Packages can only be installed system or user-wide
  • Copy and pasting installation instructions

Advantages of Nix

  • Reproducible Environments they work the same every time, even on different machines
  • Environments as Code No more copying and pasting into your terminal
  • Single Tool, Many Languages Nix has packages for developing in many different languages
  • Configuration Use a single language to manage machine and user configuration
  • Rollbacks Break something? Easily rollback machine configuration. Experiment without fear!

nix-darwin

  • nix-darwin is an important project for users of Nix on macOS, as it provides a way to use the Nix package manager on this platform and take advantage of its powerful and functional approach to package management
  • nix-darwin flake the installer doesn’t work with flakes out of the box yet nix-darwin will need to be to be bootstrapped using the installer or manually. Afterwards the flake based configuration can be built.

home-manager

  • Home Manager is a useful tool for managing and customizing the user environment in Nix-based systems, and can help users to easily maintain a consistent and personalized environment across multiple machines

nix-flake

  • Nix flakes provide a way to modularize and share configuration information for software projects, making it easier to manage complex dependencies and reproduce consistent environments

nix-channels

nix-store

  • Graph database /nix/store on your disk

nix-derivation

nix-env

  • imperatively install packages
  • only use if you want to install packages imperatively

cachix

  • cachix is a binary cache service for the Nix package manager

Resources

Notes mentioning this note

There are no notes linking to this note.