日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
看看老碼農(nóng)是如何使用GO語言的

什么是 GVM

Go 語言版本管理器(GVM)是管理 Go 語言環(huán)境的開源工具。GVM 「pkgsets」 支持安裝多個版本的 Go 并管理每個項目的模塊。它最初由 Josh Bussdieker 開發(fā),GVM 與 Ruby RVM 類似,允許你為每個項目或一組項目創(chuàng)建一個開發(fā)環(huán)境,分離不同的 Go 版本和包依賴關(guān)系,來提供更大的靈活性,以防不同版本造成的問題。GVM 主要有以下幾個特性:

成都創(chuàng)新互聯(lián)是一家專業(yè)提供固原企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為固原眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

  • 管理 Go 的多個版本,包括安裝、卸載和指定使用 Go 的某個版本
  • 查看官方所有可用的 Go 版本,同時可以查看本地已安裝和默認使用的 Go 版本
  • 管理多個 GOPATH,并可編輯 Go 的環(huán)境變量
  • 可將當前目錄關(guān)聯(lián)到 GOPATH
  • 可以查看 GOROOT 下的文件差異
  • 支持 Go 版本切換

安裝 GVM

GVM 本質(zhì)上就是一個 SHELL 腳本,它背后做的事情是先把源碼下載下來,再用 C 做編譯。所以,安裝 GVM 前你需要先安裝一些依賴包。

 
 
 
  1. # Debian/Ubuntu
  2. $ sudo apt-get install curl git mercurial make binutils bison gcc build-essential
  3. # Redhat/Centos
  4. $ sudo yum install curl
  5. $ sudo yum install git
  6. $ sudo yum install make
  7. $ sudo yum install bison
  8. $ sudo yum install gcc
  9. $ sudo yum install glibc-devel
  10. # macOS
  11. $ xcode-select --install
  12. $ brew update
  13. $ brew install mercurial

安裝好依賴環(huán)境后, GVM 的安裝也很簡單。官方提供了一鍵安裝腳本,你只需直接運行就行了。

如果你使用的是 zsh 的話將前面的 bash 改為 zsh 即可,這條命令主要是檢查相關(guān)依賴環(huán)境并下載 GVM 相關(guān)的文件,然后創(chuàng)建所需目錄,并且在 .bashrc 或者 .zshrc 中加入:

 
 
 
  1. [[ -s "/home/wcl/.gvm/scripts/gvm" ]] && source "/home/wcl/.gvm/scripts/gvm"

使每次登錄 Shell 時都可以自動生效。

使用 GVM 安裝和管理 Go 版本

一旦安裝了 GVM,就可以開始使用它來安裝和管理不同版本的 Go。首先,你可以用 gvm listall 命令顯示可以下載和編譯可用的 Go 版本。

 
 
 
  1. $ gvm listall 
  2. gvm gos (available) 
  3. go1 
  4. go1.0.1 
  5. go1.0.2 
  6. go1.0.3 
  7. ...

安裝特定的 Go 版本只需運行 gvm install 命令,其中 是表示要安裝的版本。假設(shè)你正在處理一個使用 Go 1.12.8 版本的項目,你就可以使用 gvm install go1.12.8 命令來安裝這個版本。

 
 
 
  1. $ gvm install go1.12.8 
  2. Installing go1.12.8... 
  3. * Compiling... 
  4. go1.12.8 successfully installed!

安裝完成后,輸入 gvm list 命令后,你會看到 Go 1.12.8 版本與系統(tǒng)自帶的 Go 版本(使用操作系統(tǒng)的軟件包管理器打包的版本)都同時存在。

 
 
 
  1. $ gvm list 
  2. gvm gos (installed) 
  3. go1.12.8 
  4. => system

不過,這時 GVM 仍然默認使用系統(tǒng)的 Go 版本,通過它旁邊的 => 符號來表示。你可以使用 gvm use 命令來切換到新安裝的 go 1.12.8 版本。

 
 
 
  1. $ gvm use go1.12.8 
  2. Now using version go1.12.8 
  3. $ go version 
  4. go version go1.12.8 linux/amd64

如果不想每次敲 gvm use 指令來切換版本,你可以加上 --default 參數(shù)來指定默認使用這個版本。

 
 
 
  1. $ gvm use go1.12.8 --default

是不是,很容易呢!GVM 使管理已安裝的 Go 版本變得極其簡單,但它不止如此!

由于 Go 1.5 使用了自舉(用 Go 編譯 Go),如果在系統(tǒng)環(huán)境完全沒有 Go 命令的情況下,直接使用 gvm install go 會報錯。所以,你必須先安裝 Go 1.4。

 
 
 
  1. # 先安裝 1.4 版本的,-B 表示只安裝二進制包。
  2. $ gvm install go1.4 -B
  3. $ gvm use go1.4
  4. $ export GOROOT_BOOTSTRAP=$GOROOT
  5. # 再安裝 1.5+ 版本的
  6. $ gvm install go1.12.8

使用 GVM pkgset

默認情況下,如果你通過 go get 獲取一個包,它會被下載到 $GOPATH 目錄中的 src 和 pkg 目錄下。然后你可以使用 import 將其引入到你的 Go 程序中。然而,在不同的項目中管理相同包的不同版本就會變得困難。

GVM 通過使用「pkgsets」將項目的新目錄附加到 Go 安裝版本的默認 $GOPATH,類似 Linux 系統(tǒng)上的 $PATH,這樣就可以很好地完成了項目之間包的管理和隔離。我們來看一個實例,安裝一個新版本的 Go 1.12.9。

 
 
 
  1. $ echo $GOPATH
  2. /home/chris/.gvm/pkgsets/go1.12.8/global
  3. $ gvm install go1.12.9
  4. Installing go1.12.9...
  5. * Compiling...
  6. go1.12.9 successfully installed
  7. $ gvm use go1.12.9
  8. Now using version go1.12.9

當 GVM 被告知使用一個新版本時,它將會更換一個新的 $GOPATH,gloabl pkgset 將默認使用該版本。

 
 
 
  1. $ echo $GOPATH 
  2. /home/chris/.gvm/pkgsets/go1.12.9/global 
  3. $ gvm pkgset list 
  4. gvm go package sets (go1.12.9) 
  5. => global

盡管默認情況下沒有安裝額外的包,但是 global pkgset 中的包對于使用這個特定版本 Go 的任何項目都是可用的。

現(xiàn)在,假設(shè)你正在啟動一個新項目,它需要一個特定的包。首先,使用 GVM 創(chuàng)建一個名為 introToGvm 的新的 pkgset。

 
 
 
  1. $ gvm pkgset create introToGvm
  2. $ gvm pkgset use introToGvm
  3. Now using version go1.12.9@introToGvm
  4. $ gvm pkgset list
  5. gvm go package sets (go1.12.9)
  6. global
  7. => introToGvm

如上所述,一個與 pkgset 同名的新目錄 introToGvm 被添加到 $GOPATH。

 
 
 
  1. $ echo $GOPATH
  2. /home/chris/.gvm/pkgsets/go1.12.9/introToGvm:/home/chris/.gvm/pkgsets/go1.12.9/global

接下來,驗證下新目錄 introToGvm 中的目錄結(jié)構(gòu)。

 
 
 
  1. $ cd $( awk -F':' '{print $1}' <<< $GOPATH ) 
  2. $ pwd 
  3. /home/chris/.gvm/pkgsets/go1.12.9/introToGvm 
  4. $ ls 
  5. overlay pkg src

注意:新目錄看起來很像普通的 $GOPATH,新的 Go 包會被 Go get 命令下載并且被添加到 pkgset 中。

gorilla/mux 按照預(yù)期添加到了 pkgset 的 $GOPATH 目錄,現(xiàn)在你就可以與使用該 pkgset 的項目一起使用該模塊了。

卸載 GVM 或指定版本 Go 語言

如果你只是想卸載某個安裝好的 Go 版本,可以使用以下指令。

 
 
 
  1. $ gvm uninstall go1.12.8

如果你想完全卸載掉 GVM 和 所有安裝的 Go 版本,可以使用以下指令。

 
 
 
  1. # 需謹慎操作 
  2. $ gvm implode

總結(jié)

GVM 是以一種直觀的、非侵入性的方式來管理 Go 版本和包的工具。它可以單獨使用,也可以使用 GVM 的 Go 版本管理功能與其他 Go 模塊管理技術(shù)結(jié)合使用。GVM 通過對 Go 版本和包依賴關(guān)系的隔離使項目開發(fā)更加容易,并減少了管理版本沖突的復雜性。


新聞標題:看看老碼農(nóng)是如何使用GO語言的
當前網(wǎng)址:http://m.5511xx.com/article/ccooeod.html