我有我开发的go工作区,然后构建二进制文件并将其复制到kuberenetes pod上并运行它。是否有可能知道二进制文件中使用/安装了哪些go软件包?
最佳答案
是的! runtime/debug软件包中的ReadBuildInfo
函数可以为您提供此信息。
根据文档,此功能
因此,例如,如果您的项目具有以下文件:
go.mod
module buildinfo
go 1.12
require github.com/gorilla/mux v1.7.3
main.go
package main
import (
"fmt"
"runtime/debug"
_ "github.com/gorilla/mux"
)
func main() {
buildInfo, ok := debug.ReadBuildInfo()
if !ok {
panic("Can't read BuildInfo")
}
fmt.Println("Dependencies:")
for _, dep := range buildInfo.Deps {
fmt.Printf(" %s %s\n", dep.Path, dep.Version)
}
}
运行时将输出:
Dependencies:
github.com/gorilla/mux v1.7.3
关于go - 是否有可能知道二进制文件中安装了哪些go软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59275952/