019f8fd211
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15c
git-subtree-split:24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
49 lines
1.3 KiB
Markdown
49 lines
1.3 KiB
Markdown
---
|
|
title: "Lets Learn Nix Caching"
|
|
date: 2020-03-17T18:05:38Z
|
|
draft: true
|
|
---
|
|
|
|
## TL;DR
|
|
|
|
1. I use `NixOS/nixpkgs-channels` instead of `NixOS/nixpkgs` and avoid
|
|
`nix-channel`.
|
|
|
|
## More information
|
|
|
|
- By default the Nix package manager uses cache.nixos.org as a binary cache.
|
|
- Visit status.nixos.org
|
|
- `git clone git@github.com:NixOS/nixpkgs-channels` instead of
|
|
`NixOS/nixpkgs`. The former mirrors the latter and uses Git branches to track
|
|
the published channels.
|
|
|
|
## What is a Nix channel
|
|
|
|
If you run...
|
|
|
|
```shell
|
|
$ git clone git@github.com:NixOS/nixpkgs ~/nixpkgs
|
|
$ export NIX_PATH="nixpkgs=$(realpath ~/nixpkgs)"
|
|
```
|
|
|
|
One benefit to cloning nixpkgs is that you can browse the source code on your
|
|
machine using tools like `git` and `emacs`. You can also experimentally patch
|
|
and test Nix code this way.
|
|
|
|
If any of the above appeals to you, clone `nixpkgs-channels` instead.
|
|
|
|
The Nix maintainers build and test the commits from `nixpkgs` using Hydra. Tests
|
|
include reproducibility tests, etc.
|
|
|
|
Various channels have different verification phases.
|
|
|
|
The cache at cache.nixos.org is populate the cache at cache.nixos.org.
|
|
|
|
You want to increase the likelihood that you are hitting this cache. For
|
|
example, `google-chrome` takes hours to build.
|
|
|
|
## What is a binary cache?
|
|
|
|
## What is Hydra (Nix CI)?
|
|
|
|
## What is Cachix?
|