[Haskell-cafe] Can cabal be turned into a package manager?

Rustom Mody rustompmody at gmail.com
Wed Dec 12 19:36:33 CET 2012


On Wed, Dec 12, 2012 at 11:25 PM, Ertugrul Söylemez <es at ertes.de> wrote:

> "Janek S." <fremenzone at poczta.onet.pl> wrote:
>
> > In the recent months there was a lot of dicussion about cabal,
> > dependency hell and alike. After reading some of these discussions
> > there is a question I just have to ask:
> >
> > Why not create a package manager (like rpm or apt) for Haskell
> > software?
>
> There is no need to reinvent that.  See below.
>
>
> > I've been using Linux for years. Software for Linux is mostly written
> > in C and C++. There are thousands of libraries with lots of
> > dependencies and yet: a) Linux distributions manage to have package
> > repositories that are kept in a consistent state b) Linux package
> > managers can avoid dependency hell, automatically update to new
> > packages, etc. Linux people did it! Is there any technical issue that
> > prevents Haskell people from doing exactly the same thing? Or are we
> > just having non-technical problems like lack of money or developers?
>
> Actually Linux distributions do all the hard work for you.  Package
> maintainers know what I'm talking about.  It's a difficult task to
> specify correct dependencies, tedious to negotiate with all the other
> developers and all in all provide a consistent system.  But that's only
> half of the story.
>
> The problem starts with the File Hierarchy Standard (FHS), which
> essentially doesn't allow you to employ a more useful concept.  That's
> why an experimental (yet quite usable) Linux distribution called NixOS
> [1] has established.  It recognizes the problems of the FHS.  The
> solution is simple and radical:  the FHS sucks, so ignore it.
>
> NixOS uses the Nix package manager, which you can also use for your
> Haskell packages to escape from the dependency hell.  With Nix you can
> even allow all users to install arbitrary packages without interfering
> with other users, even the same packages with different versions.  Two
> programs can depend on different versions of the same library, etc.
> It's the package manager of the future.  Unfortunately the concept is
> new and different enough that it will be difficult to convince a large
> portion of the Linux community to employ it.  It's the same issue
> Haskell has in the programming language world.
>
> There is no need to switch to NixOS to use Nix.  You can even install it
> in your home directory.
>
> [1]: http://nixos.org/
>

Thanks Ertugrul for mentioning nix.  My initial study of nix looked very
promising as a solution to cabal-hell[2] but it seemed to suggest that one
needs to change the whole OS!

I must say that I am still dilly-dallying between cabal-dev virthualenv and
nix and would appreciate a push!

[2] I believe that saying cabal-hell is part of the problem with
cabal-hell.  A more correct phrase may be
"Haskell-has-no-standardized-package-manager-hell" (which is a bit long!)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20121213/31948caf/attachment.htm>


More information about the Haskell-Cafe mailing list