2

上限的一个常见问题是包作者不确定选择其依赖项的保守上限(例如基数)。对于用户来说,这往往是一个不受欢迎的选择,将来可能会被阻止使用此类软件包。

我最近意识到这个问题可能有一个解决方案,即作者将元数据更改推送到其他未更改的包,如此处所示。用户如何利用这一新功能?它是详细记录在某处还是实验性的?

4

1 回答 1

2

用户只能通过要求包维护者对 Hackage 进行这样的依赖关系修订来利用该确切功能。当你确定一个依赖是不必要的保守时,一定要这样做,但要准备好它不会马上发生。

但是你不需要这个只是为了在你的机器上安装一个比“官方支持”的依赖项更新的包。只需使用

cabal install token-bucket --allow-newer base

或者,您可以不直接从 Hackage 安装,而是将源代码(通常来自 Github)拉到本地存储库中†</sup>

git clone git@github.com:hvr/token-bucket.git
cd token-bucket

...对所需的依赖项应用任何更改

sed -i 's/\(base[^<]*\)<4.10/\1<4.11/' token-bucket.cabal

...并从该本地副本安装:

cabal install

†</sup>如果不出意外,您可以简单地通过 获取源代码的确切 hackage 版本cabal fetch,但 IMO 在对任何代码库进行更改时应始终使用本机版本控制系统。

于 2017-10-07T22:21:54.667 回答