欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2024年12月31日 09:35:00   作者:我是唐青楓  
本文詳細(xì)介紹了如何下載和安裝Go語言,以及如何切換不同版本的Go,通過提供詳細(xì)的步驟和解釋,幫助讀者理解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文件進(jìn)行引導(dǎo)安裝

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

二、如何切換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

驗(yàn)證是否安裝成功

go1.21.9 version

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

方法二

使用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來驗(yàn)證是否安裝成功了

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

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

方法三

使用gvm來切換

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

GVM(與Ruby中的RVM一樣)最初是由Josh Bussdieker開發(fā)的,它允許為每個項(xiàng)目或項(xiàng)目組創(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 連用表示禁用進(jìn)度條但可以顯示錯誤信息
  • -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允許獨(dú)立管理不同的Go包集及其版本,從而更容易在不同的項(xiàng)目依賴關(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)境變量

后面再進(jìn)行源碼分析

總結(jié)

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

相關(guān)文章

  • golang中切片copy復(fù)制和等號復(fù)制的區(qū)別介紹

    golang中切片copy復(fù)制和等號復(fù)制的區(qū)別介紹

    這篇文章主要介紹了golang中切片copy復(fù)制和等號復(fù)制的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Golang 語言map底層實(shí)現(xiàn)原理解析

    Golang 語言map底層實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Golang 語言map底層實(shí)現(xiàn)原理解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 使用Go語言構(gòu)建高效的二叉搜索樹聯(lián)系簿

    使用Go語言構(gòu)建高效的二叉搜索樹聯(lián)系簿

    樹是一種重要的數(shù)據(jù)結(jié)構(gòu),而二叉搜索樹(BST)則是樹的一種常見形式,在本文中,我們將學(xué)習(xí)如何構(gòu)建一個高效的二叉搜索樹聯(lián)系簿,感興趣的可以了解下
    2024-01-01
  • 分享6個Go處理字符串的技巧小結(jié)

    分享6個Go處理字符串的技巧小結(jié)

    這篇文章主要介紹了分享6個Go處理字符串的技巧小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • go引入自建包名報(bào)錯:package?XXX?is?not?in?std解決辦法

    go引入自建包名報(bào)錯:package?XXX?is?not?in?std解決辦法

    這篇文章主要給大家介紹了go引入自建包名報(bào)錯:package?XXX?is?not?in?std的解決辦法,這是在寫測試引入包名的時候遇到的錯誤提示,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • golang實(shí)現(xiàn)簡單的tcp數(shù)據(jù)傳輸

    golang實(shí)現(xiàn)簡單的tcp數(shù)據(jù)傳輸

    這篇文章主要為大家介紹了golang實(shí)現(xiàn)簡單的tcp數(shù)據(jù)傳輸,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 詳解go語言中并發(fā)安全和鎖問題

    詳解go語言中并發(fā)安全和鎖問題

    這篇文章主要介紹了go語言中并發(fā)安全和鎖問題,包含互斥鎖解鎖過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • 深入刨析Golang-map底層原理

    深入刨析Golang-map底層原理

    這篇文章主要介紹了深入刨析Golang-map底層原理,Go 語言的 map 的使用非常簡易, 但其內(nèi)部實(shí)現(xiàn)相對比較復(fù)雜,文中有相關(guān)的代碼示例,,需要的朋友可以參考下
    2023-05-05
  • Go Context庫 使用基本示例

    Go Context庫 使用基本示例

    在Go的http包中,每個請求由獨(dú)立的goroutine處理,這些goroutine可能需要訪問請求特定的數(shù)據(jù)或啟動其他服務(wù),Context在Go語言中提供了一種方式來傳遞請求域的數(shù)據(jù)、取消信號和截止時間,本文介紹Go Context庫 使用基本示例,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Golang的循環(huán)中break和continue語句的用法講解

    Golang的循環(huán)中break和continue語句的用法講解

    這篇文章主要介紹了Golang的循環(huán)中break和continue語句的用法講解,是Go語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10

最新評論