覆盖LTS的cabal版本

时间:2016-08-08 08:40:18

标签: haskell cabal haskell-stack

我有一个项目,我想用LTS 2进行编译,但我仍然试图解决this well-known bug in OS X 10.11

我可以以某种方式指定与$(function() { $(document).on('keyup', '[placeholder="x"]', function() { var input = $(this); if ( input.val().indexOf("@") >= 0 ) { input.val(input.val().replace("@", "")); } }); }); 一起使用的Cabal的较新版本吗?请注意,该项目仅使用GHC 7.8。*。

进行编译

编辑:

真的是ghc-7.8.4,而不是Cabal

编辑2:

实际上,这个问题的答案并没有真正解决我的具体问题(编译cabal-install,这需要GHC< = 7.8.4),因为这个bug并不是{{1}特有的但是,而不是helium,GHC< 7.10取决于。

3 个答案:

答案 0 :(得分:1)

我认为问题不仅与Cabal库版本有关(顺便说一句,堆栈不使用或需要cabal-install),还与GHC版本有关。 Stack的常见问题解答提到item about this error,但我认为它对我没有帮助,我当时只升级到7.10.2。

答案 1 :(得分:1)

这是将ghc-7.8.4安装到您选择的目录中的方法:

  1. 下载" bindist"来自https://www.haskell.org/ghc/download_ghc_7_8_4#macosx_x86_64
  2. 将其解压缩到临时目录
  3. 创建目标目录,例如$HOME/my-prefix
  4. 在暂存目录中运行:

    $ ./configure --prefix=$HOME/my-prefix
    $ make install
    
  5. 现在可以在$HOME/my-prefix/bin找到ghc。

答案 2 :(得分:1)

正如Michael Snoyman's comment所述,stack setup --upgrade-cabal就是这样做的。这就是这个问题的答案。

在我的特定情况下(XY问题),为了实现这一点,我必须对that El Capitano related bug进行常规解决,解释为here。所以我启用了rootless,运行了upgrade命令并重新启用了rootless。

无所畏惧我害怕:这个bug特定于unix < 2.7.1.0,GHC 7.8.4也依赖于此。因此,即使在升级cabal之后,我也无法在lts-2中编译任何东西,除非我禁用无根,这非常烦人。

实际上,使用更新的unixthe GHC folks decided not to file a new minor release令人沮丧。这意味着没有现实/最近的OS X配置可以构建涉及GHC&lt; 7.10。