opam list -a
列出OPAM当前可用的所有包,但不显示当前未安装的包的版本号,根据opam list --help
输出:
(...)输出格式每行显示一个包,每行包含包的名称,安装的版本或 - 如果未安装包,(...)
如何列出所有包,包括其版本号?
答案 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