package - Julia:我如何在特定版本的包中找到 "fix"?

标签 package julia

如何“修复”特定版本的包?在 Julia ?

这样我们就不必在破坏现有代码的情况下更新包。

最佳答案

v1.0之后

我对这个问题的原始回答现在在句法上已经过时了。 @RikH 提供了最新语法的答案。有关在 REPL 包模式或常规 REPL 中工作之间的句法差异的答案之外的其他信息,请键入 using Pkg,然后在 REPL 中键入 ?Pkg.PackageSpec 以查看可以引用包版本/提交等的方式示例

v1.0之前

official docs 中非常清楚地描述了执行此操作的过程.但是,我怀疑这个问题会被频繁搜索,所以加倍搜索也许没有什么坏处。

可以使用 Pkg.pin 将包固定到特定版本。单输入法会将包固定到当前版本:

julia> Pkg.pin("DependentBootstrap")
INFO: Creating DependentBootstrap branch pinned.b32df31a.tmp

julia> Pkg.status()
13 required packages:
...
 - DependentBootstrap            0.1.0              pinned.b32df31a.tmp
 - ForecastEval                  0.1.0

您会注意到包已固定到特定的 git 提交。

您可以使用第二个参数固定到特定包的特定标记版本:

julia> Pkg.pin("DependentBootstrap", v"0.0.1")
INFO: Creating DependentBootstrap branch pinned.996d3c22.tmp
INFO: Downgrading ForecastEval: v0.1.0 => v0.0.1
INFO: Building SpecialFunctions
INFO: Building Rmath

julia> Pkg.status()
13 required packages:
...
 - DependentBootstrap            0.0.1              pinned.996d3c22.tmp
 - ForecastEval                  0.0.1

请注意,固定操作会自动降级 ForecastEval 以满足版本要求。

您可以使用 Pkg.free 将软件包恢复到最新的稳定版本:

julia> Pkg.free("DependentBootstrap")
INFO: Freeing DependentBootstrap
INFO: Upgrading ForecastEval: v0.0.1 => v0.1.0
INFO: Building SpecialFunctions
INFO: Building Rmath

julia> Pkg.status()
13 required packages:
...
 - DependentBootstrap            0.1.0
 - ForecastEval                  0.1.0

请注意 ForecastEval 也自动返回到最新版本。

关于package - Julia:我如何在特定版本的包中找到 "fix"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47087509/

相关文章:

安卓 : Impact of Uninstalling Keyboard Language Packs

visual-studio-code - VSCode Jupyter 扩展 : Can't find new kernel after updating Julia?

julia - Julia 中具有评估/计算属性的结构

continuous-integration - Github 操作 CI : making PyCall aware of Julia ENV variables

julia - 非线性求解器始终产生零残差

julia - Julia 类型图如何处理数组?

npm - 使用 webpack 时的依赖项和 devDependencies

c++ - 使用 dyn.load 或 library.dynam 调用 R 包中的 C++ 函数

java从另一个类访问变量

python - Snakemake无法成功加载conda环境