[Haskell-beginners] Cabal complains that cabal-dev “indirectly depends on multiple versions of the same package”, even though it (apparently) does not

James Fisher jameshfisher at gmail.com
Wed Feb 15 22:55:32 CET 2012

Hi Brandon

On Wed, Feb 15, 2012 at 9:25 PM, Brandon Allbery <allbery.b at gmail.com>wrote:
> I think you'll need -v to see what's going on

This seems to provide no more information.  There's some extra junk in the
output, but it still gives me the same message about a dependency on
multiple versions (of *what*? if it knows there exists such a package,
presumably it knows *which*?), and despite cabal telling me that -v will
provide more information on the missing or recursive dependency (what, are
"missing" and "recursive" so similar we can't tell them apart? They seem
like totally different problems to me), there is no such extra information
with -v.

but my guess is you somehow have multiple versions of either array or
> containers with the same version number but different hashes, or that one
> of the packages depends on a no longer installed package with the right
> version but had a different hash.
> My guess is it's containers, because the containers -> array dependency is
> listed twice --- making me suspicious that those are two separate instances
> with the same version but different hashes (which aren't normally shown
> there).

ghc-pkg tells me I have two array versions installed.  I unregistered the
earlier array-, but I still get the same error when trying to
install cabal-dev.

>     Cabal-1.14.0-4af45d3c8d10dc27db38ae0e7e5a952b is unusable due to missing or recursive dependencies:
>>       array- containers-
>> This shows the hashes for one of those sets, but not the other.

Sorry, what sets do you mean?  I see one hash for array-, another
for containers-, and another for Cabal-1.14.0.

I guess another thing I don't understand is: why is there both a version
number and a hash?  I'm told by Hackage that "Re-uploading a package with
the same version number is not permitted" (
http://hackage.haskell.org/packages/upload.html), so how could I have a
package with two different hashes?  Unless one or both came from somewhere
other than Hackage, perhaps?

Yet another thing I don't properly understand is the relationship between
all these Haskell packaging organizations and programs.  cabal seems to
have some pseudo-official relationship with Hackage.  And how do cabal and
ghc-pkg interact?  Where are things on my system apart from in ~/.cabal?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20120215/fb33661f/attachment.htm>

More information about the Beginners mailing list