[Haskell-cafe] circular dependencies in cabal

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Mon Feb 2 04:31:17 EST 2009


On Sun, 2009-02-01 at 19:10 -0800, Valentyn Kamyshenko wrote:
> So, in practical terms, you suggest that no new version of the package  
> that ghc package depends on (directly or indirectly) should ever be  
> installed?
> For example, as soon as process-1.0.1.1 is installed on my computer,  
> I'll have this problem with every package that depends on "process"?

Installing process-1.0.1.1 is not itself a problem. It is a new version
it does not clash with other versions. The problem is re-installing the
same version as you already have installed. In particular re-installing
the same version of a package as one that comes with ghc.

It's generally not necessary to install new versions of the core
packages however, so unless you really know that you need to it's
probably simpler to avoid doing so.

> Another question: would not cabal-install automatically fetch the most  
> recent version of the "process" package, as soon as I will try to  
> install a package that depends on it (such as, for example, "plugins")?

No. That's the difference between "cabal install" and "cabal upgrade".
The install command installs the latest version of a package but tries
to use as many of your existing installed packages as possible. The
upgrade command installs the latest version of a package but also tries
to install the latest version of all the packages it depends on.

That is probably how people are getting into this mess. Using upgrade is
not necessarily such a good idea. It does not distinguish between the
interesting packages you might want to upgrade and the core packages
that your probably do not want to touch.

Duncan



More information about the Haskell-Cafe mailing list