在不更新其他不相关的软件包的情况下安装软件包(Julia 1.0)



可以在Julia 1.0中安装软件包而不更新其他软件包吗?例如,如果安装ClusterManagers,则软件包IJulia(以及其他(都会更新。包ClusterManagers没有依赖项。

(v1.0) pkg> add ClusterManagers
Resolving package versions...
Installed IJulia ───────────── v1.12.0
Installed ClusterManagers ──── v0.3.2
Installed ColorTypes ───────── v0.7.5
Installed OrderedCollections ─ v1.0.1
Updating `~/.julia/environments/v1.0/Project.toml`
[34f1f09b] + ClusterManagers v0.3.2
[7073ff75] ↑ IJulia v1.11.1 ⇒ v1.12.0
Updating `~/.julia/environments/v1.0/Manifest.toml`
[34f1f09b] + ClusterManagers v0.3.2
[3da002f7] ↑ ColorTypes v0.7.4 ⇒ v0.7.5
[7073ff75] ↑ IJulia v1.11.1 ⇒ v1.12.0
[bac558e1] ↑ OrderedCollections v1.0.0 ⇒ v1.0.1
Building IJulia → `~/.julia/packages/IJulia/4VL8h/deps/build.log`

我在Linux上使用Julia 1.0.0(官方 https://julialang.org/版本(。

是的,目的是添加包不应该更新其他包。这是一个已修复的错误(https://github.com/JuliaLang/Pkg.jl/issues/607 https://github.com/JuliaLang/Pkg.jl/pull/642(,将包含在Julia v1.0.1中。

在 Julia 1.4 及更高版本上,您可以更精细地控制在向项目添加新包时如何更新依赖项。 REPL 模式使这变得非常容易,例如,

(Project) pkg> add --preserve=all Example

使用--preserve=all是最保守的,可能会失败,具体取决于新包的要求。 您还可以通过仅允许间接依赖项更改版本(--preserve=direct(或将直接依赖项限制为其不间断升级(--preserve=semver(来为包管理器提供更多的自由度。

最新更新