Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
nix3-registry(1)	    General Commands Manual	      nix3-registry(1)

	      Warning
	      This  program  is	 experimental <../../development/experimental-
	      features.md#xp-feature-nix-command> and its interface is subject
	      to change.

Name
       nix registry - manage the flake registry

Synopsis
       nix registry [option...]	subcommand

       where subcommand	is one of the following:

         nix registry add <./nix3-registry-add.md>  -	add/replace  flake  in
	  user flake registry
         nix  registry	 list  <./nix3-registry-list.md>  - list available Nix
	  flakes
         nix registry pin <./nix3-registry-pin.md> - pin a flake to its  cur-
	  rent version or to the current version of a flake URL
         nix  registry	remove <./nix3-registry-remove.md> - remove flake from
	  user flake registry

Description
       nix registry provides subcommands for managing flake registries.	 Flake
       registries are a	convenience feature that allows	you to refer to	flakes
       using  symbolic identifiers such	as nixpkgs, rather than	full URLs such
       as git://github.com/NixOS/nixpkgs. You can use these identifiers	on the
       command line (e.g. when you do nix run nixpkgs#hello) or	in flake input
       specifications in flake.nix files. The  latter  are  automatically  re-
       solved to full URLs and recorded	in the flake's flake.lock file.

       In  addition, the flake registry	allows you to redirect arbitrary flake
       references (e.g.	github:NixOS/patchelf) to another location, such as  a
       local fork.

       There are multiple registries. These are, in order from lowest to high-
       est precedence:

         The  global registry,	which is a file	downloaded from	the URL	speci-
	  fied by the setting flake-registry. It is cached locally and updated
	  automatically	when it's older	than tarball-ttl seconds. The  default
	  global     registry	 is    kept    in    a	  GitHub    repository
	  <https://github.com/NixOS/flake-registry>.

         The system registry, which is	shared by all users. The default loca-
	  tion is /etc/nix/registry.json. On NixOS, the	system registry	can be
	  specified using the NixOS option nix.registry.

         The user registry ~/.config/nix/registry.json. This registry can  be
	  modified by commands such as nix registry pin.

         Overrides specified on the command line using	the option --override-
	  flake.

       Note  that the system and user registries are not used to resolve flake
       references in flake.nix.	They are only used to resolve flake references
       on the command line.

Registry format
       A registry is a JSON file with the following format:

       {
	 "version": 2,
	 "flakes": [
	   {
	     "from": {
	       "type": "indirect",
	       "id": "nixpkgs"
	     },
	     "to": {
	       "type": "github",
	       "owner":	"NixOS",
	       "repo": "nixpkgs"
	     }
	   },
	   ...
	 ]
       }

       That is,	it contains a list of objects with  attributes	from  and  to,
       both  of	 which	contain	a flake	reference in attribute representation.
       (For example, {"type": "indirect", "id":	"nixpkgs"}  is	the  attribute
       representation  of  nixpkgs, while {"type": "github", "owner": "NixOS",
       "repo": "nixpkgs"} is the attribute representation of github:NixOS/nix-
       pkgs.)

       Given some flake	reference R, a registry	entry  is  used	 if  its  from
       flake reference matches R. R is then replaced by	the unification	of the
       to flake	reference with R.

Matching
       The  from flake reference in a registry entry matches some flake	refer-
       ence R if the attributes	in from	are the	same as	the attributes	in  R.
       For example:

         nixpkgs matches with nixpkgs.

         nixpkgs matches with nixpkgs/nixos-20.09.

         nixpkgs/nixos-20.09 does not match with nixpkgs.

         nixpkgs does not match with git://github.com/NixOS/patchelf.

Unification
       The  to	flake reference	in a registry entry is unified with some flake
       reference R by taking to	and applying the rev and ref  attributes  from
       R, if specified.	For example:

         github:NixOS/nixpkgs unified with nixpkgs produces github:NixOS/nix-
	  pkgs.

         github:NixOS/nixpkgs	 unified   with	 nixpkgs/nixos-20.09  produces
	  github:NixOS/nixpkgs/nixos-20.09.

         github:NixOS/nixpkgs/master unified  with  nixpkgs/nixos-20.09  pro-
	  duces	github:NixOS/nixpkgs/nixos-20.09.

Options
   Logging-related options
         --debug <#opt-debug>

	  Set the logging verbosity level to `debug'.

         --log-format <#opt-log-format> format

	  Set the format of log	output;	one of raw, internal-json, bar or bar-
	  with-logs.

         --print-build-logs <#opt-print-build-logs> / -L

	  Print	full build logs	on standard error.

         --quiet <#opt-quiet>

	  Decrease the logging verbosity level.

         --verbose <#opt-verbose> / -v

	  Increase the logging verbosity level.

   Miscellaneous global	options
         --help <#opt-help>

	  Show usage information.

         --offline <#opt-offline>

	  Disable  substituters	 and  consider all previously downloaded files
	  up-to-date.

         --option <#opt-option> name value

	  Set  the  Nix	 configuration	setting	 name  to  value   (overriding
	  nix.conf).

         --refresh <#opt-refresh>

	  Consider all previously downloaded files out-of-date.

         --version <#opt-version>

	  Show version information.

	  Note

	  See man nix.conf <../../command-ref/conf-file.md#command-line-flags>
	  for overriding configuration settings	with command line flags.

							      nix3-registry(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nix3-registry&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help