如何解决如何列出其二进制文件安装在 $GOBIN 中的软件包?
如果我理解正确,go install
会将二进制文件放在 $GOBIN
目录中。
我倾向于忘记哪些包提供了 $GOBIN
中的哪些二进制文件,以及哪些包是我 go install
-ed 的。
有没有办法列出当前 go install
-ed 的软件包?
显然,我可以执行 ls $GOBIN
并且这会给我二进制文件的名称。但是,我正在寻找一种方法来获取带有长名称的包列表,例如github.com/operator-framework/operator-sdk
。
更新: go list ...
(建议 here)似乎不适用于我的情况,因为此命令希望我位于包含 go.mod
文件的目录中.我了解 go list
被指定用于列出项目的包。就我而言,我需要找出安装到我的 system/user 的 $GOBIN
中的所有软件包。
解决方法
对于 $GOBIN
中的每个二进制文件,您可以使用 go version -m
显示有关 Go 版本和用于构建该二进制文件的模块版本的信息。例如,这是我的 go version -m ~/go/bin/goimports
。
$ go version -m ~/go/bin/goimports
/Users/jayconrod/go/bin/goimports: go1.15.2
path golang.org/x/tools/cmd/goimports
mod golang.org/x/tools v0.0.0-20200910165216-53e29e9d1252 h1:qn28WK3EvdJOSlyZFNeWnaEX8X5GiQv+8mrw9mYrXko=
dep golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
dep golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
path
行显示已安装的 main
软件包的名称。看来我需要更新了。
$ go install golang.org/x/tools/cmd/goimports@latest
$ go version -m ~/go/bin/goimports
/Users/jayconrod/go/bin/goimports: go1.17rc1
path golang.org/x/tools/cmd/goimports
mod golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
dep golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
dep golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE=
dep golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。