如何在mac osx中正确安装/更新haskell软件包

时间:2013-01-19 10:24:54

标签: haskell haskell-platform

我在Haskell中完全是诺布,我正在尝试关注如何将其用于网络{。}}。

我正在使用Mac OSX,所以我从a tutorial

下载了针对OSX的haskell平台

然后我做了

cabal update

它告诉我有一个新版本的cabal安装,所以为什么不呢     cabal安装cabal-install

它编译了Cabal-1.16.0.3版本并将其安装在我的$ HOME / Library / Haskell中。 我将$ HOME / Library / Haskell / bin添加到我的$ PATH并打开一个新的终端。

然后我做     cabal --version

但版本是1.14 我做     $ HOME / Library / Haskell / bin / cabal --version 我得知二进制文件正在使用库版本1.14 如何让它使用新安装的版本而不是平台?

然后我做     cabal安装cabal-dev

获取要编译的新包的消息,但此消息还包括“cabal:

The following packages are likely to be broken by the reinstalls:
network-2.3.1.0
haskell-platform-2012.4.0.0
cgi-3001.1.7.4
HTTP-4000.2.5

我不喜欢这听起来如何。

我经常尝试在不同的计算机上安装yesod,我记得有同样的问题,最终yesod没有安装,我不想做任何会破坏任何事情的事情。

让Yesod或任何haskell软件包在mac osx上运行的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

  

如何让它使用新安装的版本而不是平台?

正如cabal应该告诉你的那样,你只需将目录添加到PATH环境变量中。例如,如果您使用bash作为shell,请添加

export PATH=$HOME/Library/Haskell/bin:$PATH

到$ HOME / .bashrc并重启你的shell。

  

让Yesod或任何haskell软件包在mac osx上运行的正确方法是什么?

这个问题不是OSX特有的,而是特定于cabal的。答案是告诉cabal 所有您安装的软件包。例如,您可以尝试

cabal install cabal-dev haskell-platform # or
cabal install cabal-dev async cgi fgl GLUT haskell-src html HTTP HUnit mtl network OpenGL parallel parsec QuickCheck random regex-base regex-compat regex-posix split stm syb text transformers vector xhtml zlib

或者,如果您只想阻止重建某些软件包,可以使用installed中的cabal install cabal-dev --constraint "haskell-platform installed"约束。