最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go下載安裝及切換不同版本的實現(xiàn)方法

 更新時間:2024年12月31日 09:35:00   作者:我是唐青楓  
本文詳細介紹了如何下載和安裝Go語言,以及如何切換不同版本的Go,通過提供詳細的步驟和解釋,幫助讀者理解Go語言的安裝和版本管理

一、下載安裝

Go下載地址

Go提供了Windows、MacOS(ARM64) 和 MacOS(x86-64)、Linux版本,也可以下載源碼自己編譯安裝。

Linux && MacOS

下載壓縮包

解壓到指定目錄,如:/usr/local

rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz

把go的bin目錄添加到環(huán)境變量

在 ~/.zshrc或~/.bashrc中添加如下行

export PATH=$PATH:/usr/local/go/bin

使用環(huán)境變量立即生效

source ~/.zshrc 或 source ~/.bashrc

測試go是否安裝成功

go version

Windows

直接雙擊 .msi文件進行引導(dǎo)安裝

安裝完成后打開 cmd 或 power shell 輸入 go version 驗證安裝是否成功

二、如何切換Go版本?

方法一

直接下載不同版本的壓縮包,使用軟連接指向不同的版本

下載完壓縮包,解壓到其他目錄,如:

tar -C ~/Downloads -xzf go1.21.9.linux-amd64.tar.gz

把go目錄重命名為 go1.21.9

mv go go1.21.9

新建一個go全局目錄,如:go_version

mkdir ~/go_version

做一個軟鏈接指向go1.21.9版本

ln -s ~/Downloads/go1.21.9 ~/go_version/go

把~/go_version/go/bin目錄加到到環(huán)境變量

export PATH=~/go_version/go/bin:$PATH

驗證是否安裝成功

go1.21.9 version

擴展:此法為切換軟件的通法,其他軟件也適用。

方法二

使用go install 命令安裝其他版本

已經(jīng)安裝go的情況下(例如當(dāng)前版本為:1.22.2),可以通過go install 來安裝其他版本

go install golang.org/dl/go1.22.1@latest

go1.22.1 download

go install 命令會把go1.22.1版本作為1.22.2的可執(zhí)行安裝包,存放在 ~/go/bin下面

再去用go1.22.1 download 則會下載1.22.1的源碼,放到~/sdk下面

此時就可以用go1.22.1 version來驗證是否安裝成功了

為什么可以直接敲go1.22.1呢?實際上執(zhí)行的是/go/bin/go1.22.1這個二進制文件,而/go/bin又加入了PATH變量,所以能執(zhí)行。

sdk是不能刪除的,go1.22.1會讀取sdk里面的源碼,刪除后會提示sdk沒有下載。

方法三

使用gvm來切換

gvm全稱:Go Version Manager (GVM)是一個用于管理Go環(huán)境的開源工具。它支持安裝多個Go版本,并使用GVM “pkgsets” 管理每個項目的模塊。

GVM(與Ruby中的RVM一樣)最初是由Josh Bussdieker開發(fā)的,它允許為每個項目或項目組創(chuàng)建開發(fā)環(huán)境,分離不同的Go版本和包依賴關(guān)系,以提供更大的靈活性并防止版本問題。

安裝gvm

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

命令解析:

  • -s -S 連用表示禁用進度條但可以顯示錯誤信息
  • -L 表示重定向跟隨
  • <(...) 此處為<(curl ...) ,此語法表示curl的執(zhí)行結(jié)果被視作文件
  • bash < 表示拿到curl的執(zhí)行結(jié)果作為標(biāo)準(zhǔn)輸入傳給bash

通過gvm安裝go

gvm install go1.22.2

通過gvm切換go版本

gvm use go1.22.2

列出所有通過gvm安裝的go版本

gvm list

列出所有可用的線上go版本

gvm listall

卸載go版本

gvm uninstall go1.22.2

完全移除gvm及其所有安裝的go版本和依賴包

gvm implode如果卸載失敗,直接 rm -rf ~/.gvm

管理go的依賴包

pkgset允許獨立管理不同的Go包集及其版本,從而更容易在不同的項目依賴關(guān)系之間切換。

// 創(chuàng)建包集合
gvm pkgset create [name]

// 選擇包集合
gvm pkgset use [name]

// 列出創(chuàng)建的包集合
gvm pkgset list

// 刪除包集合
gvm pkgset delete [name]

切換到指定的包集后,后續(xù)使用go build、go run命令時會把下載的包安裝到包集目錄

其他gvm命令

  • 打印gvm版本
gvm version
  • 獲取gvm最新版本
gvm get
  • 打印幫助信息
gvm help

gvm 原理

其內(nèi)部核心也是使用軟連接,通過指向不同的版本使用不同的環(huán)境變量

后面再進行源碼分析

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • Go+Lua解決Redis秒殺中庫存與超賣問題

    Go+Lua解決Redis秒殺中庫存與超賣問題

    本文主要介紹了Go+Lua解決Redis秒殺中庫存與超賣問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Go?interface?接口的最佳實踐經(jīng)驗分享

    Go?interface?接口的最佳實踐經(jīng)驗分享

    go?的接口在go的編程里面用的十分頻繁,尤其是空接口的使用,因為有了接口,才使得Go語言變得異常的強大,今天給大家介紹下Go?interface?接口的最佳實踐經(jīng)驗分享,感興趣的朋友一起看看吧
    2022-04-04
  • Go基礎(chǔ)Slice教程詳解

    Go基礎(chǔ)Slice教程詳解

    這篇文章主要介紹了Go基礎(chǔ)Slice教程詳解,需要的朋友可以參考下
    2018-02-02
  • Golang數(shù)組的傳遞詳解

    Golang數(shù)組的傳遞詳解

    今天小編就為大家分享一篇關(guān)于Golang數(shù)組的傳遞詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Golang的os標(biāo)準(zhǔn)庫中常用函數(shù)的整理介紹

    Golang的os標(biāo)準(zhǔn)庫中常用函數(shù)的整理介紹

    這篇文章主要介紹了Go語言的os標(biāo)準(zhǔn)庫中常用函數(shù),主要用來實現(xiàn)與操作系統(tǒng)的交互功能,需要的朋友可以參考下
    2015-10-10
  • Go channel實現(xiàn)原理分析

    Go channel實現(xiàn)原理分析

    Channel是go語言內(nèi)置的一個非常重要的特性,也是go并發(fā)編程的兩大基石之一,下面這篇文章主要給大家介紹了關(guān)于Go中channel的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Go語言中內(nèi)建函數(shù)make的使用

    Go語言中內(nèi)建函數(shù)make的使用

    在Go語言編程中,make函數(shù)是一個重要的內(nèi)建函數(shù),它用于創(chuàng)建和初始化切片、映射和通道,握 make 的使用方法,可以幫助我們更高效地管理內(nèi)存和數(shù)據(jù)結(jié)構(gòu)
    2024-09-09
  • Go語言kube-scheduler深度剖析與開發(fā)之pod調(diào)度

    Go語言kube-scheduler深度剖析與開發(fā)之pod調(diào)度

    這篇文章主要為大家介紹了Go語言kube-scheduler深度剖析與開發(fā),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Go語言中常見的坑以及高性能編程技巧分享

    Go語言中常見的坑以及高性能編程技巧分享

    代碼的穩(wěn)健性、高性能、可讀性是我們每一位coder必須去追求的目標(biāo),本文結(jié)合Go語言的特性做了相關(guān)總結(jié),感興趣的小伙伴可以了解一下
    2023-06-06
  • Golang 定時器的終止與重置實現(xiàn)

    Golang 定時器的終止與重置實現(xiàn)

    在實際開發(fā)過程中,我們有時候需要編寫一些定時任務(wù)。很多人都熟悉定時器的使用,那么定時器應(yīng)該如何終止與重置,下面我們就一起來了解一下
    2021-08-08

最新評論

林西县| 福海县| 大姚县| 灵寿县| 牙克石市| 项城市| 汉中市| 嘉义市| 抚顺市| 闸北区| 桦南县| 秦皇岛市| SHOW| 喜德县| 崇阳县| 长岭县| 镇原县| 涟源市| 张家港市| 盘锦市| 荥经县| 霞浦县| 通道| 高唐县| 龙胜| 汉川市| 鄂尔多斯市| 太和县| 永胜县| 溧水县| 乐业县| 封丘县| 天台县| 资中县| 东平县| 尼木县| 蛟河市| 桂林市| 峨山| 灵山县| 彭阳县|