如何在 OPAM 中列出当前软件包版本?

ano*_*nol 5 ocaml opam

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

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

如何列出所有软件包及其版本号?

cam*_*ter 6

使用opam info <packagename>

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


Vir*_*ile 2

anol 的答案的一个改进(且更快)版本是一次性提供整个包列表opam show(要求opam输出packageversion字段),并使用 处理结果sed,因为显然show在其自己的行上输出每个字段:

opam show -f package,version $(opam list -a -s) \
 | sed -e '/ *package:/N; s/ *package: \([^\n]*\)\n *version: \([^\n]*\)/\1: \2/'
Run Code Online (Sandbox Code Playgroud)