安装 GHC 7.8 时可以确保安装分析库吗?

Posted

技术标签:

【中文标题】安装 GHC 7.8 时可以确保安装分析库吗?【英文标题】:Possible to ensure that profiling libraries are installed when installing GHC 7.8? 【发布时间】:2014-12-17 23:33:43 【问题描述】:

我要在新的 Ubuntu 副本上安装 GHC,我想知道:如何确保为核心库(例如,textunordered-containers)安装分析库?

我知道更改 cabal 的 .config 文件中的分析选项,但我的理解是,这只能确保为我在设置 cabal 之后安装的那些包安装分析库(请参阅下面更新中的斜体文本) .

(昨晚我无意中炸毁了我的 Ubuntu vbox,因为我试图为已安装的 GHC 包追溯安装分析库。这导致现有的包无法工作,这导致我试图卸载 GHC,从而导致。 ..KABOOM!)

更新: 我已经安装了 GHC,现在正要安装 cabal。我已经确认我正面临“鸡和蛋”的困境:为了获得初始的 cabal 配置文件(我可以在其中将分析选项设置为 True),我需要安装阴谋集团。但是,在我有机会在 cabal 配置文件中进行更改之前,安装 cabal 会导致安装核心包(例如,文本、无序容器)。

已解决: 根据 Daniel Wagner 的建议(谢谢!),我对 bootstrap.sh 脚本文件进行了一些修改(不幸的是,我没有旧的阴谋集团,否则我会遵循他的其他建议)。作为未来读者的参考,我的 bootstrap.sh 文件的开头如下所示(更改后):

#VERBOSE
DEFAULT_CONFIGURE_OPTS="--enable-library-profiling --enable-shared"
EXTRA_CONFIGURE_OPTS=$EXTRA_CONFIGURE_OPTS-$DEFAULT_CONFIGURE_OPTS
#EXTRA_CONFIGURE_OPTS
#EXTRA_BUILD_OPTS
#EXTRA_INSTALL_OPTS

【问题讨论】:

【参考方案1】:

首选的解决方案是通过包管理器安装 cabal-install。如果您的包管理器中有旧版本的 cabal-install,则可以使用旧版本安装新版本并进行适当的配置,甚至可以通过 cabal install cabal-install --enable-library-profiling 直接在命令行上指定分析。

如果您计划通过其bootstrap.sh 脚本安装 cabal-install,另一种解决方案是使用它为配置提供的环境变量。有四个,标注在bootstrap.sh上方;相关的是EXTRA_CONFIGURE_OPTS,其内容被传递到每个包的Setup 命令的configure 步骤。所以像这样的东西应该可以解决问题(尽管我还没有测试过):

EXTRA_CONFIGURE_OPTS=--enable-library-profiling ./bootstrap.sh

【讨论】:

以上是关于安装 GHC 7.8 时可以确保安装分析库吗?的主要内容,如果未能解决你的问题,请参考以下文章

Haskell 的 GHC 未安装

如何在 Haskell 平台中安装具有分析支持的 ghc 和 base

GHC 7.8 中的角色代码损坏

如果我将 Haskell Platform (2013.2.0.0) 与 GHC (7.6.3) 一起使用,是不是可以安装 Xcode 5?

Data.HashMap 的分析

在 GHC 中自动分配成本中心