golang 环境变量 GOSUMDB

GOSUMDB 的全称为 Go CheckSum Database,用来下载的包的安全性校验问题。包的安全性在使用 GoProxy 之后更容易出现,比如我们引用了一个不安全的 GoProxy 之后然后下载了一个不安全的包,这个时候就出现了安全性问题。对于这种情况,可以通过 GOSUMDB 来对包的哈希值进行校验。当然如果想要关闭哈希校验,可以将 GOSUMDB 设置为 off;如果要对部分包关闭哈希校验,则可以将包的前缀设置到环境变量中 GONOSUMDB 中,设置规则类似 GOPRIVATE。

关于 GOSUMDB 的配置格式为:\<db_name>+\<publickey>+\<url>。

GOSUMDB="sum.golang.org"
GOSUMDB="sum.golang.org+<publickey>"
GOSUMDB="sum.golang.org+<publickey> https://sum.golang.org"

上面三种配置都是合理的,因为对于 http://sum.golang.org,Go 自己知道其对应的 publickey 和 url,所以我们只要配置一个名字即可,对于另外一个 http://sum.golang.google.cn 也是一样。除此之外的,都需要指明 publickey,url 默认是 https://\<db_name>。

关于 GOSUMDB 更多的详细信息可以参考:https://golang.org/cmd/go/#hdr-Module_authentication_failures

 

wide288:

有时一些报错会跟这个参数有关,需要把此参数值设为 off

### 如何在 Golang 中设置和使用环境变量 #### 设置环境变量 为了在 Go 应用程序中设置环境变量,可以利用 `os` 包中的函数 `Setenv()`。此方法允许动态地更改或新增环境变量,在运行时影响应用程序的行为。 ```go import ( "fmt" "os" ) func main() { err := os.Setenv("NAME", "Flavio") if err != nil { fmt.Println(err) } } ``` 上述代码展示了如何通过调用 `os.Setenv()` 函数来设定名为 `NAME` 的环境变量并赋值为 `"Flavio"`[^1]。 #### 获取环境变量 当需要读取已存在的环境变量时,可借助于 `os.Getenv()` 方法实现这一目的。该功能会返回指定名称对应的环境变量的字符串形式;如果不存在,则返回空串。 ```go name := os.Getenv("NAME") if name == "" { fmt.Println("Environment variable NAME is not set.") } else { fmt.Printf("The value of environment variable NAME is %s\n", name) } ``` 这段示例说明了怎样获取之前定义过的 `NAME` 变量的内容,并打印出来。 #### 配置全局环境变量 对于希望在整个系统范围内生效而非仅限于单个进程内的场景来说,可以在操作系统级别上配置这些参数。例如,在 Windows 上可以通过图形界面或者批处理脚本的方式添加像 `%GOROOT%\bin` 这样的路径到系统的 PATH 环境变量里[^2];而在 Linux 发行版中则通常采用修改 shell 初始化文件(如 `.bashrc`, `.zshrc`)的方法加入 `/usr/local/go/bin` 到 `$PATH` 中去[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值