<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 4, 2014 at 10:29 PM,  <span dir="ltr"><<a href="mailto:tam@hiddenrock.com" target="_blank">tam@hiddenrock.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":2xp" style="overflow:hidden">I'm having trouble wrapping my head around how to work with Hackage in the<br>
context of a Linux distribution that already has its own package management<br>
situation.  Between distribution-provided packages containing Haskell programs<br>
and/or libraries, system-wide cabal installs, user-specific cabal installs,<br>
and cabal sandboxes, I can't seem to work out how the hackage/cabal architects<br>
intend people (ie, me) to juggle things.</div></blockquote></div><br>This is not a Hackage-specific issue; you will run into it with any language ecosystem, and every language ecosystem has its own mechanisms for dealing with it (usually involving some form of sandboxing). Indeed, some languages pretty much require those mechanisms: all too often, you need a separate rvm sandbox for multiple Ruby applications....</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">The general rule is that if you're just looking to install a few things available from OS packages and are not doing development, use the OS packages; otherwise, install just enough to be able to use cabal to install stuff. Although this also may vary: in many cases you will want to install the Platform libraries from your OS because you should really only have one version installed and it should generally be the "blessed" stable version. But if you're [say] intending to work with bleeding edge Yesod, then you probably want to only install ghc and cabal-install from the OS.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Anyway, this question is why Haskell has hsenv, cabal-dev, and cabal sandboxes; Ruby has rvm, Python has virtualenv, and Perl has perlbrew, and other languages have their own mechanisms to deal with the same problems. And pkg-config is (de facto and for the moment) the solution C and C++ use, attacking it from a different direction.<br>
<div><br></div>-- <br><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>                                  <a href="mailto:ballbery@sinenomine.net" target="_blank">ballbery@sinenomine.net</a></div>
<div>unix, openafs, kerberos, infrastructure, xmonad        <a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a></div></div>
</div></div>