我在Win7上使用HaskellPlatform-2012.4.0.0,它是便携安装的。路径是通过 .bat 文件管理,以便 ghci
和 ghc
可以正常工作。
但是,cabal默认会安装在C:\Users\name\AppData\Roaming\cabal\
为了避免这个问题,我进行了以下操作:
cabal update
edit config file
delete all files except config
修改的路径:
remote-repo-cache: d:\h1\cabal\packages
world-file: d:\h1\cabal\world
build-summary: d:\h1\cabal\logs\build.log
它可以工作,但距离真正的可移植性还有很远。
Cabal配置是更大的问题。看起来它必须留在C:\Users\name\AppData\Roaming\cabal中,这根本不具备可移植性。
第一次运行 cabal update
会显示 Config file path source is default config file.
问题:
1. 默认配置文件在哪里?
2. remote-repo-cache、world-file 和其他路径是否可以为相对路径?
3. 是否有一种方法设置默认的cabal路径,以便它永远不会转到 C:\Users\name\AppData\Roaming\cabal
CABAL_CONFIG
环境变量进行设置,参见:https://github.com/haskell/cabal/commit/1dc46087064845ab4942687e79f182e28e89332c - Nathan HowellSET CABAL_CONFIG=%~dp0cabal\bin\config
能够正常工作 :) 需要注意的是 config 是文件名。配置文件中的路径仍然不正确,但可以在 cabal 第一次启动之前嵌入配置文件来解决这个问题。 - CoRHaskell\cabal
文件夹,而你启动cabal install xxx
的目录就是当前目录。绝对路径\Haskell\cabal
可以用于cabal update
,但无法用于cabal install xxx
。只有纯粹的绝对路径D:\Haskell\cabal
才有效。附言:请将您的评论作为答案。它涵盖了问题1和3。到目前为止,似乎没有办法解决问题2。 - CoR