如何列出其二进制文件安装在 $GOBIN 中的软件包?
How do I list packages whose binaries are installed in $GOBIN?
如果我理解正确,go install
将二进制文件放在 $GOBIN
目录中。
我往往会忘记 $GOBIN
中哪些包提供了哪些二进制文件,哪些包是我 go install
编辑的。
有没有办法列出当前 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=
如果我理解正确,go install
将二进制文件放在 $GOBIN
目录中。
我往往会忘记 $GOBIN
中哪些包提供了哪些二进制文件,哪些包是我 go install
编辑的。
有没有办法列出当前 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=