# 1.1 การติดตั้ง ## 3 วิธีในการติดตั้ง Go การตั้งค่าคอมพิวเตอร์เพื่อใช้ในการพัฒนาด้วย Go นั้น มีอยู่ด้วยกันหลายวิธี และเราสามารถเลือกใช้วิธีใดก็ได้ที่ถนัด โดยทั่วไปจะมีอยู่ด้วยกัน 3 วิธี ดังนี้ - ติดตั้งจาก packages มาตรฐาน ที่ถูกปล่อยโดยตรง - ทีมงานของ Go ได้เตรียมการติดตั้งที่สะดวกสบายบน Windows, Linux, Mac และระบบปฎิบัติการอื่นๆ ซึ่งนับเป็นวิธีเริ่มใช้งาน Go ที่สะดวกที่สุด โดยสามารถดาวน์โหลดตัวติดตั้งจาก [หน้าดาวน์โหลดของ Golang](https://golang.org/dl/) - ติดตั้งจาก source code ด้วยตัวเอง - นับเป็นวิธีการติดตั้งที่ได้รับความนิยมในหมู่ของนักพัฒนาที่คุ้นเคยกับการทำงานบนระบบที่คล้ายกับ Unix - ติดตั้งจากเครื่องมือประเภท third party ต่างๆ - มีเครื่องมือประเภท third party และตัวจัดการ package อยู่มากมายที่สามารถใช้ในการติดตั้ง Go ยกตัวอย่างเช่น apt-get ใน Ubuntu และ homebrew ใน Mac ในกรณีที่ต้องการติดตั้ง Go มากกว่าหนึ่งเวอร์ชั่นในคอมพิวเตอร์เครื่องเดียว สามารถใช้เครื่องมือที่เรียกว่า [GVM](https://github.com/moovweb/gvm) นับเป็นเครื่องมือที่ดีที่สุดในการใช้งานแบบนี้เท่าที่เห็นมา ไม่อย่างนั้นแล้วเราก็ต้องลงมือทำทั้งหมดด้วยตัวเอง ## ติดตั้งจาก source code ในการคอมไพล์ Go ตั้งแต่เวอร์ชั่น 1.5 เป็นต้นมา เราเพียงแค่ต้องใช้ Go เวอร์ชั่นก่อนหน้าเท่านั้นในการคอมไพล์ Go หากต้องการคอมไพล์ Go เวอร์ชั่นตั้งแต่ 1.4 ลงไป เราต้องใช้คอมไพล์เลอร์ภาษาซี เนื่องจากว่าบางส่วนของ Go ยังถูกเขียนด้วย Plan 9 C และ AT&T assembler อยู่ บนระบบ Mac นั้น หากเราติดตั้ง Xcode อยู่แล้ว ก็สามารถใช้คอมไพล์ได้เลย ส่วนระบบที่ทำงานคล้าย Unix อื่นๆ ทั้งหลาย ต้องติดตั้ง gcc หรือคอมไพล์เลอร์ที่คล้ายกัน ยกตัวอย่างเช่น หากใช้ Ubuntu ก็สามารถใช้ตัวจัดการ package apt-get ซึ่งติดตั้งมากับ Ubuntu ด้วย เพื่อติดตั้งคอมไพล์เลอร์ที่เราต้องการ ดังนี้: ```sh sudo apt-get install gcc libc6-dev ``` โดยบน Windows นั้นจำเป็นต้องติดตั้ง MinGW ก่อนเพื่อที่จะติดตั้ง gcc และอย่าลืมตั้งค่า environment ของ Windows หลังจากที่ติดตั้งเสร็จเรียบร้อยแล้ว ( ***คอมเมนท์จากผู้แปล: หากใช้ Windows 64 bit ก็ควรเลือกติดตั้ง MinGW เวอร์ชั่น 64 bit ด้วยเหมือนกัน*** ) เมื่อถึงจุดนี้เราก็สามารถ clone source code ของ Go แล้วก็ทำการคอมไพล์ได้เลย ( ***ซอร์สโคดจะถูก clone ลงไปอยู่ในไดเร็คทอรีปัจจุบัน โดยการย้าย และการเปลี่ยนไดเร็คทอรีก่อนที่จะทำงานต่อ อาจจะใช้เวลาเล็กน้อย*** ) git clone https://go.googlesource.com/go cd go/src ./all.bash หากติดตั้งสำเร็จจะแสดงข้อความว่า "ALL TESTS PASSED." บน Windows สามารถทำสิ่งเดียวกันนี้โดยใช้คำสั่ง `all.bat` แทน หากใช้ระบบปฎิบัติการ Windows ตัวติดตั้งจะทำการตั้งค่าตัวแปร environment ให้โดยอัตโนมัติ แต่หากเป็นระบบที่คล้าย Unix นั้น เราต้องตั้งค่าเหล่านั้นด้วยตัวเอง ดังนี้ ( ***หากเป็น Go เวอร์ชั่นที่มากกว่า 1.0 เราไม่จำเป็นต้องตั้งค่า $GOBIN โดยจะถูกตั้งค่าให้อย่างอัตโนมัติโดยอ้างอิงจาก $GOROOT/bin ซึ่งจะได้พูดถึงในบทถัดไป*** ) export GOROOT=$HOME/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOROOT/bin หากเราเห็นข้อความด้านล่างนี้ปรากฎบนหน้าจอ แสดงว่าทุกอย่างพร้อมใช้งานแล้ว ![](images/1.1.mac.png?raw=true) รูป 1.1 ข้อมูลที่แสดงภายหลังการติดตั้งด้วย source code เมื่อหน้าจอแสดงคำแนะนำในการใช้งานของ Go นั่นแสดงว่าการติดตั้งสำเร็จแล้ว แต่หากมีข้อความว่า "no such command" ให้ทำการตรวจดูค่า $PATH ในตัวแปร environment ของระบบ มี path ที่ติดตั้ง Go อยู่หรือไม่ ## ติดตั้งจาก packages มาตรฐาน Go นั้นมีตัวติดตั้ง package มาตรฐานในแทบจะทุกระบบปฎิบัติการ โดย package จะติดตั้ง Go ลงไปที่ `/usr/local/go` (`c:\Go` สำหรับ Windows) หากไม่ได้เลือกเป็นอย่างอื่น ซึ่งแน่นอนว่าเราสามารถเลือกได้เองว่าจะติดตั้งไว้ที่ใด แต่เราก็ต้องแก้ไขตัวแปร environment ทั้งหมดด้วยตัวเองดังที่ได้แสดงไว้ด้านบน ### จะรู้ได้อย่างไรว่าระบบปฎิบัติการเป็นแบบ 32 bit หรือ 64 bit? ขั้นต่อไปนั้นขึ้นอยู่กับว่าเราใช้ระบบปฎิบัติการชนิดใด ดังนั้นเราจึงจำเป็นต้องตาวจสอบให้มั่นใจก่อนที่จะดาวน์โหลดตัวติดตั้ง package ลงมา หากใช้ Windows ให้กด `Win+R` แล้วสั่งรัน command tool แล้วพิมพ์คำสั่ง `systeminfo` จะเป็นการแสดงข้อมูลเกี่ยวกับระบบออกมา มองหาบรรทัดที่มีข้อความว่า "system type" หากเห็นว่าเป็น "x64-based PC" แสดงว่าระบบปฎิบัติการเป็นแบบ 64 bit นอกเหนือจากนี้แสดงว่าเป็น 32 bit ขอแนะนำให้ดาวน์โหลด package เวอร์ชั่น 64 bit สำหรับคนที่ใช้ Mac เนื่องจากว่า Go ไม่ได้ซัพพอร์ทหน่วยประมวลผลแบบ 32 bit บน Mac OSX แล้ว สำหรับผู้ใช้งาน Linux สามารถใช้คำสั่ง `uname -a` ใน terminal เพื่อดูข้อมูลของระบบ หากเป็นระบบปฎิัติการแบบ 64 bit จะแสดงข้อความดังนี้: x86_64 x86_64 x86_64 GNU/Linux // some machines such as Ubuntu 10.04 will show as following x86_64 GNU/Linux หากเป็นระบบปฎิบัติการแบบ 32 bit จะแสดงข้อความนี้แทน: i686 i686 i386 GNU/Linux ### Mac ไปที่ [หน้าดาวน์โหลด](https://golang.org/dl/) แล้วเลือก `go1.4.2.darwin-386.pkg` (เวอร์ชั่นหลังนี้จะไม่มีแบบ 32 bit ให้ดาวน์โหลดแล้ว) หากใช้ระบบ 32 bit หรือเลือก `go1.8.3.darwin-amd64.pkg` หากใช้ระบบ 64 bit ติดตั้งตามขั้นตอนโดยการกดปุ่ม "next" ซึ่ง `~/go/bin` จะถูกเพิ่มเข้าไปในตัวแปร $PATH ของระบบหลังจากการติดตั้งสำเร็จ หลังจากนั้นให้เปิด terminal แล้วพิมพ์คำสั่ง `go` ควรมีข้อความแสดงขึ้นมาเหมือนในภาพ 1.1 ### Linux ไปที่ [หน้าดาวน์โหลด](https://golang.org/dl/) แล้วเลือก `go1.8.3.linux-386.tar.gz` สำหรับระบบแบบ 32 bit หรือเลือก `go1.8.3.linux-amd64.tar.gz` สำหรับระบบแบบ 64 bit แล้วทำการแตก `tar.gz` ลงไปที่ path ที่เราต้องการติดตั้งโดยใช้คำสั่ง `tar zxvf go1.8.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR` โดยแทนค่า `GO_INSTALL_DIR` ด้วย path ที่เราต้องการ เมื่อเสร็จแล้วจึงทำการตั้งค่า $PATH ด้วยคำสั่ง `export PATH=$PATH:$GO_INSTALL_DIR/go/bin` เสร็จแล้วสามารถเปิด terminal และพิมพ์คำสั่ง `go` ควรมีข้อความแสดงขึ้นมาเหมือนในภาพ 1.1 ### Windows ไปที่ [หน้าดาวน์โหลด](https://golang.org/dl/) แล้วเลือก `go1.4.2.windows-386.msi` หากใช้ระบบ 32 bit หรือเลือก `go1.8.3.windows-amd64.msi` หากใช้ระบบ 64 bit ติดตั้งตามขั้นตอนโดยการกดปุ่ม "next" ซึ่ง `c:/go/bin` จะถูกเพิ่มเข้าไปในตัวแปร `path` ของระบบหลังจากการติดตั้งสำเร็จ หลังจากนั้นให้เปิดหน้าต่าง command line แล้วพิมพ์คำสั่ง `go` ควรมีข้อความแสดงขึ้นมาเหมือนในภาพ 1.1 ## ติดตั้งจากเครื่องมือประเภท third-party ### GVM GVM เป็นเครื่องมือที่ใช้ควบคุมเวอร์ชั่นของ Go หากติดตั้งมากกว่าหนึ่งเวอร์ชั่น ที่พัฒนาโดย third party ซึ่งคล้ายกับ rvm ของภาษา ruby นั่นเอง โดยใช้งานได้ค่อนข้างง่าย และสามารถทำการติดตั้ง gvm โดยพิมพ์คำสั่งใน terminal ดังนี้: bash < <(curl -s -S -L https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer) เมื่อเสร็จแล้วจะสามารถติดตั้ง Go โดยใช้คำสั่งดังนี้: gvm install go1.8.3 gvm use go1.8.3 หลังจากเสร็จแล้ว ก็พร้อมสำหรับการใช้งานได้ทันที ### apt-get Ubuntu เป็นระบบปฎิบัติการ Linux ที่ได้รับความนิยมอย่างแพร่หลาย โดยจะมาพร้อมกับเครื่องมือในการจัดการ package ที่ชื่อว่า `apt-get` และเราสามารถที่จะติดตั้ง Go โดยใช้คำสั่งดังนี้: sudo add-apt-repository ppa:gophers/go sudo apt-get update sudo apt-get install golang-go ### wget ```sh wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz sudo tar -xzf go1.8.3.linux-amd64.tar.gz -C /usr/local # Go environment export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/gopath ``` เริ่มตั้งแต่ Go 1.8 เป็นต้นมา ค่าตัวแปร environment จะมีค่าเป็นค่า default ถ้าไม่ได้กำหนดเป็นอย่างอื่น โดยค่าจะเป็น `$HOME/go` บนระบบ Unix และเป็นค่า `%USERPROFILE%/go` เมื่อเป็น Windows ### Homebrew Homebrew เป็นเครื่องมือจัดการซอฟท์แวร์ที่ได้รับความนิยมในการใช้จัดการ package บน Mac โดยการติดตั้ง Go จะใช้คำสั่งดังนี้ 1. วิธีติดตั้ง Homebrew ```sh /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ``` 2. วิธีติดตั้ง Go ```sh brew update && brew upgrade brew install go ``` ## Links - [Directory](preface.md) - บทก่อนหน้า: [การตั้งค่าสภาพแวดล้อมของ Go](01.0.md) - บทถัดไป: [$GOPATH และ workspace](01.2.md)