你如何获得最新版本的Cabal for Haskell?

Add*_*dem 3 haskell cabal

我花了大约一个小时的时间试图获得Cabal的第2版.最初我发现我的LinuxMint安装附带的版本是版本1,所以我试过cabal update,没有这样做.所以我找到了说要使用的说明cabal install Cabal cabal-install.做到了,得到了一个错误.发现该错误显然与使用最新版本的Haskell有关.所以我安装了版本7来获得Cabal.似乎工作,看起来我终于得到了Cabal版本2.但是我也想要最新版本的Haskell,所以我为它下载了二进制文件并再次安装 - 现在好像Cabal已经回到了版本1.它是不是不可能同时拥有Haskell的第8版和Cabal的第2版?

dup*_*ode 7

根据danidiaz的评论,我建议直接在您的主目录中安装cabal-install.

首先确保您实际使用的是您想要的8.x版GHC(使用which ghc,ghc --version如果需要).此外,摆脱您可能已安装的任何其他cabal-install版本,以便减少混淆的余地.

[directory] ~/.cabal/bin不在我的PATH变量中,我应该把它放在它的定义的前面吗?

究竟.~/.cabal/bin是使用cabal-install本地安装的可执行文件的默认位置,其中包括cabal-install本身,因此它必须位于PATH中.将它放在PATH的前面将优先于安装在软件包管理器上的任何系统范围的cabal-install安装.(请注意,如果事先删除所述系统范围的安装,则不会出现问题.)


一旦地形清晰,您可以从Cabal的下载页面下载合适的二进制tarball ,提取可执行文件并将其放入~/.cabal/bin.正如danidiaz指出的那样,那里的二进制文件不一定是最新的稳定版本(因为我写这篇文章,Linux二进制文件是2.2.0.0而不是2.4.0.0),但这可能无关紧要,因为一旦你有一些版本你可以简单地运行cabal-install ...

cabal new-update # For version 2.4 or above; if not, use cabal update instead.
cabal new-install cabal-install
Run Code Online (Sandbox Code Playgroud)

...将您的cabal-install更新到最新的稳定版本.

(注意我正在使用new-*cabal-install命令.我强烈建议你也这样做.)


另外,通过Cabal文件夹,我看不到二进制文件.唯一存在的文件夹是分发,语言,测试和文档.

听起来你下载了Cabal的库,而不是cabal-install的工具.cabal-install源也可以从上面链接的下载页面获得(因为我写这个,它们的版本是2.4.0.0).如果你是从GitHub获取它们,你应该查看cabal-install目录,而不是那个目录Cabal.无论哪种方式,一旦你在适当的目录中,从源代码运行安装...

./bootstrap.sh --sandbox
Run Code Online (Sandbox Code Playgroud)

......只需要GHC(而不是预先存在的cabal-install).一旦完成构建cabal-install,脚本将告诉您可执行文件的位置(可能在.cabal-sandbox/bin子目录中).将可执行文件复制到~/.cabal/bin并继续执行.