$ ghc-pkg list | wc -l
182 $ ghc-pkg list | wc -l
182It's a real problem.
Also the next major release of cabal should have a lot of the cabal-dev machinery baked in. Theres also active brain storming by GHC dev folks on how to make things better on the compiler side too.
Doesn't mean things don't break, though.
Right. The issue is that cabal has unfairly developed a reputation as being broken. People always say stuff like "every other language has this sorted out, why is haskell so bad at it?". When the reality is that the problems you get with cabal are the same ones you get with cpan or pip or anything else.
https://github.com/cakesolutions/the-pragmatic-haskeller
http://bob.ippoli.to/archives/2013/01/11/getting-started-wit...
Also, problems in the haskell ecosystem don't stay problems for long, this one is the longer end of the tail
http://alpmestan.com/posts/2012-11-02-cabal-hackage-what-you...
Error:
Building the QuickCheck-2.5.1.1 package failed
make: *** [build.stamp] Error 2
Ok I will install the package on haskell.org, which instructs me to 'To upgrade, run: cabal install cabal-install': ...
cabal: Error: some packages failed to install:
cabal-install-1.16.0.2 failed during the building phase. The exception was:
ExitFailure 1
Alright, maybe I don't really need the update, let's try yesod: cabal: Error: some packages failed to install:
ReadArgs-1.2.1 depends on system-filepath-0.4.7 which failed to install.
aeson-0.6.1.0 depends on hashable-1.2.0.5 which failed to install.
asn1-data-0.7.1 failed during the building phase. The exception was:
ExitFailure 1
attoparsec-0.10.4.0 failed during the building phase. The exception was:
ExitFailure 1
attoparsec-conduit-1.0.0 depends on transformers-base-0.4.1 which failed to
install.
authenticate-1.3.2.6 depends on zlib-bindings-0.1.1.3 which failed to install.
base64-conduit-1.0.0 depends on transformers-base-0.4.1 which failed to
install.
basic-prelude-0.3.4.0 depends on transformers-base-0.4.1 which failed to
install.
blaze-builder-0.3.1.0 failed during the building phase. The exception was:
ExitFailure 1
blaze-builder-conduit-1.0.0 depends on transformers-base-0.4.1 which failed to
install.
blaze-html-0.6.0.0 depends on blaze-builder-0.3.1.0 which failed to install.
blaze-markup-0.5.1.4 depends on blaze-builder-0.3.1.0 which failed to install.
case-insensitive-1.0 depends on hashable-1.2.0.5 which failed to install.
certificate-1.3.5 depends on crypto-api-0.11 which failed to install.
classy-prelude-0.5.3 depends on transformers-base-0.4.1 which failed to
install.
clientsession-0.8.1 depends on crypto-api-0.11 which failed to install.
conduit-1.0.2 depends on transformers-base-0.4.1 which failed to install.
cookie-0.4.0.1 depends on blaze-builder-0.3.1.0 which failed to install.
cprng-aes-0.3.4 depends on crypto-api-0.11 which failed to install.
crypto-api-0.11 failed during the building phase. The exception was:
ExitFailure 1
crypto-conduit-0.5.0 depends on transformers-base-0.4.1 which failed to
install.
crypto-pubkey-0.1.2 depends on crypto-api-0.11 which failed to install.
cryptohash-0.8.3 depends on crypto-api-0.11 which failed to install.
css-text-0.1.1 depends on attoparsec-0.10.4.0 which failed to install.
email-validate-1.0.0 depends on attoparsec-0.10.4.0 which failed to install.
failure-0.2.0.1 failed during the building phase. The exception was:
ExitFailure 1
fast-logger-0.3.1 depends on blaze-builder-0.3.1.0 which failed to install.
filesystem-conduit-1.0.0 depends on transformers-base-0.4.1 which failed to
install.
fsnotify-0.0.6 depends on system-filepath-0.4.7 which failed to install.
hamlet-1.1.6.3 depends on shakespeare-1.0.3.1 which failed to install.
hashable-1.2.0.5 failed during the building phase. The exception was:
ExitFailure 1
hfsevents-0.1.3 failed during the building phase. The exception was:
ExitFailure 1
hjsmin-0.1.4.1 depends on blaze-builder-0.3.1.0 which failed to install.
hspec-1.4.4 failed during the building phase. The exception was:
ExitFailure 1
html-conduit-1.1.0 depends on xml-types-0.3.3 which failed to install.
http-conduit-1.9.0 depends on zlib-bindings-0.1.1.3 which failed to install.
http-date-0.0.4 depends on attoparsec-0.10.4.0 which failed to install.
http-reverse-proxy-0.1.1.3 depends on zlib-bindings-0.1.1.3 which failed to
install.
http-types-0.8.0 depends on hashable-1.2.0.5 which failed to install.
language-javascript-0.5.7 depends on blaze-builder-0.3.1.0 which failed to
install.
lifted-base-0.2.0.2 depends on transformers-base-0.4.1 which failed to
install.
mime-mail-0.4.1.2 depends on blaze-builder-0.3.1.0 which failed to install.
mime-types-0.1.0.3 failed during the building phase. The exception was:
ExitFailure 1
monad-control-0.3.1.4 depends on transformers-base-0.4.1 which failed to
install.
monad-logger-0.3.0.1 depends on transformers-base-0.4.1 which failed to
install.
network-conduit-1.0.0 depends on transformers-base-0.4.1 which failed to
install.
optparse-applicative-0.5.2.1 failed during the building phase. The exception
was:
ExitFailure 1
path-pieces-0.1.2 failed during the building phase. The exception was:
ExitFailure 1
pem-0.1.2 depends on attoparsec-0.10.4.0 which failed to install.
persistent-1.1.5.1 depends on transformers-base-0.4.1 which failed to install.
persistent-template-1.1.2.4 depends on transformers-base-0.4.1 which failed to
install.
pool-conduit-0.1.1 depends on transformers-base-0.4.1 which failed to install.
project-template-0.1.3 depends on transformers-base-0.4.1 which failed to
install.
publicsuffixlist-0.0.3 failed during the building phase. The exception was:
ExitFailure 1
pureMD5-2.1.2.1 depends on crypto-api-0.11 which failed to install.
pwstore-fast-2.3 depends on crypto-api-0.11 which failed to install.
resource-pool-0.2.1.1 depends on transformers-base-0.4.1 which failed to
install.
resourcet-0.4.5 depends on transformers-base-0.4.1 which failed to install.
shakespeare-1.0.3.1 failed during the building phase. The exception was:
ExitFailure 1
shakespeare-css-1.0.3 depends on shakespeare-1.0.3.1 which failed to install.
shakespeare-i18n-1.0.0.2 depends on shakespeare-1.0.3.1 which failed to
install.
shakespeare-js-1.1.2.1 depends on shakespeare-1.0.3.1 which failed to install.
shakespeare-text-1.0.0.5 depends on shakespeare-1.0.3.1 which failed to
install.
simple-sendfile-0.2.11 failed during the building phase. The exception was:
ExitFailure 1
skein-0.1.0.12 depends on crypto-api-0.11 which failed to install.
socks-0.5.0 failed during the building phase. The exception was:
ExitFailure 1
system-fileio-0.3.11 depends on system-filepath-0.4.7 which failed to install.
system-filepath-0.4.7 failed during the building phase. The exception was:
ExitFailure 1
tagsoup-0.12.8 failed during the building phase. The exception was:
ExitFailure 1
tagstream-conduit-0.5.4 depends on transformers-base-0.4.1 which failed to
install.
tls-1.1.2 depends on crypto-api-0.11 which failed to install.
tls-extra-0.6.1 depends on crypto-api-0.11 which failed to install.
transformers-base-0.4.1 failed during the building phase. The exception was:
ExitFailure 1
unordered-containers-0.2.3.0 depends on hashable-1.2.0.5 which failed to
install.
vault-0.2.0.4 depends on hashable-1.2.0.5 which failed to install.
wai-1.4.0 depends on transformers-base-0.4.1 which failed to install.
wai-app-static-1.3.1.2 depends on transformers-base-0.4.1 which failed to
install.
wai-extra-1.3.2.4 depends on zlib-bindings-0.1.1.3 which failed to install.
wai-logger-0.3.0 depends on transformers-base-0.4.1 which failed to install.
wai-test-1.3.0.4 depends on transformers-base-0.4.1 which failed to install.
warp-1.3.7.4 depends on transformers-base-0.4.1 which failed to install.
xml-conduit-1.1.0.3 depends on xml-types-0.3.3 which failed to install.
xml-types-0.3.3 failed during the building phase. The exception was:
ExitFailure 1
xss-sanitize-0.3.3 depends on tagsoup-0.12.8 which failed to install.
yaml-0.8.2.3 depends on transformers-base-0.4.1 which failed to install.
yesod-1.1.9.2 depends on zlib-bindings-0.1.1.3 which failed to install.
yesod-auth-1.1.5.3 depends on zlib-bindings-0.1.1.3 which failed to install.
yesod-core-1.1.8.2 depends on zlib-bindings-0.1.1.3 which failed to install.
yesod-default-1.1.3.2 depends on zlib-bindings-0.1.1.3 which failed to
install.
yesod-form-1.2.1.3 depends on zlib-bindings-0.1.1.3 which failed to install.
yesod-json-1.1.2.1 depends on zlib-bindings-0.1.1.3 which failed to install.
yesod-persistent-1.1.0.1 depends on zlib-bindings-0.1.1.3 which failed to
install.
yesod-platform-1.1.8 depends on zlib-bindings-0.1.1.3 which failed to install.
yesod-routes-1.1.2 depends on path-pieces-0.1.2 which failed to install.
yesod-static-1.1.2.2 depends on zlib-bindings-0.1.1.3 which failed to install.
yesod-test-0.3.5 depends on xml-types-0.3.3 which failed to install.
zlib-bindings-0.1.1.3 failed during the building phase. The exception was:
ExitFailure 1
zlib-conduit-1.0.0 depends on zlib-bindings-0.1.1.3 which failed to install.
If I'm yak-shaving in my first hour of trying a language out it's not a good sign.I actually stayed away from Scala for a while for this reason. SBT would blow up left and right. It's more mature now and with Play you can build performant web apps very quickly.
So some amount of leg work is bound to come up if you install many packages through homebrew.