GHC: can't find a package database
In case you’re using the nix package manager your nix build
fails with:
these derivations will be built:
/nix/store/7xk0m6r07x85rwlh01b3wvq8bbzwbw1n-purebred-0.1.0.0.drv
/nix/store/dmj2ax3qsa55jjl6by9fb9sk929k98nl-ghc-8.6.3-with-packages.drv
/nix/store/j9fl8cmq9c6kjnz9dj79rmbs1kzafyys-purebred-with-packages-8.6.3.drv
building ‘/nix/store/7xk0m6r07x85rwlh01b3wvq8bbzwbw1n-purebred-0.1.0.0.drv’…
setupCompilerEnvironmentPhase
Build with /nix/store/cclv7n6jr311i5ywwkms1m3iz4lsg37j-ghc-8.6.3.
unpacking sources
unpacking source archive /nix/store/j23vlzlg2rmqy0a706h235j4v9zh4m9s-purebred
source root is purebred
patching sources
compileBuildDriverPhase
setupCompileFlags: -package-db=/build/setup-package.conf.d -j4 -threaded
Loaded package environment from /build/purebred/.ghc.environment.x86_64-linux-8.6.3
ghc: can’t find a package database at /home/rjoost/.cabal/store/ghc-8.6.3/package.db
builder for ‘/nix/store/7xk0m6r07x85rwlh01b3wvq8bbzwbw1n-purebred-0.1.0.0.drv’ failed with exit code 1
cannot build derivation ‘/nix/store/dmj2ax3qsa55jjl6by9fb9sk929k98nl-ghc-8.6.3-with-packages.drv’: 1 dependencies couldn’t be built
cannot build derivation ‘/nix/store/j9fl8cmq9c6kjnz9dj79rmbs1kzafyys-purebred-with-packages-8.6.3.drv’: 1 dependencies couldn’t be built
error: build of ‘/nix/store/j9fl8cmq9c6kjnz9dj79rmbs1kzafyys-purebred-with-packages-8.6.3.drv’ failed
then the solution to it is actually easier then you think. It happens when you run
cabal new-repl
inside a nix shell, because cabal creates a hidden environment file. So look for a
.ghc.environment.–
# for example on Linux with GHC 8.6.3
.ghc.environment.x86_64-linux-8.6.3
Delete it and you should be good to go.