
Johan asked me a great question about installing HP release candidates on
Mac OS X, and I thought the answer would be of general interest:
On Wed, May 8, 2013 at 8:55 AM, Johan Tibell
I always want to try out new RCs when they are released, but I'm always worried I'll screw up my current install. Can these happily coexist next to old versions of the platform and random GHC binary installs I have?
Multiple HPs can exist side-by-side *so long as they are different GHC versions*. Nothing in the older install will get clobbered..... *EXCEPT*, the "bare" symlinks in /usr/local/bin will point at the newer version. For example, after installing both the last HP, and this RC1, I now have: /usr/bin/ghc@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/ghc /usr/bin/ghc-7.4.2@ -> /Library/Frameworks/GHC.framework/Versions/7.4.2-i386/usr/bin/ghc-7.4.2 /usr/bin/ghc-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/ghc-7.6.3 The following executables in /usr/bin are symlinked in both versioned and non-versioned forms: ghc ghc-pkg ghci haddock [set 1] These executables in /usr/bin and docs are linked only bare, and will end up pointing to the new ones: hpps hpc hsc2hs runghc runhaskell [set 2] alex cabal happy patch-ghc-settings uninstall-hs [set 3] /usr/share/man/man1/ghc.1 /usr/share/doc/ghc You can reset the executables in [set 1] and [set 2], as well as the docs, to a particular version with: sudo /Library/Frameworks/GHC.framework/Versions/*<version>*/Tools/create-links dummy /Library/Frameworks /usr Note that this will *not* update the links for the executables marked [set 3], though usually using later versions of those executables is no problem. If I could install a RC without disrupting my current setup (not changing
the ghc, etc symlinks would be a bonus) I'd be much more likely to try them out!
This would be a good option for a re-worked installer. However, installers with user options on Mac OS X are a bit tricky both to develop and for users to use.... - Mark