You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何列出通过`go install x@latest`安装的软件及其版本

如何列出通过go install x@latest安装的软件及其版本

嘿,这个问题我之前也纠结过!确实Go没有直接给一个一键命令来列出所有通过go install装的工具和对应版本,但咱们用Go自带的命令就能轻松搞定,而且信息还很准确。

最靠谱的方法:解析二进制内置的元数据

Go在编译可执行文件的时候,会自动把模块的版本、路径这些信息嵌入到二进制里,用go version -m命令就能把这些信息读出来。你可以直接遍历$HOME/go/bin下的所有可执行文件,批量查询:

for exe in $HOME/go/bin/*; do
    echo "--- $(basename $exe) ---"
    go version -m "$exe" | grep -E '(mod|dep)' | head -n1
done

上面的命令会把每个工具的名字和对应的模块版本列出来,如果你想看到更详细的依赖信息,去掉grep和head就行。比如你装的moar,用这个命令就能看到它的模块路径github.com/walles/moar和具体的版本号,甚至还有提交哈希。

补充:针对单个工具的快速查询

如果你只是想查某个特定工具的版本,除了上面的方法,还可以直接运行工具的版本参数——大部分Go写的工具都会支持--version或者-v参数,比如:

moar --version

不过这个得看工具本身有没有实现这个功能,要是工具没做的话,还是用go version -m更稳妥。

另外你提到go install x@latest会自动检查版本,其实就是Go会对比本地缓存的模块版本和远程仓库的最新版本,这些缓存的信息存在$GOPATH/pkg/mod里,但直接去翻目录太麻烦,不如用上面的命令直接从二进制里读来得方便。

备注:内容来源于stack exchange,提问作者lapo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:03:21