<br>On Thu, Apr 8, 2010 at 13:49, Bas van Dijk <span dir="ltr">&lt;<a href="mailto:v.dijk.bas@gmail.com">v.dijk.bas@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div><div></div><div class="h5">On Thu, Apr 8, 2010 at 11:00 AM, Sean Leather &lt;<a href="mailto:leather@cs.uu.nl">leather@cs.uu.nl</a>&gt; wrote:<br>
&gt; I created a few tools to help me manage multiple GHC distributions in a Bash<br>
&gt; shell environment. Perhaps it&#39;s useful to others.<br>
&gt;<br>
&gt;   <a href="http://github.com/spl/multi-ghc" target="_blank">http://github.com/spl/multi-ghc</a><br>
&gt;<br>
&gt; Feedback welcome. I&#39;d also like to know if something similar exists.<br>
<br>
</div></div>Does this also work with a system installed ghc? These are usually<br>
installed in /usr (I&#39;m using Gentoo Linux):<br>
<br>
$ ls -l /usr/bin/ghc*<br>
lrwxrwxrwx 1 root root  10 dec 22 00:22 /usr/bin/ghc -&gt; ghc-6.12.1<br>
-rwxr-xr-x 1 root root 279 dec 22 00:20 /usr/bin/ghc-6.12.1<br>
lrwxrwxrwx 1 root root  11 dec 22 00:22 /usr/bin/ghci -&gt; ghci-6.12.1<br>
-rwxr-xr-x 1 root root  61 dec 22 00:20 /usr/bin/ghci-6.12.1<br>
lrwxrwxrwx 1 root root  14 dec 22 00:22 /usr/bin/ghc-pkg -&gt; ghc-pkg-6.12.1<br>
-rwxr-xr-x 1 root root 262 dec 22 00:20 /usr/bin/ghc-pkg-6.12.1<br></blockquote><div><br>The ghc-config Bash script in multi-ghc uses symlinks to determine which is the &quot;current&quot; version to use. The instructions on the GitHub page explain it in detail, but here&#39;s how my setup works.<br>

<br>* I create /opt/ghc for storing GHC, clone the multi-ghc repository (or copy the files) here.<br>* I create /opt/ghc/6.10.4/src, download <a href="http://www.haskell.org/ghc/dist/6.10.4/ghc-6.10.4-i386-unknown-linux-n.tar.bz2">http://www.haskell.org/ghc/dist/6.10.4/ghc-6.10.4-i386-unknown-linux-n.tar.bz2</a> , and untar it here.<br>

* cd ..; ln -s ../Makefile; make install<br><br>ghc-config creates a $HOME/.ghc-config directory for tracking the current version and symlinks. Now, the key for your situation (I think) is your $PATH. If you append $HOME/.ghc-config/ghc/bin to your $PATH after /usr/bin, then you can use ghc-6.10.4 to call this specific version.<br>

<br>Unfortunately, there is still a problem. ghc-config also manages $HOME/.cabal as a symlink for the current version. So, that would most likely conflict with your setup. There may be a way to fix that, though I haven&#39;t looked into it, or I could separate the cabal configuration from the ghc configuration.<br>

 <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
If so, I think I&#39;m going to use this tools since I occasionally like<br>
to try out ghc-HEAD.<br></blockquote><div><br>multi-ghc should also work for doing this. As long as you install it as /opt/ghc/6.13.blah (or whichever directory you want to use instead of /opt/ghc). This was one of the goals of the design.<br>

<br>There&#39;s more documentation in the README.md and scripts. I&#39;m happy to improve upon it if something doesn&#39;t work.<br><br>Sean<br></div></div>