上限的一个常见问题是包作者不确定选择其依赖项的保守上限(例如基数)。对于用户来说,这往往是一个不受欢迎的选择,他们将来可能会被阻止使用此类软件包。
我最近意识到这个问题可能有一个解决方案,即作者将元数据更改推送到其他未更改的包 as seen here 。用户如何利用这一新功能?它是否在某处详细记录或者是实验性的?
最佳答案
用户只能通过要求软件包维护者对 Hackage 进行此类依赖项修订来利用该功能。当您确定依赖关系不必要地保守时,请务必这样做,但要做好准备,它不会立即发生。
但是您需要这只是为了在计算机上安装具有比“官方支持”的依赖项更新的依赖项的软件包。只需使用
cabal install token-bucket --allow-newer base
或者,您也可以不直接从 Hackage 安装,而是将源代码(通常来自 Github)拉取到本地存储库†
git clone <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="32555b4672555b465a47501c515d5f" rel="noreferrer noopener nofollow">[email protected]</a>:hvr/token-bucket.git
cd token-bucket
...对所需的依赖项应用任何更改
sed -i 's/\(base[^<]*\)<4.10/\1<4.11/' token-bucket.cabal
...并从本地副本安装:
cabal install
†如果不出意外,您可以通过cabal fetch
简单地获取源代码的确切破解版本,但在我看来,人们应该始终使用 native 版本 -更改任何代码库时的控制系统。
关于haskell - 如何获取 Hackage 包的更新上限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46625313/