我有我开发的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/

10-13 09:17