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.