2

当两个 Julia 不同的项目 toml 文件具有相同的项目名称和相同的 depot 路径时会发生什么?实例化一个会导致其他缓存过时吗?

4

1 回答 1

1

我假设缓存是指存储在仓库中的一组包。

Pkg.instantiate()将确保存在于活动依赖关系图中的所有包版本(由清单文件指定)都存在于软件仓库路径中的某个位置。通常,Pkg将任何给定项目所需的依赖项集与存储在仓库中的包集解耦。这就是 Julia 的项目如此轻量的原因:不同的项目可以自由地共享依赖关系,这样就没有不必要的重复。

两个不同的项目具有相同的名称这一事实实际上与此过程无关。

注意:虽然一个给定的项目只能有一个版本的依赖项,但一个软件仓库可以自由地存储同一个包的任意数量的版本。


如果您指的是预编译缓存:同一个包的多个版本相互破坏存在问题。修复应该在 Julia 1.3 中。

于 2019-11-01T00:49:48.467 回答