在 Ubuntu 12.04 勇敢面对阴谋地狱

Braving cabal hell on Ubuntu 12.04

试图在 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 已更新。

cabal install ad --reorder-goals 终于安装成功了。

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

cabal: At least the following dependencies are missing: aeson -any, json-schema -any, monad-logger -any, mtl -any, persistent -any, persistent-postgresql ==2.1.6, persistent-template -any, rest-core -any, rest-snap -any, snap-core -any, snap-server -any, text -any"

当我尝试执行 cabal build

更新:所需的依赖项列表已缩减为: monad-logger, persistent, (阴谋集团安装程序的好名字。) 持久性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 安装尝试的当前警告:

warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8 are supported and installed on your system.

还有

perl: warning : Falling back to the standard locale ("C").

显示。

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

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

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

#include "zlib.h"

^

compilation terminated. setup-Simple-Cabal-1.22.2.0-x86_64-linux-ghc-7.10.1: Missing dependency on > a foreign library: * Missing (or bad) header file: zlib.h * Missing C library: z

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

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

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