ต้องใช้ go หลาย version ทำไงดี

golang 21 ก.ค. 2021

ลองหาพวก version manager แล้วไปเจอ gvm เค้าบอกว่า GVM provides an interface to manage Go versions.

รายละเอียดเข้าไปดูต่อได้ที่ https://github.com/moovweb/gvm

การ install GVM

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

แต่ถ้าใช้พวก zsh ก็เปลี่ยน bash เป็น zsh

การ install go version อื่นๆ

gvm install go1.4 # เป็นการติดตั้ง go version 1.4
gvm use go1.4 [--default] # บอก gvm ว่าเริ่มใช้งาน go version 1.4

หลังจาก install เสร็จแล้วก็จะพร้อมใช้งาน ตัว gvm จะเข้าไป set ค่าใน $GOROOT และ $GOPATH ให้เอง

การ install สามารถระบุตัวเลือกเพิ่มเติมได้อีกตามนี้:

Usage: gvm install [version] [options]
    -s,  --source=SOURCE      Install Go from specified source.
    -n,  --name=NAME          Override the default name for this version.
    -pb, --with-protobuf      Install Go protocol buffers.
    -b,  --with-build-tools   Install package build tools.
    -B,  --binary             Only install from binary.
         --prefer-binary      Attempt a binary install, falling back to source.
    -h,  --help               Display this message.

หมายเหตุเกี่ยวกับการคอมไพล์ Go 1.5+

Go 1.5+ ลบคอมไพเลอร์ C ออกจาก toolchain และแทนที่ด้วยคอมไพเลอร์ที่เขียนด้วย Go เรื่องนี้จะเป็นปัญหาในการสร้าง bootstrapping หากคุณยังไมเคย่มีการติดตั้ง Go ที่ใช้งานได้ เพื่อที่จะสามารถ compile Go 1.5+ ได้ ให้ install Go 1.4 ก่อน

gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.5

List Go Versions

รายการเวอร์ชันทั้งหมดที่ install ไว้ในเครื่องแล้ว

gvm list

หากต้องการแสดงรายการ Go เวอร์ชันทั้งหมดที่มีให้ดาวน์โหลด:

gvm listall

การ Uninstalling

ในการลบ gvm, เวอร์ชัน, และแพ็คเกจ Go ที่ติดตั้งทั้งหมด:

gvm implode

ถ้ามีปัญหาในขั้นตอนนี้ให้ให้ดูขั้นตอนการแก้ปัญหาที่ https://github.com/moovweb/gvm#troubleshooting

แท็ก

Onyx

Just a middle-aged programmer, Can do many things but not the most.