将最新版本的 zarith 与 opam 一起使用

Using the most recent version of zarith with opam

我正在使用 zarith 来处理任意大小的整数。

我在 opam.ocaml.org 上找到的最新版本是 v1.9.1(2019 年 8 月发布)。在项目的 github 页面上,我阅读了 Latest commit a9a309d on 23 Jan (2020)。

我想切换到较新的版本,但我该怎么做呢?我要

  1. 保持 opam 快乐,
  2. 始终使用最新版本的 zarith。

请帮忙!

确实,目前 1.9.1 是 Zarith 的最新版本,可作为 opam 软件包 (https://opam.ocaml.org/packages/zarith/) and as a GitHub tag (https://github.com/ocaml/Zarith/tags) 使用。

但是,鉴于此上游 Git 存储库还包含一个 .opam specification file, you can just as well use opam to install the latest development version available in the master branch, or if need be, a precise Git commit just by relying on the so-called pinning feature of opam

因此,您可以 运行 或者:

opam pin add -n -y -k git zarith.dev --dev-repo

opam pin add -n -y -k git zarith.dev "https://github.com/ocaml/Zarith.git#master"

opam pin add -n -y -k git zarith.dev "https://github.com/ocaml/Zarith.git#a9a309d0596d93b6c0c902951e1cae13d661bebd"

然后:

opam install zarith

有关 opam-pin 命令的更多详细信息

  1. 语法上不需要.dev版本后缀,但实际上推荐使用,因为zarith.opam文件没有指定任何版本。更准确地说:

    • 如果您有其他依赖项在安装时会抱怨 zarith.dev,您可以将 dev 的版本后缀替换为任何兼容的版本字符串,“关闭”到您提交或分支已选中。
    • 但是,如果您省略此版本,opam 通常会从 opam package repository 中选择最新版本字符串(即 1.9.1),这不一定与 Git 您选择的分支或提交。
  2. -n-y-k是选项的缩写形式:

    • --no-action(不要轻易安装包,等待后续的 opam install 命令),
    • --yes(在没有提示的情况下回答潜在的 yes/no 问题 - 一个常见的 opam pin 问题是 Package foo does not exist, create as a NEW package? [Y/n] 如果您想要安装尚未发布的自定义包在 opam-repository),
    • --kind=KIND(因为pinning有好几种KINDS,最典型的是versionpathgit

如果您确实需要使用未发布的、开发中的 zarith 版本,您可以使用 opam pin add--dev-repo 选项:

opam pin add --dev-repo zarith
opam install zarith