I am using HaskellPlatform-2012.4.0.0 on Win7. It's installed as portable. Paths are managed through .bat file so ghci
and ghc
works.
But cabal installs it self at C:\Users\name\AppData\Roaming\cabal\
To circumvent that I did:
cabal update
edit config file
delete all files except config
Changed paths:
remote-repo-cache: d:\h1\cabal\packages
world-file: d:\h1\cabal\world
build-summary: d:\h1\cabal\logs\build.log
It works, but it's far from truly portable.
Cabal config is bigger problem. It seems that it must be left in C:\Users\name\AppData\Roaming\cabal which is not portable at all.
First run of cabal update
says Config file path source is default config file.
Questions:
1. where is that default config file?
2. can remote-repo-cache, world-file and other paths be relative?
3. is there a way of setting default cabal path so it never goes to C:\Users\name\AppData\Roaming\cabal
CABAL_CONFIG
env variable, see: github.com/haskell/cabal/commit/… – RasedaSET CABAL_CONFIG=%~dp0cabal\bin\config
works :) It's important to say that config is file name. Paths inside config file are still wrong, but that could be fixed by implanting config file before cabal starts for the first time. – KowtkoHaskell\cabal
folders in current dir where you started cabal install xxx :D Absolute path\Haskell\cabal
is ok forcabal update
, but doesn't work forcabal install xxx
Only pure absolute pathD:\Haskell\cabal
works. p.s. put your comment as an answer. it covers questions 1&3. So far it seems that nothing could be done about q2. – Kowtko