Windows平臺下的Go版本切換工具-g

来源:https://www.cnblogs.com/provenc/archive/2023/05/15/17402836.html
-Advertisement-
Play Games

voidint/g g 是一個 Linux、macOS、Windows 下的命令行工具,可以提供一個便捷的多版本 go 環境的管理和切換。 在這裡我們介紹一下在 windows 下的使用,涉及到我們開發所需要用到的 幾個 go 項目層環境變數它們分別是 GOPATH,GOPROXY,GO111MOD ...


voidint/g

g 是一個 Linux、macOS、Windows 下的命令行工具,可以提供一個便捷的多版本 go 環境的管理和切換。

在這裡我們介紹一下在 windows 下的使用,涉及到我們開發所需要用到的 幾個 go 項目層環境變數它們分別是 GOPATH,GOPROXY,GO111MODULE, 需要先在主頁->高級系統設置->環境變數 中先設置好。

GOPATH

在GOPATH目錄下,一般存放有三個目錄

  • src:源代碼所在目錄
  • pkg:一般存放go mod tidy下載好的庫緩存文件。mod,windows_amd64
  • bin:Go 程式可執行文件目錄,如 vscode 的各項組件 gopls,wire,goimports

而我們的項目一般保持 D:\Code\go\src\github.com\aszeta\novelsvc 這種格式方便管理,github.com 是代碼平臺,後面接一個作者,最後才是項目名稱。

GOPROXY

這個是 go 的鏡像代理設置,因為國外訪問有時候並不會很穩定。那常見的幾個配置是:

七牛雲

GO111MODULE

我們可以根據不同的場景開關 go mod:

  • GO111MODULE = on, GO 將會強制項目使用 go mod,需要在當前 GOPATH 的 src 目錄下才能運行代碼 go run main.go
  • GO111MODULE = off ,我們則不必一定需要在 GOPATH src 下麵放置我們的代碼。

安裝 g 命令下環境變數

  • 創建目錄mkdir ~/.g/bin

  • 下載 release的 windows 版本的二進位壓縮包, 解壓之後放到~/.g/bin 目錄下

  • 使用編輯器在命令行下打開或者創建路徑為 code $profile ,這裡我們可以使用 echo $profile 然後複製路徑下來在其他的編輯器創建編輯。

  • 編輯器在當前文本中寫入 powershell 配置文件

    $env:GOROOT="$HOME\.g\go"
    $env:Path=-join("$HOME\.g\bin;", "$env:GOROOT\bin;", "$env:Path")
    
  • 重新打開一個命令行,運行 g或者gvm,則會出現使用說明。

關於 g 使用

查看當前可以安裝的 go 版本

$ g ls-remote stable
  1.13.15
  1.14.7

安裝指定的 go 版本

$ g install 1.14.7
Downloading 100% |███████████████| (119/119 MB, 9.939 MB/s) [12s:0s]
Computing checksum with SHA256
Checksums matched
Now using go1.14.7

查看所有本地安裝過的 go 版本

$ g ls
  1.7.6
  1.11.13
  1.12.17
  1.13.15
  1.14.6
* 1.14.7

切換到另一個已經安裝的 go 版本

$ g use 1.14.6
go version go1.14.6 darwin/amd64

卸載一個已安裝的 go 版本

$ g uninstall 1.14.7
Uninstalled go1.14.7

更新 g 工具的版本

$ g update
A new version of g(v1.2.2) is available
Downloading 100% |███████████████| (3.7/3.7 MB, 2.358 MB/s)
Computing checksum with SHA256
Checksums matched
Update completed

通過上述的一系列操作步驟,我們已經可以隨意切換 go 版本,不用擔心因工作版本與想體驗新版本 Go 特性,如泛型頻繁下載卸載帶來的苦惱了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在Django REST framework的SimpleJWT庫中,AccessToken是一個類,用於表示一個JSON Web Token (JWT)中的訪問令牌部分。訪問令牌是一種常見的身份驗證令牌,通常用於保護API端點。 通過SimpleJWT庫,您可以使用AccessToken類創建、解 ...
  • 1.下載maven 方式一: 官網下載所需要的版本,官網地址:https://maven.apache.org/ 方式二: 百度網盤鏈接下載3.6.1版,鏈接:鏈接:https://pan.baidu.com/s/16IuluK4oo3K8kMG9B_SV3Q?pwd=35un 提取碼:35un 下 ...
  • 教程簡介 Java併發入門教程 - 從簡單的步驟瞭解Java併發,從基本到高級概念,包括概述,環境設置,主要操作,線程通信,同步,死鎖,ThreadLocal,ThreadLocalRandom,Lock,ReadWriteLock,Condition,AtomicInteger, AtomicLo ...
  • TokenObtainPairSerializer和TokenObtainPairView是Django REST framework的SimpleJWT庫提供的兩個相關的類。 TokenObtainPairSerializer是一個用於序列化和驗證用戶憑證以生成JSON Web Token(JWT ...
  • 我們在使用mq的時候,就會很自然思考一個問題:怎麼保證數據不丟失? 現在austin接入層是把消息發到mq,下發邏輯層從mq消費數據,隨後調用對應渠道介面來下發消息。 消息推送平臺🔥推送下發【郵件】【簡訊】【微信服務號】【微信小程式】【企業微信】【釘釘】等消息類型。 https://gitee.c ...
  • 教程簡介 IDEA 全稱 IntelliJ IDEA,是java編程語言的集成開發環境。IntelliJ在業界被公認為最好的Java開發工具,尤其在智能代碼助手、代碼自動提示、重構、JavaEE支持、各類版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創新的GUI設計等方面的功能可 ...
  • 元語言抽象就是建立新的語言。它在工程設計的所有分支中都扮演著重要的角色,在電腦程式設計領域更是特別重要。因為這個領域中,我們不僅可以設計新的語言,還可以通過構造求值器的方式實現這些語言。對某個程式設計語言的求值器(或者解釋器)也是一個過程,在應用於這個語言的一個表達式時,它能夠執行求值這個表達式所... ...
  • 本文將深入探討 AM 向 RM 申請並獲得 Container 資源後,在 NM 節點上如何啟動和清理 Container。將詳細分析整個過程的源碼實現。 ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...