Cabal install
Simon Peyton Jones
simonpj at microsoft.com
Fri May 31 09:10:11 UTC 2019
Solution is to change directory (cd) somewhere else and try again. (There's also cabal install -z flag feature request, -z to ignore local project; but it's not yet merged).
Yes, that's what I worked out in the end. But it doesn't feel like a solution; it feels like a workaround.
My point is that (for this user at least) it's deeply strange. I would not expect 'apt install <blah>' to behave differently in different directories. I'm saying "please do X" - in this case install a package - and it's terribly confusing to me if that's radically affected by which directory I'm in.
I'm not saying it's wrong - everything about UI is a judgement - just that it may be very counter-productive for some users.
Simon
From: Oleg Grenrus <oleg.grenrus at iki.fi>
Sent: 31 May 2019 09:31
To: Simon Peyton Jones <simonpj at microsoft.com>; cabal-devel at haskell.org
Subject: Re: Cabal install
Hi Simon,
I see, you triggered another feature/bug of cabal install, namely when you are in a project directory, project settings affect solving process. And when there's a .cabal file, it's a project.
So cabal tried to find an install plan containing local packages (that makes sense, if you try to install local lhs2tex for example!)
Solution is to change directory (cd) somewhere else and try again. (There's also cabal install -z flag feature request, -z to ignore local project; but it's not yet merged).
- Oleg
On 31.5.2019 11.02, Simon Peyton Jones wrote:
Thanks Oleg
my first guess is that: when working on the unsaturated type families paper, you did `cabal install --lib report`; or something similar. `report` is probably some internal library to that paper / project.
I am confident I did nothing like that. But there is a file called report.cabal in the directory where I did the 'cabal install lhs2tex' command.
To confirm, check what is in your ~/.ghc/x86_64-linux-8.6.5/environments/default (or similar), is some `package-id report-0.1.0.0-hexhash` line there?
There is no such file:
bash$ ls ~/.ghc
ghci_history x86_64-linux-8.9.0.20190414 x86_64-linux-8.9.0.20190508
x86_64-linux-8.6.4 x86_64-linux-8.9.0.20190430 x86_64-linux-8.9.0.20190527
bash$ ls ~/.ghc/x86_64-linux-8.6.4/
package.conf.d
Simon
From: Oleg Grenrus <oleg.grenrus at iki.fi><mailto:oleg.grenrus at iki.fi>
Sent: 30 May 2019 20:19
To: Simon Peyton Jones <simonpj at microsoft.com><mailto:simonpj at microsoft.com>; cabal-devel at haskell.org<mailto:cabal-devel at haskell.org>
Subject: Re: Cabal install
Hi Simon,
my first guess is that: when working on the unsaturated type families paper, you did `cabal install --lib report`; or something similar. `report` is probably some internal library to that paper / project.
In that case, you are hitting the unfortunate cabal bug [1].
To confirm, check what is in your ~/.ghc/x86_64-linux-8.6.5/environments/default (or similar), is some `package-id report-0.1.0.0-hexhash` line there? If so, the simplest fix is to remove that environment file.
- [1] https://github.com/haskell/cabal/issues/5888 <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhaskell%2Fcabal%2Fissues%2F5888&data=02%7C01%7Csimonpj%40microsoft.com%7C287418e6b3e247b9b0ec08d6e5a258c4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636948882792816120&sdata=Xo9%2FS%2BkTGwMtCCOxh023gBA95fhWjQDJPJ884u%2BakFY%3D&reserved=0> https://github.com/haskell/cabal/issues/5559
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhaskell%2Fcabal%2Fissues%2F5559&data=02%7C01%7Csimonpj%40microsoft.com%7C287418e6b3e247b9b0ec08d6e5a258c4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636948882792826128&sdata=oMPeTq2zVN0cGAGmFUT9BMUK%2FVPSmOvNDnum4VUSv7o%3D&reserved=0>
Cheers,
Oleg
On 30.5.2019 16.50, Simon Peyton Jones wrote:
Dear friendly Cabal folk
Here's what happened to me today
bash$ cabal install lhs2tex
cabal: Could not resolve dependencies:
[__0] next goal: report (user goal)
[__0] rejecting: report-0.1.0.0 (conflict: requires UnsaturatedTypeFamilies)
[__0] fail (backjumping, conflict set: report)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: report
Crumbs. What is 'report'? Why does it need UnsaturatedTypeFamilies? I'm totally lost.
Then, in an inspired moment, I thought to change to a different directory, ~/tmp.
Then quite different things happened - it downloaded and built relevant libraries.
I think that there just happened to be a .cabal file in the original directory I was in at the time. That appears to affect what 'cabal install' does in a truly radical way.
My point is this: this is terribly confusing for the user (at least for this on). I'd be shocked if 'apt install blah' behaved utterly differently in different directories. I'm going to make a little empty directory somewhere, and cd to it before invoking cabal in future. But that just feels like a workaround, not a solution.
I'm not saying it's wrong - just giving you a data point that it had one user completely stumped
Simon
_______________________________________________
cabal-devel mailing list
cabal-devel at haskell.org<mailto:cabal-devel at haskell.org>
http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel<https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fcabal-devel&data=02%7C01%7Csimonpj%40microsoft.com%7C287418e6b3e247b9b0ec08d6e5a258c4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636948882792836141&sdata=88b2BLNklnNp%2BHNLmSOrYrgVQHONHq6aIGNAa%2ByRvJ4%3D&reserved=0>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/cabal-devel/attachments/20190531/d868cc1c/attachment.html>
More information about the cabal-devel
mailing list