代码之家  ›  专栏  ›  技术社区  ›  kilgoretrout

朱莉娅:使用旧版本的包裹

  •  1
  • kilgoretrout  · 技术社区  · 6 年前

    我对茱莉亚来说是个新手,对使用旧版本的剑麻感到困惑。 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 . dev中的代码是正确的v0.1.0,包中的代码是更新的错误代码。当我尝试使用其他需要旧的vec的包时,它们会抛出错误,路径指向packages目录中的文件。

    3. 我试过 Pkg.rm("Vec") . 这对项目清单有影响。在什么都不起作用之后,每个包都会抛出错误,比如 KeyError: key "Vec" not found Pkg.add("Vec") 原来的vec安装也没有帮助。我甚至尝试从 ~/.julia 但那没有帮助。

    我想一个大问题是为什么茱莉亚要放一些包裹 packages/ 和其他进入 dev/ 如果同一个包出现在像vec这样的两个地方,如何控制使用哪个包。

    会非常感谢任何帮助,完全困惑。

    1 回复  |  直到 6 年前
        1
  •  2
  •   stillearningsomething    6 年前

    dev命令将包的完整克隆提取到~/.julia/dev/

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

    我认为这是当你用git check out手工签出时触发的。 因此:

    若要停止跟踪路径并再次使用已注册的版本,请使用free

    尝试删除这些包,然后快速提到 Vec.jl 从您的舱单:

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

    一般来说,尝试使用 Pkg 如果可能的话,因为它在后面有很多家庭魔法

    (另外,repl接口 pkg 让一切更容易,所以点击 ] 从空白处 julia> 到达那里。快速 Pkg.status() ] st 将向您展示正在跟踪的内容、dev中的内容以及您固定的版本等。)