golang สลับ version


gvm
เป็น version manager สำหรับ golang ช่วยให้เราสลับไปมาระหว่าง golang หลายเวอร์ชันได้ง่าย ๆ
เมื่อเราเริ่มพัฒนาด้วย go หลาย ๆ งานแล้วสลับไปมาแต่ version ต่างกันทำให้ package ที่เราจะติดตั้งใช้ go version ไม่เหมือนกัน ยิ่งเราไม่ได้ทำงานคนเดียวเช่นเราอยู่ในทีมที่มีนักพัฒคนอื่นด้วยแต่ใช้ version ต่างกันจะทำให้เกิดข้อผิดพลาดได้ในบางกรณี
ติดตั้ง
จากตัวอย่างจะใช้ macos สำหรับ window อ่านเพิ่มใน office document
ต้องมี golang ติดตั้งไว้ในเครื่องก่อน
brew install gogo version
หลังจากมี go ในเครื่องแล้วต่อมาติดตั้ง gvm เมื่อติดตั้งเสร็จก่อนใช้งานต้อง Restart shell โดยปิดแล้วเปิดใหม่
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
เริ่มใช้งาน gvm
ลองจรวจสอบว่าเราติดตั้งสำเร็จแล้วหรือยังสามารถเรียกใช้คำสั่ง gvm ตรวจสอบ version
gvm version
ตรวจสอบ shell path
echo $GOPATH
เรามี go version อะไรติดตั้งไว้แล้วบ้าง
gvm list
มี go version อะไรสามารถติดตั้งเพิ่มได้บ้าง
gvm listallgvm listall | grep 1.2
ติดตั้ง go version แต่ถ้าในเครื่องยังไม่ติดตั้ง go เมื่อใช้คำสั่ง gvm install แล้วจะติด error
gvm install go1.23.8
สลับหรือเรียกใช้ go version ที่ต้องการได้โดย go use
gvm use go1.23.8
ตั้งค่า default ให้เป็น version ที่ต้องการ
gvm use go1.23.8 --default
gvm ไม่มีไฟล์ที่ใช้บอก version แต่เราใช้ script ไว้ใช้เองได้โดยสร้างไฟล์อาจจะชื่อ VERSION ไว้แล้วเรียกใช้ด้วย command เช่น
echo go1.23.8 > ./VERSIONgvm use $(cat ./VERSION)