如何在我的 go 应用程序中更新 golang 标准库?

问题描述

我有一个使用 go 1.16.4 构建的应用程序,它使用(导入)Go std lib 的 archive/zip 组件。我查看了 golang Release Notes,发现在 golang 1.16.5 的 archive/zip 中修复了一个安全漏洞。如何确保我的应用程序不再易受攻击?我是否必须升级我的 go 版本,然后使用新版本的 go 重建?或者我可以供应更新版本的固定组件然后重建吗?构建机器的 $GOROOT 中的文件是否必须更新?

解决方法

我是否必须升级自己的 go 版本,然后使用新版本的 go 重新构建?

是的...

  1. 升级 Go。
  2. 重建。

或者我可以提供更新版本的固定组件然后重建吗?

不,您不能供应 Go 标准库。

构建机器的 $GOROOT 中的文件是否必须更新?

GOROOT 是 Go SDK 安装的根文件夹。当您在调用 go build/go install 的机器(或容器)上升级 Go 时,它会更新。