opam info package
有一个字段available-versions
,其中列出了针对至少一个OCaml版本 的给定包的所有版本。
对我来说,在日常使用中,对我目前的OCaml版本提供的软件包版本列表更有用。
例如,如果我目前使用OCaml 4.05.0,并且运行opam info merlin
,我会得到:
available-versions: 1.3, 1.3.1, 1.3.1-trunk, 1.4, 1.4.1, 1.5, 1.6, 1.7,
1.7.1, 2.0.0, 2.1.0, 2.1.1, 2.1.2, 2.2, 2.3, 2.3.1, 2.5.0, 2.5.1, 2.5.2,
2.5.3, 2.5.4, 2.5.5, 3.0.0, 3.0.1, 3.0.2, 3.0.3
但如果我尝试opam install merlin.1.3
,它就会失败:
[ERROR] merlin.1.3 is not available because your system doesn't comply
with ocaml-version > "4.00.1" & ocaml-version < "4.02.0".
请注意,opam list
仅输出一行(已安装的版本,如果未安装,则为--
),因此它也不允许知道哪些版本可以安装。
有没有办法直接获取实际可用的所有包版本(对于我当前的编译器),而不是尝试安装它们中的每一个?
答案 0 :(得分:2)
我将使用opam 2.0。为此目的,您有两种选择:
opam list --available merlin
只会通过查看开关,环境和merlin包本身来列出内容。此选项应在opam 1.3中提供。
opam list --installable merlin
实际上会运行解算器以检查是否正常。这意味着特别是处理依赖关系。我认为这个选项是2.0的新功能。
最后,选项--all-versions
允许您强制opam列出每个包的所有版本。