Re: [Haskell-beginners] cabal install errors & issues

Thanks for the advice and pointers, I will try to make this transition, but it looks like it is not so simple. Trying to bootstrap into cabal-dev seems to require some external installations as well; >>cabal install cabal-dev --force-reinstalls ... Configuring network-2.3.0.14... cabal: The package has a './configure' script. This requires a Unix compatibility toolchain such as MinGW+MSYS or Cygwin. cabal: Error: some packages failed to install: HTTP-4000.2.3 depends on network-2.3.0.14 which failed to install. cabal-dev-0.9.1 depends on network-2.3.0.14 which failed to install. network-2.3.0.14 failed during the configure step. The exception was: ExitFailure 1 I do have MinGW+MSYS installed, might be a PATH issue, I'll check further. I don't understand the details of Haskell package management, and the implications of this description of cabal-dev: For installed packages, the sandboxing means that packages are not registered into the user or global ghc package database. The global package db is used, so it is recommended that the global package db is only used for the ghc core libraries. This approach conflicts with using distribution packages for non-core libraries, because they are installed into the global db. It seems odd to me to say that "they are not registered.." into either database, and then say the global package db is used. Is there some distinction here between a "global ghc package db" & a "global package db"?. Cabal install hsenv shows "no such package", and I'm not sure why using it with installs would be good. Already removing shadowing packages is breaking things, so more cleanup will also be needed for that. I am trying to convert some SML classes and labs for my students to Haskell, and all of this overhead is certainly something that I couldn't wish on them! Perhaps if I have them all start with cabal-dev none of this would happen? -------------------------------------------
Please see this:
http://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal- is-not-a-package-manager/
thanks Benjamin, for the cabal-dev, hsenv tip though.

Ahh, I think network is a pain to build on Windows. I don't as a rule do
any haskell on windows because of the headaches of msys / mingw.
As to cabal-dev:
I don't think I even know what the paragraph means either. The short of it
is this:
You have packages that are globally registered with ghc, and packages that
are registered on a per user basis. When you call cabal-dev install foo it
makes a build dir called cabal-dev (you can change that) and builds foo in
there and installs + registers and deps that weren't in the global or user
database in there.
*phew*
hsenv: I forget that this is called virthualenv on hackage. It also allows
for sandboxing. Cabal-dev is probably easiest to start with.
You might want to read this:
http://www.reddit.com/r/haskell/comments/f3ykj/psa_use_cabaldev_to_solve_dep...
On Aug 16, 2012 2:21 PM, "Gregory Guthrie"
Thanks for the advice and pointers, I will try to make this transition, but it looks like it is not so simple.
Trying to bootstrap into cabal-dev seems to require some external installations as well;
>>cabal install cabal-dev --force-reinstalls ... Configuring network-2.3.0.14... cabal: The package has a './configure' script. This requires a Unix compatibility toolchain such as MinGW+MSYS or Cygwin. cabal: Error: some packages failed to install: HTTP-4000.2.3 depends on network-2.3.0.14 which failed to install. cabal-dev-0.9.1 depends on network-2.3.0.14 which failed to install. network-2.3.0.14 failed during the configure step. The exception was: ExitFailure 1
I do have MinGW+MSYS installed, might be a PATH issue, I'll check further.
I don't understand the details of Haskell package management, and the implications of this description of cabal-dev:
For installed packages, the sandboxing means that packages are not registered into the user or global ghc package database. The global package db is used, so it is recommended that the global package db is only used for the ghc core libraries. This approach conflicts with using distribution packages for non-core libraries, because they are installed into the global db.
It seems odd to me to say that "they are not registered.." into either database, and then say the global package db is used. Is there some distinction here between a "global ghc package db" & a "global package db"?.
Cabal install hsenv shows "no such package", and I'm not sure why using it with installs would be good.
Already removing shadowing packages is breaking things, so more cleanup will also be needed for that.
I am trying to convert some SML classes and labs for my students to Haskell, and all of this overhead is certainly something that I couldn't wish on them! Perhaps if I have them all start with cabal-dev none of this would happen?
-------------------------------------------
Please see this:
http://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal- is-not-a-package-manager/
thanks Benjamin, for the cabal-dev, hsenv tip though.
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners

On Thu, Aug 16, 2012 at 8:18 AM, Gregory Guthrie
Thanks for the advice and pointers, I will try to make this transition, but it looks like it is not so simple.
Trying to bootstrap into cabal-dev seems to require some external installations as well;
>>cabal install cabal-dev --force-reinstalls
Maybe I'm missing some context, but is there a reason you're using the "--fore-reinstalls" flag? If you didn't pass that then 'cabal' maybe would not try to re-install the 'network' package and you wouldn't run into this. Antoine

Yes, because a simple "cabal install" failed, and said the only way to do it was to force-installs. But if this is a dependency, wouldn't it be requires (or not) either way? -------------------------------------------
-----Original Message-----
Trying to bootstrap into cabal-dev seems to require some external installations as well;
>>cabal install cabal-dev --force-reinstalls
Maybe I'm missing some context, but is there a reason you're using the "--fore-reinstalls" flag? If you didn't pass that then 'cabal' maybe would not try to re-install the 'network' package and you wouldn't run into this.

Oh, I was assuming you already had a version of 'network' installed
that came with the Haskell Platform - the platform comes with:
network-2.3.0.13
HTTP-4000.2.3
So I assumed they were being installed again because of the flag.
Really, the platform comes with everything that cabal-dev depends on,
so it might be easier to solve whatever error message you're getting
without the '--force' flag.
Antoine
On Thu, Aug 16, 2012 at 9:30 PM, Gregory Guthrie
Yes, because a simple "cabal install" failed, and said the only way to do it was to force-installs.
But if this is a dependency, wouldn't it be requires (or not) either way?
-------------------------------------------
-----Original Message-----
Trying to bootstrap into cabal-dev seems to require some external installations as well;
>>cabal install cabal-dev --force-reinstalls
Maybe I'm missing some context, but is there a reason you're using the "--fore-reinstalls" flag? If you didn't pass that then 'cabal' maybe would not try to re-install the 'network' package and you wouldn't run into this.

On Thu, Aug 16, 2012 at 10:36 PM, Antoine Latter
Really, the platform comes with everything that cabal-dev depends on, so it might be easier to solve whatever error message you're getting without the '--force' flag.
Unfortunately I'm seeing the same thing, but on OS X (Lion): "cabal install cabal-dev", with no local packages, wants to reinstall/break a bunch of Platform libraries. -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

On Thu, Aug 16, 2012 at 9:43 PM, Brandon Allbery
On Thu, Aug 16, 2012 at 10:36 PM, Antoine Latter
wrote: Really, the platform comes with everything that cabal-dev depends on, so it might be easier to solve whatever error message you're getting without the '--force' flag.
Unfortunately I'm seeing the same thing, but on OS X (Lion): "cabal install cabal-dev", with no local packages, wants to reinstall/break a bunch of Platform libraries.
Ug. I have a weird franken-install on my end, so "cabal install cabal-dev" (or even just a "cabal unpack" "cabal configure") works cleanly for me. Maybe you could file a ticket with "cabal-dev" to ask what you need to do to install on a fresh platform install, or ask on haskell-cafe. Can you try upgrading "cabal-install" to see if the new solver handles it better? I think the new version works with what is in the platform. If you also get errors there might be ways to make it go ... Antoine
-- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

Hi. Sorry for singling out this one message of the thread to reply to a bunch of messages.
Can you try upgrading "cabal-install" to see if the new solver handles it better? I think the new version works with what is in the platform. If you also get errors there might be ways to make it go ...
I just tried installing cabal-dev on a clean platform, and I can confirm it doesn't work: $ cabal install --dry-run cabal-dev Resolving dependencies... In order, the following would be installed: tar-0.3.2.0 (new package) transformers-0.2.2.0 (new version) mtl-2.0.1.0 (new version) parsec-3.1.3 (new version) network-2.3.1.0 (new version) HTTP-4000.2.3 (reinstall) changes: mtl-2.1.1 -> 2.0.1.0, network-2.3.0.13 -> 2.3.1.0, parsec-3.1.2 -> 3.1.3 cabal-dev-0.9.1 (new package) Warning: The following packages are likely to be broken by the reinstalls: haskell-platform-2012.2.0.0 Use --force-reinstalls if you want to install anyway. Investigating the dependencies, it seems cabal-dev depends on transformers < 0.3, which in turn leads to an older mtl being picked, and all the other problems. I've only just come to this thread. There are a couple of things that are strange. The original poster shows logs where base version changes are listed. That's really puzzling to me. GHC usually has one version of base installed, and that can't be changed. So why are there several? Also, there are multiple versions of the Haskell Platform being listed as possibly being broken. How can multiple versions of the platform be installed at once? So something to me looks to be strange with that installation. There also seems to be a misconception that "switching to cabal-dev" means no longer using cabal-install. I just want to clarify that this isn't the case. The use of cabal-dev offers additional sandboxing functionality and wraps cabal-install, but you're still using it. The next release of cabal-install (don't know when that'll happen though, unfortunately) will most likely have sandboxing functionality built-in. Cheers, Andres

Here was my first try to install cabal-dev (to follow advice to vacate cabal install); C:\Users\ haskell >cabal install cabal-dev Resolving dependencies... In order, the following would be installed: tar-0.3.2.0 (new package) transformers-0.2.2.0 (reinstall) changes: base-4.3.1.0 -> 4.5.0.0 mtl-2.0.1.0 (reinstall) changes: base-4.3.1.0 -> 4.5.0.0 parsec-3.1.3 (reinstall) changes: mtl-2.1.2 -> 2.0.1.0 network-2.3.0.14 (new version) HTTP-4000.2.3 (reinstall) changes: mtl-2.1.1 -> 2.0.1.0, network-2.3.0.13 -> 2.3.0.14, parsec-3.1.2 -> 3.1.3 cabal-dev-0.9.1 (new package) cabal: The following packages are likely to be broken by the reinstalls: regex-base-0.93.2 regex-posix-0.95.1 regex-compat-0.95.1 haskell-platform-2011.3.0.0 regex-posix-0.94.4 regex-compat-0.93.1 haskell-platform-2011.2.0.1 parsec-3.1.1 network-2.3.0.5 cgi-3001.1.7.4 HTTP-4000.1.2 network-2.3.0.2 vcgi-3001.1.7.4 HTTP-4000.1.1 fgl-5.4.2.4 fgl-5.4.2.3 QuickCheck-2.4.0.1 haskell-platform-2012.2.0.0 Use --force-reinstalls if you want to install anyway. The force resultted in the previously reported error - Configuring network-2.3.0.14... cabal: The package has a './configure' script. This requires a Unix compatibility toolchain such as MinGW+MSYS or Cygwin. cabal: Error: some packages failed to install: HTTP-4000.2.3 depends on network-2.3.0.14 which failed to install. cabal-dev-0.9.1 depends on network-2.3.0.14 which failed to install. network-2.3.0.14 failed during the configure step. The exception was: ExitFailure 1 Now after the attempt to do the force (which was advised earlier to resolve package shadowing problems left over from cabal-install's), C:\Users\haskell>cabal install cabal-dev Resolving dependencies... In order, the following would be installed: network-2.3.0.14 (new version) HTTP-4000.2.3 (reinstall) changes: mtl-2.1.1 -> 2.0.1.0, network-2.3.0.13 -> 2.3.0.14, parsec-3.1.2 -> 3.1.3 cabal-dev-0.9.1 (new package) cabal: The following packages are likely to be broken by the reinstalls: haskell-platform-2012.2.0.0 Use --force-reinstalls if you want to install anyway. And yes, I do have network installed;
network-2.3.0.13
-----Original Message----- Oh, I was assuming you already had a version of 'network' installed that came with the Haskell Platform - the platform comes with:
network-2.3.0.13 HTTP-4000.2.3
So I assumed they were being installed again because of the flag.
Really, the platform comes with everything that cabal-dev depends on, so it might be easier to solve whatever error message you're getting without the '--force' flag.
participants (5)
-
Andres Löh
-
Antoine Latter
-
Benjamin Edwards
-
Brandon Allbery
-
Gregory Guthrie