我在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上运行的正确方法是什么?
答案 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"
约束。