在我的例子中,我在Haskell包bindings-libzip
上的Cabal文件中有一個依賴項。特別是,我可以接受幾種不同版本的libzip
,例如, bindings-libzip-0.11
或bindings-libzip-0.10
。這些又依賴於各自的本地文庫0.11
和0.10
。如何使用Cabal將Haskell依賴關係的版本固定爲基礎本地依賴項的版本?
因此我在我的.cabal
文件中有bindings-libzip >= 0.10 < 0.12
。
Haskell包bindings-libzip-x
指定PkgConfig-Depends
libzip
版本x
必須存在於客戶機上。假設下游用戶安裝了libzip
的版本0.10
。但是,當下拉我的包時,此用戶可能會拉下最新的依賴關係,並且會傳遞性地下拉bindings-libzip
的0.11
版本。這會導致構建過程出錯,並顯示有關安裝的libzip
版本不正確的消息。
有什麼辦法,我可以在我的.cabal文件指定要使用bindings-libzip-0.11
當且僅當pkg-config
檢測的libzip
0.11
版本,並使用bindings-libzip-0.10
當且僅當pkg-config
檢測版本的libzip
0.10
?