`nix-env --ugpgrade` is very broken:
* It requires that all channels are interpretable as environments. This
usually means creating a `default.nix` with just `{}` in it to keep
getAllExprs() in nix/src/nix-env/nix-env.cc from recursing around
looking for packages.
* It fails when otherwise-unused packages have evaluation errors.
* It evaluates all ~100,000 packages in nixpkgs. This is very slow and
requires ~12 GiB of RAM.
* It only does updates when the top-level packages in `manifest.nix`
have version numbers that go up.
* So packages inside an unversioned `buildEnv` just never get updated.
Using a single `buildEnv` that is the list of packages you want is
the standard, recommended way to use `nix-env`.
* A `nix-env --upgrade` after `nix-env --set` will uninstall everything.
This keeps your environment declarative and ensures that all
packages receive regular updates.
'';
- # It seems like "upgrade" ought to be another choice here, powered
- # by "nix-env --upgrade". But when I tried this, it didn't work.
};
};
}