【发布时间】: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 execorcabal repl在沙盒环境中以更交互的方式运行您的程序。最后但同样重要的是,使用Stackage。 -
或者只是取消注册
regex-posix-0.95.1和regex-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冒险 ;)