簡體   English   中英

錯誤解決Travis-CI上的集團依賴關系

[英]Error resolving cabal dependencies on Travis-CI

我正在嘗試使用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.

如果還有其他有用的輸出,請告訴我,我可以提供。

如果從cabal-install Backjump limit reached ,首先要嘗試的是使用--max-backjumps=-1選項重試,這意味着“進行詳盡搜索”,盡管如果這樣做最終會花費數十分鍾,需要中斷它或依靠Travis-CI超時。 對於大型但受限的搜索,您還可以使用500或1000而不是-1-默認值為200。

如果這不起作用,則嘗試使用--constraint 'foo==0.1.0.0選項來挑選特定項目以約束到特定版本,最好是您實際上知道的項目應該可以使用相同的GHC版本安裝。

在此特定情況下,以下兩行表明hakyll本身是問題的根源:

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)

換句話說,與GHC版本綁定的base似乎需要mtl>=2.2 (或者可能小於2.1但我懷疑這也不起作用)。 hakyll要求mtl<2.2 ,因此似乎存在根本沖突,這意味着此版本的hakyll無法在此版本的base

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM