
Why not just use symbolic links? I too have multiple installations of ghc (at the moment, only two), and I choose between them using a symbolic link:
book % ls -l /usr/local | grep ghc lrwxr-xr-x 1 root wheel 10 Jan 12 00:05 ghc -> ghc-6.12.1 drwxr-xr-x 7 dave wheel 238 Dec 25 10:46 ghc-6.10.4 drwxr-xr-x 7 dave wheel 238 Jan 8 21:52 ghc-6.12.1
(/usr/local/ghc/bin is on my PATH.)
My install scripts use the --prefix flag.
This sounds very similar to what I do with multi-ghc. I just use a Bash script to manage the symlinks for me and a Makefile to do the configure/make install. That's really all multi-ghc is at the moment.
I also make the actual installations user-writeable, so that I DON'T have to use sudo at any point after setting up the directories. This gives me a nice proof that no script I then call is messing up other parts of my system. (One can still accidentally still do something "locally", creating an unannounced subdirectory of $HOME e.g. using cabal-install.)
To sudo or not to sudo: doesn't matter to me (or multi-ghc). :) GHC is way too important to be treated that way, so I follow (roughly) Nils'
strategy.
The use of stow also seems similar, though perhaps more general. I currently keep track of the "current" GHC, and it seems stow may not do that, though I doubt it should be difficult to extend. Regards, Sean