我对Julia真的很陌生,并且对使用旧版本的SISL Vec软件包感到困惑。
我正在尝试设置ngsim_env,而their instructions要求您使用较旧的v0.1.0 of Vec。但是,当我按照说明安装Vec软件包,然后检出v0.1.0标签时,它不起作用。
这就是我所做的
$ 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页面。
cd ~/.julia/packages/Vec
git fetch tags
git checkout v0.1.0
我使用许多其他软件包进行了许多其他安装。在某个时候,我注意到有一个软件包~/.julia/dev/Vec
和~/.julia/packages/Vec
。开发人员中的一个具有正确的v0.1.0代码,而软件包中的一个具有更新的错误代码。当我尝试使用需要较早版本的Vec的其他软件包时,它们会抛出错误,并且路径指向packages目录中的文件。
我尝试了Pkg.rm("Vec")
。这对项目清单有所帮助。没有任何效果后,每个软件包都会抛出诸如KeyError: key "Vec" not found
和Pkg.add("Vec")
之类的错误,而原始的Vec安装也没有帮助。我什至尝试从~/.julia
删除两个Vec目录,但这无济于事。
我想一个大问题是,为什么茱莉亚为什么将某些软件包放入packages/
中,而另一些放入dev/
中,以及如果在Vec这样的地方出现相同的软件包,如何控制使用哪个软件包呢。 / p>
非常感谢您的协助,完全感到困惑。
答案 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 }}会向您显示您跟踪的内容以及开发中的内容以及您固定的版本等。