I am trying to install the Haskell Platform on Linux for the first time (I’m also a fairly new Linux user). The victim system is a fresh Red Hat system. And everything involved here should be 64 bit.
The directions at the platform website  indicate that I need a ghc7.0.3 to boostrap things. They provide a link to a generic binary of ghc-7.0.3 to do this. I fetched this and ran
$ ./configure ... $ make install ...
as per the directions without incident (it is a binary, so no compilation needed)
However, when I tried to run ghci I get the output.
$ ghci GHCi, version 7.0.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... <command line>: can't load .so/.DLL for: gmp (libgmp.so: cannot open shared object file: No such file or directory)
For some reason ghci cannot find libgmp.so. Running ghci ultimately invokes
with a mess of options. I checked the dependencies via ldd
$ ldd /usr/local/lib/ghc-7.0.3/ghc linux-vdso.so.1 => (0x00007fffe5f5c000) libncursesw.so.5 => /lib64/libncursesw.so.5 (0x0000003ee7000000) librt.so.1 => /lib64/librt.so.1 (0x0000003ee5800000) libutil.so.1 => /lib64/libutil.so.1 (0x0000003ef3000000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003ee5000000) libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x0000003ee4400000) libm.so.6 => /lib64/libm.so.6 (0x0000003ee4c00000) libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003ee5400000) libc.so.6 => /lib64/libc.so.6 (0x0000003ee4800000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003ef3400000) /lib64/ld-linux-x86-64.so.2 (0x0000003ee4000000)
and it shows that it foud libgmp. libgmp is in /usr/local/lib and /usr/local/lib64.
I am not sure how to get further with this. Any suggestions?
You either add
$LD_LIBRARY_PATH, or add them to
/etc/ld.so.conf, or (since you already have
/usr/lib64/libgmp.so.3) add a missing symbolic link:
cd /usr/lib64 sudo ln -s libgmp.so.3 libgmp.so
(and perhaps the same for /usr/lib).
Note that /usr/lib64/libgmp.so.3 might be a different version from /usr/local/lib64/libgmp.so, make sure ghc can actually be used with the former.
Installing gmp-devel package helped in my case (opensuse)
I’m not sure that setting a symbolic link from libgmp.so to libgmp.so.3 is the right way to go. What happens when you get a version update and so libgmp.so.3 disappears. Setting LD_LIBRARY_PATH seems like a better solution.
There’s also another solution for RedHat/CentOS and by extension probably Fedora: install the gmp-devel package. This sets up the symbolic link above, but does so with in the distribution (so updates should update the symbolic link also).