Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 解析Travis CI上的阴谋集团依赖项时出错_Haskell_Cabal_Travis Ci_Cabal Install_Hakyll - Fatal编程技术网

Haskell 解析Travis CI上的阴谋集团依赖项时出错

Haskell 解析Travis CI上的阴谋集团依赖项时出错,haskell,cabal,travis-ci,cabal-install,hakyll,Haskell,Cabal,Travis Ci,Cabal Install,Hakyll,我想用Travis CI建立我的Hakyll网站。然而,在我走到这一步之前,我在尝试将Hakyll安装为依赖项时出现了一个依赖项错误 我可以在我的机器上本地构建Hakyll,没有问题。什么可能导致依赖项错误,如何解决?有没有一种方法可以解决这个问题,而不必对每个依赖项版本进行硬编码 这是TravisCI的输出 travis_fold:end:git.5 $ export PATH=/usr/local/ghc/$(ghc_find 7.6)/bin/:$PATH travis_fold:star

我想用Travis CI建立我的Hakyll网站。然而,在我走到这一步之前,我在尝试将Hakyll安装为依赖项时出现了一个依赖项错误

我可以在我的机器上本地构建Hakyll,没有问题。什么可能导致依赖项错误,如何解决?有没有一种方法可以解决这个问题,而不必对每个依赖项版本进行硬编码

这是TravisCI的输出

travis_fold:end:git.5
$ export PATH=/usr/local/ghc/$(ghc_find 7.6)/bin/:$PATH
travis_fold:start:cabal
$ cabal update
Config file path source is default config file.
Config file /home/travis/.cabal/config not found.
Writing default configuration to /home/travis/.cabal/config
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
travis_fold:end:cabal
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
$ cabal --version
cabal-install version 1.18.0.2
using version 1.18.1 of the Cabal library 
travis_fold:start:before_install.1
$ cabal update
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
travis_fold:end:before_install.1
travis_fold:start:before_install.2
$ cabal install hakyll pandoc
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: hakyll-4.5.3.0 (user goal)
trying: base-4.6.0.1/installed-8aa... (dependency of hakyll-4.5.3.0)
trying: hakyll-4.5.3.0:+checkexternal
trying: http-conduit-2.1.2.3 (dependency of hakyll-4.5.3.0:+checkexternal)
trying: http-client-0.3.3.2 (dependency of http-conduit-2.1.2.3)
trying: exceptions-0.6.1 (dependency of http-client-0.3.3.2)
trying: transformers-0.4.1.0 (dependency of http-conduit-2.1.2.3)
next goal: mtl (dependency of hakyll-4.5.3.0)
rejecting: mtl-2.2.1, 2.2.0.1, 2.2 (conflict: hakyll => mtl>=1 && <2.2)
rejecting: mtl-2.1.3.1, 2.1.2 (conflict: transformers==0.4.1.0, mtl =>
transformers==0.3.*)
rejecting: mtl-2.1.1, 2.1 (conflict: base==4.6.0.1/installed-8aa..., mtl =>
base<4.6)
rejecting: mtl-2.0.1.1 (conflict: transformers==0.4.1.0, mtl =>
transformers==0.2.*)
rejecting: mtl-2.0.1.0, 2.0.0.0 (conflict: base==4.6.0.1/installed-8aa..., mtl
=> base<4.6)
rejecting: mtl-1.1.1.1, 1.1.1.0, 1.1.0.2, 1.1.0.1, 1.1.0.0, 1.0 (conflict:
exceptions => mtl>=2.0 && <2.3)
Backjump limit reached (change with --max-backjumps).

[31;1mThe command "cabal install hakyll pandoc" failed and exited with 1 during .[0m

Your build has been stopped.
特拉维斯折叠:结束:git.5 $export PATH=/usr/local/ghc/$(ghc_find 7.6)/bin/:$PATH 特拉维斯:开始:阴谋集团 $cabal更新 配置文件路径源是默认的配置文件。 未找到配置文件/home/travis/.cabal/Config。 将默认配置写入/home/travis/.cabal/config 从hackage.haskell.org下载最新的软件包列表 注意:有一个新版本的阴谋集团安装可用。 要升级,请运行:cabal install cabal install 特拉维斯·沃德:结束:阴谋集团 $ghc--版本 光荣的格拉斯哥哈斯克尔编译系统,7.6.3版 $cabal——版本 cabal安装版本1.18.0.2 使用阴谋集团库的1.18.1版 travis_折叠:开始:安装前。1 $cabal更新 从hackage.haskell.org下载最新的软件包列表 注意:有一个新版本的阴谋集团安装可用。 要升级,请运行:cabal install cabal install travis_折叠:结束:安装前。1 travis_折叠:开始:安装前。2 $cabal安装hakyll pandoc 正在解析依赖项。。。 阴谋集团:无法解析依赖项: 尝试:hakyll-4.5.3.0(用户目标) 正在尝试:base-4.6.0.1/已安装-8aa。。。(hakyll-4.5.3.0的依赖性) 尝试:hakyll-4.5.3.0:+checkexternal 尝试:http-conductor-2.1.2.3(hakyll-4.5.3.0的依赖关系:+checkexternal) 尝试:http-client-0.3.3.2(依赖于http-conductor-2.1.2.3) 正在尝试:异常-0.6.1(http-client-0.3.3.2的依赖项) 尝试:transformers-0.4.1.0(依赖于http-CONDUCTOR-2.1.2.3) 下一个目标:mtl(hakyll-4.5.3.0的依赖性) 拒绝:mtl-2.2.1、2.2.0.1、2.2(冲突:hakyll=>mtl>=1&& 变压器==0.3.*) 拒绝:mtl-2.1.1,2.1(冲突:基本==4.6.0.1/已安装-8aa…,mtl=> 基础 变压器==0.2.*) 拒绝:mtl-2.0.1.0,2.0.0.0(冲突:base==4.6.0.1/installed-8aa…,mtl
=>基本mtl>=2.0&&如果您从cabal安装中获得
反向跳转限制
,首先要尝试的是使用选项
--max backjumps=-1
重试,这意味着“彻底搜索”,但如果最终需要数十分钟,则需要中断它或依赖Travis CI超时。对于大型但有限的搜索,也可以使用500或1000而不是-1,默认值为200

如果这不起作用,那么尝试选择特定的项目,并使用选项
--constraint'foo==0.1.0.0
,将其约束到特定的版本,最好是您实际知道应该可以使用相同的GHC版本安装的项目

在这种特殊情况下,以下两行表明哈基尔本身是问题的根源:

rejecting: mtl-2.2.1, 2.2.0.1, 2.2 (conflict: hakyll => mtl>=1 && <2.2)
rejecting: mtl-2.1.1, 2.1 (conflict: base==4.6.0.1/installed..., mtl => base<4.6)

拒绝:mtl-2.2.1、2.2.0.1、2.2(冲突:hakyll=>mtl>=1和&base=2.2
(或者可能小于
2.1
,但我怀疑这也不起作用).
hakyll
要求
mtl对该编辑不太感兴趣,因为该错误似乎是针对Travis CI的,并且该网站鼓励提供信息的标题。我已经回滚了该编辑,因为我同意这会使问题变得更糟。您是否可以控制如何在Travis CI上运行cabal install?您是否可以使用--max backjumps=-1?如果需要的话添加约束我会首先选择一个特定的hakyll版本,您知道该版本在本地与travis ci使用的GHC相同。是的,travis ci配置文件基本上就像一个运行的bash脚本。我将尝试使用-1 backjump,看看我们得到了什么,我怀疑它们的配置是否已更改,或者在服务器之间不一致,因为这个问题昨天不存在,但今天才开始。有趣的是,它起了作用。也许他们的阴谋集团配置的最大回跳设置非常低…但这花了一段时间,大约4分钟(相对于Travis CI的正常速度来说并不可怕).我不完全确定这个答案是否值得,或者这个问题应该结束,因为它不太可能帮助未来的读者,或者是一个重复的问题,但我搜索了有关阴谋集团安装的问题,其中提到了
--max backjumps
,但没有找到任何问题,因此也许一些关于处理这个问题的一般指导是有用的。