What is a good method to solve cabal install problems?

Posted by sp3ctum on Super User See other posts from Super User or by sp3ctum
Published on 2012-09-30T06:42:59Z Indexed on 2014/06/02 3:37 UTC
Read the original article Hit count: 554

Filed under:
|

I've used the cabal package manager for Haskell programs to install libraries and new projects that I've cloned from some repositories. More often than not, I keep running into problems. Most projects make installing them seem super easy, but in my case that's not always true - sometimes they are very hard to get running. Some are so hard, in fact, that I've lost interest in the project solely because of not being able to install it.

So instead of complaining, I'd like to ask what I should do to better this situation. I'd like to use my most recent problem as an example.

I'm interested in trying out the Gitit project. It's a promising looking personal wiki that runs on various version control systems.

So here's what I've done:

  • Clone from Github
  • run cabal install in the project directory like I'm told on the project install page:

    mika@eka:~/git/gitit$ ls
    BLUETRIP-LICENSE  CHANGES  HCAR-gitit.tex  LICENSE  Network  README.markdown  RELANN-0.6.1  Setup.lhs  TANGOICONS  YUI-LICENSE  data  expireGititCache.hs  gitit.cabal  gitit.hs  plugins
    mika@eka:~/git/gitit$ cabal install
    Resolving dependencies...
    cabal: cannot configure happstack-server-7.0.7. It requires base64-bytestring
    ==1.0.*
    For the dependency on base64-bytestring ==1.0.* there are these packages:
    base64-bytestring-1.0.0.0. However none of them are available.
    base64-bytestring-1.0.0.0 was excluded because gitit-0.10 requires
    base64-bytestring ==0.1.*
    mika@eka:~/git/gitit$ 
    
  • So now I'm thinking: well, I'll install happstack-server on its own, maybe that will work:

    mika@eka:~/git/gitit$ cabal install happstack-server
    Resolving dependencies...
    Warning: happstack-server.cabal: Ignoring unknown section type: test-suite
    Configuring happstack-server-7.0.7...
    cabal: At least the following dependencies are missing:
    blaze-html ==0.5.*,
    hslogger >=1.0.2,
    monad-control ==0.3.*,
    network >=2.2.3,
    sendfile >=0.7.1 && <0.8,
    system-filepath >=0.3.1,
    text >=0.10 && <0.12,
    threads >=0.5,
    transformers-base ==0.4.*
    cabal: Error: some packages failed to install:
    happstack-server-7.0.7 failed during the configure step. The exception was:
    ExitFailure 1
    
  • So looks like there are some dependencies missing. But isn't installing these dependencies the whole point of using cabal in the first place?

What should I do? File bug reports (to which project?), install the dependencies manually or something else? Bonus points for explaining what causes these kinds of problems.

© Super User or respective owner

Related posts about haskell

Related posts about cabal