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?
 |