9
votes

I have installed Haskell Platform 2012 in Windows 7. I write in the console cabal update and I take a message that there is a new version of cabal. I write cabal install cabal-install . After installation finishes it tells me that the cabal has been installed in C:\username\AppData\Roaming\cabal. So when I do cabal update again I am taking the same message that I have to install the new version of cabal. I have tried to change the cabal directory from the config file but cabal ignores the config file. Is Haskell working only on Unix? Thanks

3
IMHO one should never ever use 'cabal install cabal-install' if one just has started the journey with haskell with a fresh haskell plattfrom. Just use cabal update to update the package list. The only people who should update cabal itself will know when to do that, if you don't know it, don't do it - Jonke
@Jonke So when do people do it then? - McBear Holden
When you want the newest release of cabal for a new release of ghc and there is no haskell platform. For instance if you get the binary build for ghc 7.8.2 you can get a binary build for cabal 1.18 but no binary build for cabal 1.20, then you do it. (IMHO) - Jonke

3 Answers

13
votes

The problem is that the cabal executable that came with Haskell Platform gets picked up instead of the one that you installed.

You need to edit the value of the PATH environment variable and place %AppData%\cabal\bin before %PROGRAMFILES%\Haskell Platform\...\bin so that it's given higher priority.

2
votes

You need to add C:\username\AppData\Roaming\cabal (or whatever directory now has the cabal executable -- use e.g. dir or your favorite file manager to verify that you have the right place) to your %PATH% environment variable and restart your command prompt.

2
votes

The error message is incomplete. Install cabal-install globally as:

cabal install cabal-install --global