簡體   English   中英

如何解決Cabal中破碎的依賴關系?

[英]How to resolve broken dependencies in cabal?

我是Haskell的初學者,我一直很樂於使用cabal安裝我認為可能需要的所有東西,假設它可以像port或homebrew一樣工作,為我解決所有依賴關系並保持最新狀態,這樣他們就可以了。等等。但是,現在,當嘗試安裝lenses庫時,我收到以下消息:

In order, the following would be installed:
base-orphans-0.5.4 (new package)
distributive-0.5.0.2 (new version)
comonad-5 (new version)
bifunctors-5.4.1 (new package)
mtl-2.2.1 (reinstall) changes: transformers-0.5.2.0 -> 0.4.3.0
exceptions-0.8.3 (new package)
prelude-extras-0.4.0.3 (new package)
profunctors-5.2 (new package)
reflection-2.1.2 (new package)
semigroupoids-5.1 (new package)
free-4.12.4 (new package)
adjunctions-4.3 (new package)
kan-extensions-5.0.1 (new package)
lens-4.14 (new package)
cabal: The following packages are likely to be broken by the reinstalls:
parsec-3.1.11
network-uri-2.6.1.0
hackage-security-0.5.2.2
HTTP-4000.3.3
Use --force-reinstalls if you want to install anyway.

嗯,打破HTTP和所謂的“安全性”聽起來不是一個好主意,我的代碼依賴於Parsec。 解決這種情況的正確方法是什么? 我應該使用--force-reinstalls並期望事情不會真正中斷嗎? 還是讓這些軟件包被破壞,然后重新安裝它們(假設HTTP軟件包被破壞是可能的)? 還是知道某些軟件包會相互沖突,我是否必須對要安裝或不安裝的軟件包做出自己的選擇?

問題的一部分可能是我最初沒有意識到黑客程序中的某些軟件包並不是真正具有生產質量的代碼,因此我確實有很多我確實不需要的依賴項。 也許解決方案是卸載那些軟件包及其依賴項。 但是cabal --help不會顯示任何類型的卸載命令,因此我對如何執行此操作有些迷惑。

標准技術是告訴cabal您不介意重新安裝會損壞的軟件包。 你可以用類似的方法做到這一點

cabal install lenses parsec-3.1.11 network-uri-2.6.1.0 hackage-security-0.5.2.2 HTTP-4000.3.3

對纜車套件的詳細介紹中,這里有進一步的細節,特別是標有“ The Pigeon Drop Con”的部分。

暫無
暫無

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

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