2017-06-28 26 views
2

在我的陰謀文件我有以下集結取決於:如何使容器包與我想要的版本相匹配?

build-depends:  base >= 4.7 && < 5, 
         containers >= 0.5.10 && < 0.6 

當我嘗試運行stack build我收到以下錯誤:

Error: While constructing the build plan, the following exceptions were encountered: 

In the dependencies for server-0.1.0.0: 
    containers-0.5.7.1 must match >=0.5.10 && <0.6 (latest applicable is 0.5.10.2) 

我有這個問題cabal我通過解決它使用cabals的沙箱。我不知道如何通過查看--help文檔,錯誤,堆棧文檔和搜索來解決堆棧問題。我如何告訴堆棧如果不通過cabal文件,我想要更新版本的容器?

我也嘗試運行stack install containers-0.5.7.1,這沒有做到我所期望的。我在我的安裝列表中看到了一個容器。我注意到documentation說默認情況下堆棧是沙盒,但由於容器依賴性,讓它構建這個簡單的源文件非常痛苦。

我注意到,這個命令報告老版本的容器,而不是版本我想:

$ stack list-dependencies 
array 0.5.1.1 
base 4.9.1.0 
containers 0.5.7.1 
deepseq 1.4.2.0 
ghc-prim 0.5.0.0 

回答

4

嘗試把在stack.yaml如下:

extra-deps: 
- containers-0.5.10.2 

另一種方法,使其工作改變你的陰謀約束。使其像這樣的東西應該使其工作:

build-depends:  base >= 4.7 && < 5, 
         containers >= 0.5.7 && < 0.6 

注意,現在只有0.5.7.1是在Stackage LTS可用。

+0

謝謝!我運行了'stack solver --update-config'並且做了這個,現在它的構建沒有錯誤。再次感謝你! –

+0

我其實更喜歡0.5.10.2,因爲它有我覺得方便的新功能,所以我不想減少版本。 –

1

除了@思碧的偉大的答案,我想通了,這個命令就自動解決了我的問題依賴:

stack solver --update-config 
相關問題