【问题标题】:Braving cabal hell on Ubuntu 12.04在 Ubuntu 12.04 上勇敢面对阴谋集团
【发布时间】:2015-06-07 00:10:25
【问题描述】:

尝试在 Ubuntu 12.04 精确版本中穿越整个 Cabal 依赖地狱,但进展缓慢。

我的第一个 bash 命令 cabal install --allow-newer 在一长串新软件包的底部产生以下消息:

cabal: The following packages are likely to be broken by the
reinstalls:
    regex-posix-0.95.1 
    regex-compat-0.95.1 
Use `--force-reinstalls` if you want to install anyway.

(注意:从未运行过强制重新安装。)

如何修复这些软件包并完成安装 cabal 的过程? 我必须留在 12.04 并且阴谋集团已经更新。

cabal install ad --reorder-goals 最终安装了它。

但是我仍然没有脱离阴谋集团的地狱,因为我现在必须处理:

cabal:至少缺少以下依赖项:aeson -any、json-schema -any、monad-logger -any、mtl -any、persistent -any、persistent-postgresql ==2.1.6、persistent-template -任意,rest-core -any,rest-snap -any,snap-core -any,snap-server -any,text -any"

当我尝试执行cabal build

更新:所需的依赖项列表已缩减为: monad-logger,持久性,(阴谋集团安装程序的好名字。) 持久-postgresql == 2.1.6 '持久模板 休息一下 弹芯 快照服务器

所以除了persistant-postgresql 之外的任何版本都可以使用。

更新 2:好消息,正在运行 sudo apt-get install libghc-zlib-dev 发现一个有趣的障碍。

按照此问题的其中一个答案中的建议进行尝试时:Question

要安装libghc-zlib-bindings-dev,它安装得很好,还有libghc-zlib-dev。

zlib 是目前存在的依赖项。一旦安装进度将继续。

libghc-zlib-dev 安装尝试的当前警告:

警告:请检查您的区域设置: 语言=(未设置), LC_ALL =(未设置), LANG = "en_US.UTF-8 支持并安装在您的系统上。

还有

perl: 警告:回退到标准语言环境(“C”)。

显示。

也许这可以帮助我们深入调查。

我们必须走出阴谋集团的地狱。

很确定这是插红旗的地方:

#include "zlib.h"

^

编译终止。 setup-Simple-Cabal-1.22.2.0-x86_64-linux-ghc-7.10.1:缺少对 > a 的依赖 国外图书馆: * 缺少(或错误的)头文件:zlib.h * 缺少 C 库:z

我希望这个网站有自动 Ctrl - C Ctrl -V 格式,那该有多棒?

【问题讨论】:

  • 使用rm -rf ~/.ghc ~/.cabal 删除所有包。不要全局安装没有理由全局安装的软件包。使用sandboxes。使用cabal exec or cabal repl 在沙盒环境中以更交互的方式运行您的程序。最后但同样重要的是,使用Stackage
  • 或者只是取消注册regex-posix-0.95.1regex-compat-0.95.1 以及任何依赖它们的东西,如果你想保留它们,请尝试在尝试安装任何其他软件包的同时重新安装它们。
  • 我建议使用 cabal 沙箱,每个项目一个,如果你碰巧最近有一个 cabal。
  • @9000 我在项目中有一个沙箱。使用它需要做些什么特别的事情?我认为cabal build 就足够了。
  • 对于zlib.h 标头:那些应该在zlib1g-dev - 你通常应该能够安装那些sudo apt-get install zlib1g-dev - 我手头没有ubuntu 12.04 但你应该能够找到正确的(如果不是) - 开始 synaptic 并搜索名称为 zlib 的软件包(来自 bash/终端的 sudo aptitude zlib 也应该这样做) - 然后寻找带有 -dev 的软件包,这通常是在哪里标题是 ;) - 之后你可以继续你的 cabal 冒险 ;)

标签: haskell ghc zlib cabal


【解决方案1】:

看起来你只是想构建一个包,问题是它有很多依赖项。

安装所有依赖项的最佳方法(因为与“安装”不同,“构建”不会找到为您安装所有依赖项的解决方案)只是(最好在沙箱中)运行cabal install --dependencies-only。这也将同时解决所有问题,而不是在可能做出不兼容的本地选择的情况下一个接一个地解决...

【讨论】:

  • 幸运的是机器现在有 14.04
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
相关资源
最近更新 更多