【问题标题】:How long does stack keep the packages in its cache?堆栈将包保存在其缓存中多长时间?
【发布时间】:2017-11-17 19:15:16
【问题描述】:

我正在使用精益定理证明器,我想构建类似于堆栈的功能并开始构建库缓存。我不确定的一件事是何时删除缓存中的旧包。我可以认为,如果我安装了两个版本的 Lean,比如 3.3.0 和 3.3.1,我可以主张保留所有适用于这些版本的软件包的所有版本。由于精益语法发展迅速,因此限制性很大。

另一方面,我可以看到任何给定软件包只保留 10 个版本。这可能是 10 个最新版本或 10 个最近请求的版本。

我很想知道在构建 stack 和相关工具时考虑的一些想法。

【问题讨论】:

  • 如果有一种方法可以从一组“虚拟安装”的包中按需(当请求它们的模块时)动态安装包,那将是非常酷的。然后,当软件包数量过多时,可以卸载最近最少使用的软件包,没有人会更聪明。

标签: haskell caching haskell-stack


【解决方案1】:

stack 将包保存在缓存中永远。或者直到您手动删除这些包。 stack 中没有实现快照垃圾回收。所以只能手动调用

rm -rf ~/.stack

删除整个堆栈缓存。通常,定期执行此操作以删除在一段时间内累积的过时软件包是一种很好的做法。但是如果您手动更改它,请确保备份.stack/global-project/stack.yaml。

stack 为您处理缓存删除的命令正在开发中:

https://github.com/commercialhaskell/stack/issues/133

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2012-11-28
    • 2016-10-11
    • 1970-01-01
    • 2012-11-29
    • 2012-02-05
    • 1970-01-01
    相关资源
    最近更新 更多