Mac上的Haskell平台在/usr/bin中安装cabal,但cabal安装在〜/ Library / Haskell中

我刚刚在运行Mavericks 10.9的Mac上安装了
Haskell平台.包含的cabal版本(1.16)已过期,并提示我运行“cabal update”然后“cabal install cabal-install”.这样安装cabal 1.20.0.3,但它安装在〜/ Library / Haskell中.不在我的可执行文件路径中,因此进一步尝试运行cabal导致从/usr/bin执行版本1.16,该版本未更新.

我想我可以通过改变我的可执行路径来包含〜/ Library / Haskell,其优先级高于/usr/bin.但我真的不想这样做.而且我不想在我的系统上的隐藏位置维护软件的多个过时版本.如何让cabal在正确的位置更新可执行文件?使用sudo运行并没有帮助.

编辑:更新了我的路径,但不知何故它仍然不起作用:

[76 of 76] Compiling Main             ( Main.hs, dist/build/cabal/cabal-tmp/Main.o )
Linking dist/build/cabal/cabal ...
Warning: No documentation was generated as this package does not contain a library. Perhaps you want to use the --executables flag.
Installing executable(s) in
/Users/lethe/Library/Haskell/ghc-7.6.3/lib/cabal-install-1.20.0.3/bin
Installed cabal-install-1.20.0.3
Updating documentation index /Users/lethe/Library/Haskell/doc/index.html
euclid:Public lethe$which cabal
/Users/lethe/Library/Haskell/bin/cabal
euclid:Public lethe$cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library 
euclid:Public lethe$echo $PATH
/Users/lethe/Library/Haskell/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin

它声称已将cabal 1.20.0.3安装到〜/ Library / Haskell,并且由于路径已更新,它声称它将在〜/ Library / Haskell中执行该版本,但它还声称执行版本为1.16.0.2.这里发生了什么?

我也试过ghc-pkg recache和cabal install cabal-install-1.20.0.3(版本号指定),但执行版仍然是1.16.0.2

最佳答案 有几个解决方案:

1)尝试更新PATH变量,使其首先查看本地路径.
(将此添加到.bash_profile:export PATH = $HOME / Library / Haskell / bin:$PATH.获取配置文件,然后重试whereis命令以识别您正在使用的二进制文件,它应该使用您的本地文件)

虽然这对我不起作用.我不得不采取下一步使它工作:

2)强力修复:删除/usr/bin/cabal.

希望这可以帮助.

点赞