运行Pkg.update()
时,如果未固定或脏,则会更新所有包。
但是有可能更新一个特殊的包(比如FackCheck)吗?
我已经看了一下Julia源代码,但还不喜欢直接的解决方案。
我知道我可以固定所有包,当想要更新某人时,只需取消固定包,然后运行Pkg.update()
,但我认为这不是一个好方法。
答案 0 :(得分:1)
您还可以导航到包目录并键入git checkout master && git pull
。当您想要让包管理员负责它时,您可以说Pkg.free("SomePackage")
。
答案 1 :(得分:0)
如果您知道要使用哪个软件包版本,则可以按照以下方式执行操作。
Pkg.rm("FactCheck")
Pkg.add("FactCheck", v"0.1.1")
但是那也将修复FactCheck,因此Pkg.update()会忽略它。
稍微粗略和手动的变体将是:
cd ~/.julia/v0.3/FactCheck
git checkout $sha1 .
但在这种情况下,您可能缺少潜在的要求。
因此,假设您所使用的不是特定版本,而是最简单版本的master
分支,您可以这样做。
Pkg.rm("FactCheck")
Pkg.clone("FactCheck")
但现在你正在使用潜在的不稳定版本。
所以最后问题是你有什么具体的用例保证只更新一个包。如果您只更新一个可能导致依赖性问题的软件包,那么同时更新所有软件包是更好的选择。