<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          掌握了這一招,Go版本的管理不用愁

          共 6094字,需瀏覽 13分鐘

           ·

          2022-08-03 02:22

          今天帶來一篇關(guān)于Go版本管理器gvm的小短文。廢話不多說,開始安裝。

          安裝

          如果你使用的mac,mac 需要先安裝xcode-select,沒安裝過的同學(xué)可以按照如下命令進行執(zhí)行安裝,這里不做太多說明了。

          xcode-select --install
          brew update
          brew install mercurial

          按照github上面指示,我們這里按照命令行進行下載gvm-installer進行安裝,終端執(zhí)行有問題的同學(xué)也可以到gvm-installer[1]頁面進行clone安裝。

          $bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
          Cloning from https://github.com/moovweb/gvm.git to /Users/admin/.gvm
          Created profile for existing install of Go at "/opt/homebrew/Cellar/go/1.18.1/libexec"
          Installed GVM v1.0.22

          Please restart your terminal session or to get started right away run
           `source /Users/admin/.gvm/scripts/gvm`

          接下來為了使gvm生效,需要執(zhí)行一下上面提示的source /Users/admin/.gvm/scripts/gvm命令即可,執(zhí)行結(jié)束就可以在新終端使用gvm來切換控制go的版本了。

          使用

          安裝好了,咱們就可以來簡單了解一下gvm的支持的一些功能。這下可以呼喚gvm的help選項了。

          $gvm help
          Usage: gvm [command]

          Description:
            GVM is the Go Version Manager

          Commands:
            version    - print the gvm version number # 查看gvm的版本
            get        - gets the latest code (for debugging) # 獲取最新的代碼(一般為了調(diào)試)
            use        - select a go version to use (--default to set permanently) # 選擇使用的Go版本 (--default 可以永久設(shè)置)
            diff       - view changes to Go root # 查看Go root中的變更
            help       - display this usage text 
            implode    - completely remove gvm # 完全刪除 gvm 和所有已安裝的 Go 版本和包
            install    - install go versions # 安裝某個版本的Go
            uninstall  - uninstall go versions # 卸載某個版本的Go
            cross      - install go cross compilers # 安裝跨平臺Go編譯器
            linkthis   - link this directory into GOPATH # 將項目路徑鏈接到GOPATH中
            list       - list installed go versions # 羅列已經(jīng)安裝的Go版本列表
            listall    - list available versions # 羅列可用的Go版本
            alias      - manage go version aliases # 管理Go版本別名
            pkgset     - manage go packages sets # 管理Go包的設(shè)置
            pkgenv     - edit the environment for a package set # 編輯Go包集合的環(huán)境

          gvm的簡單使用

          先通過gvm listall命令來看下目前的Go版本列表,如下,列表太長了,這里Go1-15的版本列表省略了,可以看出最新的是Go1.19的beta和幾個rc版本了。那么咱們接下來通過下載Go1.19的rc版本來做示例。

          $gvm listall

          gvm gos (available)

             go1
             ...
             go1.16
             go1.16beta1
             go1.16rc1
             go1.16.1
             go1.16.2
             go1.16.3
             go1.16.4
             go1.16.5
             go1.16.6
             go1.16.7
             go1.16.8
             go1.16.9
             go1.16.10
             go1.16.11
             go1.16.12
             go1.16.13
             go1.16.14
             go1.16.15
             go1.17
             go1.17beta1
             go1.17rc1
             go1.17rc2
             go1.17.1
             go1.17.2
             go1.17.3
             go1.17.4
             go1.17.5
             go1.17.6
             go1.17.7
             go1.17.8
             go1.17.9
             go1.17.10
             go1.17.11
             go1.17.12
             go1.18
             go1.18beta1
             go1.18beta2
             go1.18rc1
             go1.18.1
             go1.18.2
             go1.18.3
             go1.18.4
             go1.19beta1
             go1.19rc1
             go1.19rc2
             release.r56
             release.r57
             release.r58
             release.r59
             release.r60
             release.r57.1
             release.r57.2
             release.r58.1
             release.r58.2
             release.r60.1
             release.r60.2
             release.r60.3

          安裝一個Go版本

          先看下目前使用的Go版本,小土這里使用的是go1.18.1的版本。

          $go version
          go version go1.18.1 darwin/arm64

          安裝一個最新Go1.19的rc1版本。

          $gvm install go1.19rc1
          Installing go1.19rc1...
           * Compiling...
          go1.19rc1 successfully installed!

          版本切換

          接下來,咱們切換一下下載好的go版本,這里使用gvm use version即可切換。

          $gvm use go1.19rc1
          Now using version go1.19rc1

          如何永久切換呢?加上--default即可永久設(shè)置,可以通過新建終端執(zhí)行go version,驗證查看Go版本是否完全切換。

          $gvm use go1.19rc1 --default
          Now using version go1.19rc1

          然后我們使用go version查看當(dāng)前使用的Go版本,看來是切換成功了。那么你就可以來去自如地切換Go版本了。尤其是在調(diào)試不同Go版本帶來的問題代碼時候特別有用。

          $go version
          go version go1.19rc1 darwin/arm64

          升級問題排查

          若在升級Go過程中,gvm文件的狀態(tài)發(fā)生錯亂或者其他問題,可以通過執(zhí)行rm -rf ~/.gvm來刪除gvm進行問題的fix。

          小結(jié)

          今天的短文主要介紹了一個gvm的使用,希望對大家有所幫助,更多詳情可以查看gvm[2],另外站長之前寫了一篇關(guān)于升級Go版本的文章,主要講的是使用goup[3]來進行Go版本的管理。小土這里就不介紹了,??,感興趣的同學(xué)可以查看終于找到了一款我喜歡的安裝和管理 Go 版本的工具。

          參考資料

          [1]

          gvm-installer: https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer

          [2]

          gvm: https://github.com/moovweb/gvm

          [3]

          goup: https://github.com/owenthereal/goup




          往期推薦


          我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯(lián)網(wǎng)公司工作,10多年技術(shù)研發(fā)與架構(gòu)經(jīng)驗!2012 年接觸 Go 語言并創(chuàng)建了 Go 語言中文網(wǎng)!著有《Go語言編程之旅》、開源圖書《Go語言標(biāo)準(zhǔn)庫》等。


          堅持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長!也歡迎加我微信好友交流:gopherstudio


          瀏覽 38
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉太香蕉成人现现 | 国产日韩一区二区三免费高清 | 黄色a免费 | 天天操B 色色大香蕉 | 草草视频网站 |