[Haskell-beginners] coming to grips with hackage

Brandon Allbery allbery.b at gmail.com
Wed Feb 5 04:48:52 UTC 2014


On Tue, Feb 4, 2014 at 10:29 PM, <tam at hiddenrock.com> wrote:

> I'm having trouble wrapping my head around how to work with Hackage in the
> context of a Linux distribution that already has its own package management
> situation.  Between distribution-provided packages containing Haskell
> programs
> and/or libraries, system-wide cabal installs, user-specific cabal installs,
> and cabal sandboxes, I can't seem to work out how the hackage/cabal
> architects
> intend people (ie, me) to juggle things.
>

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....

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.

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.

-- 
brandon s allbery kf8nh                               sine nomine associates
allbery.b at gmail.com                                  ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20140204/f5d97dab/attachment.html>


More information about the Beginners mailing list