yesterday I had some spare time and I spent it to migrate my laptop configuration to use flakes. To that purpose, I gave another read to @edolstra nice blog entry on managing nixos config with flakes then i skimmed through nixos’ wiki flakes page to know what it had to say on the matter; I also gave a look to @nrdxp DevOS repo. I came out with a working configuration that pleases me, you can have a look at it here.
While setting up all the pieces I familiarized with the concept of the flake registry and I found out that it’s actually the union of three registries, the global, the system, and the user’s. The global is a repo on NixOS github group, the system one is in
/etc/nix and the user’s one is in
It can be modified imperatively by using the
nix registry [add| ... ] but also by configuring the
nix.registry submodule as I do here. This way, the
nixpkgs release is pinned and will not be downloaded again when running
nix search nixpkgs foo.
Nice! I played a bit the registry but I’m now stumbled on an error returned by commands like
nix flake show nur (nur flake is in the global registry):
$ nix flake show nur error: cannot write modified lock file of flake 'flake:nur' (use '--no-write-lock-file' to ignore) (use '--show-trace' to show detailed location information) $ nix flake show nur --show-trace error: cannot write modified lock file of flake 'flake:nur' (use '--no-write-lock-file' to ignore) … while updating the lock file of flake 'path:/nix/store/02nbfm4mc8r5iv80w6p9pash6nhgsyk4-source?lastModified=1619994493&narHash=sha256-cYKOTkRp1J0DIrJ6MNBH4dAmpQGaf2shppxKuI0eIac=&rev=72fd1387746e2d2806e1ec172886c149c3f46180'
… this happens even if I’m root (but I don’t know if that should change anything).
Now, I can obviously add the
--no-write-lock-file on the command line, but I wanted to play by exploring flakes in the repl using the
builtins.getFlake function and that too raises an error and doesn’t complete the operation. There’s no doc yet for that function so I don’t know if it’s possible to pass options like the
no-write-lock-file to it.
Does anyone have some experience with the registry and can shed some light on the error?