haskellcabalcabal-install

Can't install "System.Random" by cabal


I try to install "System.Random" by cabal through Powershell & Git Bash.

getting this result.

PS C:\Users\xxx> cabal install random
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: random. Perhaps you want to use --lib to install libraries instead.

And then I try to input like this

cabal install --lib random
Resolving dependencies...

and 

cabal install random --lib

both output Resolving dependencies... Up to date without warning. but ghci Could not find module `System.Random'

input cabal install random still having the same result with warning.


Solution

  • It is a bad idea to install packages globally, so cabal install doesn't do that. The package is built and placed into the Cabal package database, but GHC won't find it unless you specifically tell Cabal to point GHC at it:

    cabal repl -b random # -b is short for --build-depends
    # Note that cabal install isn't really necessary: the above command would have installed random if it wasn't there already
    

    I think your Cabal/GHC installation might be outdated, however. When you do cabal install --lib random, recent versions of Cabal should write out an "environment file" at %APPDATA%\ghc\arch-os-ghcversion\environments\default, which GHC should then automatically read (GHCi should say something like Loaded package environment from ...), and it should then find the installed package. If you are using the latest version of everything,

    cabal install --lib random
    ghci
    

    should work.