我要在新版本的Ubuntu上安装GHC,我想知道:如何确保为核心库安装了性能分析库(例如text
,unordered-containers
)?
我知道更改了cabal的.config
文件中的性能分析选项,但我的理解是这只能确保为我安装的那些软件包安装性能分析库。 (参见下面更新中的斜体文字)。
(由于试图为已安装的GHC软件包追溯安装分析库,我昨晚无意中炸毁了我的Ubuntu vbox。这导致现有软件包无法正常运行,导致我尝试卸载GHC,导致了。 ..KABOOM!)
更新
我已经安装了GHC,现在我正要安装cabal
。我已经证实了我的怀疑,我正面对一个鸡蛋和鸡蛋#34;困境:为了获得最初的cabal配置文件(我可以在其中将profiling选项设置为True),我需要安装cabal。但是,在我有机会在cabal配置文件中进行更改之前,安装cabal会导致安装核心软件包(例如,文本,无序容器)。
解决: 根据Daniel Wagner的建议(谢谢!),我对bootstrap.sh脚本文件进行了一些修改(遗憾的是我没有使用旧的cabal或者我会遵循他的其他建议)。作为未来读者的参考,我的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
答案 0 :(得分:4)
首选解决方案是通过软件包管理器安装cabal-install。如果您的软件包管理器中有旧版本的cabal-install,那么您可以使用旧版本安装具有配置的新版本,甚至可以通过cabal install cabal-install --enable-library-profiling
直接在命令行上指定分析。 / p>
如果您计划通过其bootstrap.sh
脚本安装cabal-install,则另一种解决方案是使用它为配置提供的环境变量。有四个,标注在bootstrap.sh
的顶部;相关的一个是EXTRA_CONFIGURE_OPTS
,其内容被传递到每个包的configure
命令的Setup
步骤。所以这样的事情应该做的伎俩(虽然我还没有测试过):
EXTRA_CONFIGURE_OPTS=--enable-library-profiling ./bootstrap.sh