亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 `go env` 命令不反映環境變量的變化?

為什么 `go env` 命令不反映環境變量的變化?

Go
牛魔王的故事 2023-02-28 20:30:47
在我的系統中,GOBIN變量未設置(空值)?,F在不像其他一些 GO env 變量,即使在命令的輸出中,這似乎也沒有設置go env。(我是用戶ubuntu,~也是/home/ubuntu/)echo $GOBIN   //emptyecho $GOPATH   //emptyecho $GOROOT   //emptygo env GOBIN   //emptygo env GOPATH/home/ubuntu/gogo env GOROOT/usr/local/gowhich go/usr/local/go/bin/go為什么go env給的值與系統環境變量不同?我找不到關于此的任何文檔,但我的假設是,如果未在系統級別設置 env 變量,Golang 會設置默認值——由go env. 這個假設是否正確?為什么GOBIN未設置?我嘗試顯式設置系統 env 變量,但它沒有反映在 中go env,即使系統 env 變量似乎已被修改。為什么會這樣?echo $GOBIN     //emptygo env GOBIN     //emptygo env GOPATH/home/ubuntu/goGOBIN=‘/home/ubuntu/go/bin’echo $GOBIN/home/ubuntu/go/bingo env GOBIN     //empty官方文檔 ( https://pkg.go.dev/cmd/go ) 說:env 打印 Go 環境信息但它沒有提到上述變量的來源。問題 X ( https://xyproblem.info/ )我正在嘗試安裝 Delve ( https://github.com/go-delve/delve ),我的系統有兩個 go 版本 (go1.10.1和go1.17.8),我打算使用后者 (不幸的是無法刪除前者)go1.17.8 go install github.com/go-delve/delve/cmd/dlv@latest/home/ubuntu在=>創建一個新目錄go并在此處添加 Delve。但卻dlv version無法識別。從go help env,應該安裝二進制文件的GOBIN位置go install- 在我的例子中它是未設置的,所以我猜 Golang 將它安裝在GOPATH. 但即便如此,我還是希望二進制文件能夠被識別。我也嘗試將位置添加到我的PATH,但這也沒有用。我應該在通過安裝之前將我的 GOBIN 設置為任何特定的東西go1.17.8嗎?我的系統是否有 2 個 go 版本(which go指向 go1.10.1 版本),導致了這個?(1.10.1 沒有模塊支持,但我正在嘗試通過 go.17.8 安裝,所以我認為這不是問題)
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

這些 go env 變量是在安裝二進制文件時設置的變量。

請參考https://github.com/golang的代碼:

因此,這些變量不會作為操作系統環境變量的一部分出現。

這些變量可以被 os.UserConfigDir 中的配置文件或命令覆蓋go env NAME=VALUE。


查看完整回答
反對 回復 2023-02-28
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

go on Linux 會將持久設置存儲到此文件中:

$HOME/.config/go/env

通過go env -w命令。由于 go 工具從這個配置和 ENV VARS 加載設置-解釋了為什么您可能會看到不同的值。go 工具結合了兩者。


查看完整回答
反對 回復 2023-02-28
  • 2 回答
  • 0 關注
  • 403 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號