haskell - 如何获取 Hackage 包的更新上限?

标签 haskell hackage

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

我最近意识到这个问题可能有一个解决方案,即作者将元数据更改推送到其他未更改的包 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/

相关文章:

haskell - 将您自己的错误 hackage 版本列入黑名单

haskell - HackageDB 的用户名?

haskell - Hackage 上你最喜欢的 "hidden gem"包是哪个?

haskell - Learn you a Haskell for Great Good 中的错别字?

haskell - Hackage 包搜索中新增的 “DL” 排名是如何计算的?

haskell - 为什么更通用的类型会影响 Haskell 中的运行时?

haskell - 在像 Haskell 这样的函数式语言中,内存值的生命周期是多少?

haskell - 使用函数 X 查找最早的包版本

haskell - Haskell 中的变量绑定(bind)如何与递归一起使用?

haskell - Int 在 Haskell 中是如何定义的?