如何列出OPAM中的当前包版本?

时间:2015-10-13 08:40:56

标签: ocaml opam

opam list -a列出OPAM当前可用的所有包,但不显示当前未安装的包的版本号,根据opam list --help输出:

  

(...)输出格式每行显示一个包,每行包含包的名称,安装的版本或 - 如果未安装包,(...)

如何列出所有包,包括其版本号?

3 个答案:

答案 0 :(得分:4)

使用opam info <packagename>

我猜opam list只打印已安装软件包的版本,因为软件包依赖。列出最新版本的软件包(例如,尚未安装的软件包)并不是很有用。

答案 1 :(得分:1)

这不是一个理想的解决方案,但是使用camlspotter的建议,我使用以下shell循环手动查询每个包的version字段:

for p in $(opam list -a -s); do echo "$p $(opam show -f version $p)"; done

它可以工作,但在我的机器上完成需要大约85秒(查询当前可用的1000多个包)。

答案 2 :(得分:1)

anol的答案的精炼(和更快)版本是在一次通过中将整个包列表提供给opam show(要求opam输出package和{{1}使用version来处理结果,因为显然sed会在自己的行上输出每个字段:

show