朱莉娅:使用旧版本的软件包

时间:2018-10-23 00:50:37

标签: julia

我对Julia真的很陌生,并且对使用旧版本的SISL Vec软件包感到困惑。

我正在尝试设置ngsim_env,而their instructions要求您使用较旧的v0.1.0 of Vec。但是,当我按照说明安装Vec软件包,然后检出v0.1.0标签时,它不起作用。

这就是我所做的

  1. $ julia ../build.jl用于某些包含此块的软件包

    packages = keys(Pkg.installed()) if !in("Vec", packages) Pkg.clone("https://github.com/tawheeler/Vec.jl.git") end

注意:此git URL实际上进入SISL Vec页面。

  1. cd ~/.julia/packages/Vec git fetch tags git checkout v0.1.0

  2. 我使用许多其他软件包进行了许多其他安装。在某个时候,我注意到有一个软件包~/.julia/dev/Vec~/.julia/packages/Vec。开发人员中的一个具有正确的v0.1.0代码,而软件包中的一个具有更新的错误代码。当我尝试使用需要较早版本的Vec的其他软件包时,它们会抛出错误,并且路径指向packages目录中的文件。

  3. 我尝试了Pkg.rm("Vec")。这对项目清单有所帮助。没有任何效果后,每个软件包都会抛出诸如KeyError: key "Vec" not foundPkg.add("Vec")之类的错误,而原始的Vec安装也没有帮助。我什至尝试从~/.julia删除两个Vec目录,但这无济于事。

我想一个大问题是,为什么茱莉亚为什么将某些软件包放入packages/中,而另一些放入dev/中,以及如果在Vec这样的地方出现相同的软件包,如何控制使用哪个软件包呢。 / p>

非常感谢您的协助,完全感到困惑。

1 个答案:

答案 0 :(得分:2)

  

dev命令将软件包的完整副本提取到〜/ .julia / dev /

通过the docs。我在dev目录中唯一拥有的东西就是我自己开发的东西。

我认为这是在您使用git checkout手动进行检出时触发的。 因此:

  

要停止跟踪路径并再次使用注册版本,请使用免费

尝试删除软件包,并在清单中鞭打Vec.jl的提述:

(v1.0) pkg> rm Vec
(v1.0) pkg> add https://github.com/tawheeler/Vec.jl.git@0.1.0

通常,请尽可能使用Pkg,因为这样做会在后面做很多魔术工作

(此外,带有pkg的repl界面使一切变得容易,因此请从空白的]击中julia>到那里。然后快速Pkg.status()或{{1 }}会向您显示您跟踪的内容以及开发中的内容以及您固定的版本等。