Ricardo Wurmus writes: > Where are these environment variables defined? According to `share/fish/config.fish`, they are defined in fish.cpp. #+BEGIN_SRC fish # __fish_datadir, __fish_sysconfdir, __fish_help_dir, __fish_bin_dir # are expected to have been set up by read_init from fish.cpp #+END_SRC You can get fish shell's environment variables using fish's `set` command. A single `set` without argument will print all environment variables. > The question is whether these old store references are kept in files > outside of the store (and thus are not directly under our control), or > if the packages that Guix builds include incorrect references. I guess > that it’s the former. > > As is the case for these other programmes that record paths in cache > files, we would need to patch fish to record only the stable names of > links to those files (e.g. ~/.guix-profile/foo/bar) rather than the > actual file names in the store, which may disappear upon “guix gc”. > Maybe you are right. Guix is still new to me, so I do not know details about guix's mechanism. Meiyo Peng