Dear Simon,

Thanks for working on this ! I've tried to follow the nix install process. Here are some (incomplete) notes.
For brievity's sake, only the Zlib package will be shown in the files below.

1. A list of dependencies is stored into a YAML:
8<-----------------------------------------------------------------------
cat /nix/store/3c8lw0flmvvl5hlkc8c7xcwvwj1kbzp2-julia-package-closure.yml
- name: Zlib_jll
  uuid: 83775a58-1f1d-513f-b197-d71354ab007a
  version: 1.2.13+0
  depends_on:
    "Libdl": "8f399da3-3557-5675-b5ff-fb832c97cbdb"
8<-----------------------------------------------------------------------

2. Each dependency is a derivation and transformed into a git repo

8<-----------------------------------------------------------------------
building '/nix/store/icap989di414ax9zpq1b07ca4szn1v6j-Zlib_jll.jl-866bc71.drv'...
exporting https://github.com/JuliaBinaryWrappers/Zlib_jll.jl.git (rev 866bc7103cfb6233c35d6f1b2c6bd23ef9f6fe5f) into /nix/store/pi31a0w9xm3qych5yfdw3mg93sxl41rq-Zlib_jll.jl-866bc71
Initialized empty Git repository in /nix/store/pi31a0w9xm3qych5yfdw3mg93sxl41rq-Zlib_jll.jl-866bc71/.git/
remote: Enumerating objects: 26, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 26 (delta 1), reused 1 (delta 1), pack-reused 19 (from 1)
Unpacking objects: 100% (26/26), 5.55 KiB | 1.85 MiB/s, done.
From https://github.com/JuliaBinaryWrappers/Zlib_jll.jl
* branch            866bc7103cfb6233c35d6f1b2c6bd23ef9f6fe5f -> FETCH_HEAD
Switched to a new branch 'fetchgit'
removing `.git'...
8<-----------------------------------------------------------------------


3. Package location are overriden, first into a JSON

8<-----------------------------------------------------------------------
$ cat /nix/store/nf666fq31xz8f7hx9qi9ygicf4hdfx4i-Overrides.json
    "uuid-83775a58-1f1d-513f-b197-d71354ab007a": {
        "Zlib": {
            "path": "/nix/store/6d4hpjr4f04zq9090kd9kkffa9j2q7gj-Zlib",
            "sha1": "b86177a36c8ba482120ab766b6670177dffd72f3"
        }
    },
8<-----------------------------------------------------------------------

4. ... then in a TOML

8<-----------------------------------------------------------------------
$ cat /nix/store/gnwl6k320mv0pnb8hpcdww40hypp3i7f-Overrides.toml

b86177a36c8ba482120ab766b6670177dffd72f3 = "/nix/store/6d4hpjr4f04zq9090kd9kkffa9j2q7gj-Zlib"
8<-----------------------------------------------------------------------

5. A local registry is created. Somewhere, the following code is run

8<-----------------------------------------------------------------------
Pkg.Registry.add(Pkg.RegistrySpec(path=\"/nix/store/p5dy9z5869qnmmawsid5dcy1nqy1k5sn-minimal-julia-registry`.
8<-----------------------------------------------------------------------

The registry looks like this:

8<-----------------------------------------------------------------------
$ tree /nix/store/p5dy9z5869qnmmawsid5dcy1nqy1k5sn-minimal-julia-registry
├── A
│   ├── ArrowTypes
│   │   ├── Compat.toml
│   │   ├── Deps.toml
│   │   ├── Package.toml
│   │   └── Versions.toml
8<-----------------------------------------------------------------------

with Compat.toml
8<-----------------------------------------------------------------------
["1-1.1"]
julia = "1.3.0-1"

["1.2-2"]
julia = "1"
8<-----------------------------------------------------------------------

with Deps.toml
8<-----------------------------------------------------------------------
[1-2]
UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

["2.1-2"]
Sockets = "6462fe0b-24de-5631-8697-dd941f90decc"
8<-----------------------------------------------------------------------

with Package.toml
8<-----------------------------------------------------------------------
name = "ArrowTypes"
uuid = "31f734f8-188a-4ce0-8406-c8a06bd891cd"
repo = "file:///nix/store/ndqz9cikh67hqwxh4l7vji07764p4xpk-julia-ArrowTypes-2.3.0"
subdir = "src/ArrowTypes"
["2.3.0"]
git-tree-sha1 = "404265cd8128a2515a81d5eae16de90fdef05101"
8<-----------------------------------------------------------------------

6. I'm not sure how the registry is used at this step so here the log output if you can make sense out of it

8<-----------------------------------------------------------------------
Copying registry from `/nix/store/p5dy9z5869qnmmawsid5dcy1nqy1k5sn-minimal-julia-registry`
Copied registry `General` to `/nix/store/ap871sp56qx74k4hz2nlnjvpys8pdh7j-julia-depot/depot/registries/General`
Adding packages: CSV
Resolving package versions...
Cloning [e2d170a0-9d28-54be-80f0-106bbe20a464] DataValueInterfaces from file:///nix/store/0gdzfghqzs56ilzb9dx239fij4hny9i3-julia-DataValueInterfaces-1.0.0
Installed DataValueInterfaces ───────── v1.0.0
...
Updating `/nix/store/ap871sp56qx74k4hz2nlnjvpys8pdh7j-julia-depot/project/Project.toml`
[336ed68f] + CSV v0.10.14
Updating `/nix/store/ap871sp56qx74k4hz2nlnjvpys8pdh7j-julia-depot/project/Manifest.toml`
Removing registry `General` from /nix/store/ap871sp56qx74k4hz2nlnjvpys8pdh7j-julia-depot/depot/registries/General
building '/nix/store/0k35snxa68lrkap77s376gqx8ppxr8yn-julia-1.9.4-env.drv'...
8<-----------------------------------------------------------------------

Hope that helps,

Alexis