在我的例子中,我在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
?