尝试在 Ubuntu 12.04 精确构建中穿越整个 Cabal 依赖 hell ,但我进展缓慢。
我的第一个 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 的 hell ,因为我现在必须处理:
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,持久的,( cabal 安装程序的好名字。) 持久-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").
显示。
也许这可以帮助我们更深入地调查。
我们必须艰难地走出 cabal 的 hell 。
很确定这是插红旗的地方:
#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 格式化,那该多棒啊?
最佳答案
看起来您只是尝试构建一个包,但问题是它有很多依赖项。
安装所有依赖项的最佳方法(因为与“安装”不同的“构建”不会找到为您安装所有依赖项的解决方案)就是(最好在沙箱中)运行cabal install --仅依赖项
。这也将同时解决所有问题,而不是逐一解决,因为可能会做出不兼容的本地选择...
关于haskell - 在 Ubuntu 12.04 上勇敢面对阴谋 hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30688778/