ติดตั้ง go with brew และรัน gotour


101

ฉันติดตามhttp://tour.golang.org/จนถึงขั้นตอนที่สามซึ่งบอกคุณว่าคุณสามารถติดตั้ง gotour ในระบบของคุณได้ หลังจากนั้นฉันได้ติดตั้ง go language ด้วยการชงโดย:

brew install hg
brew install go

จากนั้นฉันดาวน์โหลด gotour โดย:

go get code.google.com/p/go-tour/gotour

เมื่อฉันพยายามเปิด gotour มันไม่รู้จักคำสั่ง:

$ gotour
-bash: gotour: command not found

และ

$ go gotour

และ

$ ./gotour

ฉันจึงพยายามดูเส้นทางไปและมันว่างเปล่า

echo $GOPATH

ดังนั้นฉันจึงกำหนด GOPATH:

GOPATH=/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/
export GOPATH

ตอนนี้ฉันสามารถเรียกใช้ gotour ได้โดยการวิ่ง

./gotour

แต่ฉันไม่มั่นใจเกี่ยวกับสภาพแวดล้อมการเดินทางของฉัน .. ฉันไม่ได้ถูกเสนอให้สามารถวิ่งหนีไปได้

go run gotour

หรือเพียงแค่พิมพ์ (เช่นเดียวกับที่อธิบายไว้ในเว็บไซต์นี้http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

ฉันอยากทราบว่าฉันกำลังทำสิ่งที่ถูกต้องหรือไม่เนื่องจากฉันเพิ่งเริ่มใช้ภาษาโปรแกรม go


2
GOPATH ของคุณไม่ควรเหมือนกับ GOROOT ของคุณ ตั้งค่าเป็นบางอย่าง$HOME/goและเพิ่ม$GOPATH/binในเส้นทางของคุณ
elithrar

BTW go tour รับคำสั่งและ url เปลี่ยนเป็น go get golang.org/x/tour/gotour
German

คำตอบ:


185

การติดตั้ง go 1.4 ด้วย homebrew บน OSX:

1) สร้างไดเรกทอรี

mkdir $HOME/Go
mkdir -p $HOME/Go/src/github.com/user

2) ตั้งค่าเส้นทางของคุณ

export GOPATH=$HOME/Go
export GOROOT=/usr/local/opt/go/libexec
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin

3) ติดตั้ง Go

brew install go

4) "ไปรับ" พื้นฐาน

go get golang.org/x/tools/cmd/godoc

5) เริ่มที่นี่: https://golang.org/doc/code.htmlที่ "โปรแกรมแรกของคุณ"


2
IntelliJ Idea ไม่พบ GOPATH ที่กำหนดไว้ใน. bashrc ของคุณ? ในขั้นตอนที่ 2 วางบรรทัดการส่งออกใน. bash_profile ไม่ใช่ใน. bashrc ให้รีสตาร์ทเครื่อง Mac และ IntelliJ จะพบ GOPATH (เพิ่งทดสอบจำเป็นต้องรีบูตเครื่อง)
firepol

1
ฉันตั้งค่า $ GOPATH โดยอัตโนมัติที่คุณอธิบายgithub.com/camilin87/setup_go
Camilo Sanchez

ทำไมคุณถึงใช้$Home/Goกับตัวพิมพ์ใหญ่ G? โปรแกรมติดตั้ง homebrew ใช้ GEg ตัวพิมพ์เล็ก ==> Caveats A valid GOPATH is required to use the `go get` command. If $GOPATH is not specified, $HOME/go will be used by default: https://golang.org/doc/code.html#GOPATH
Snowcrash

4
คำตอบนี้ล้าสมัยมากและทำให้เกิดปัญหามากมายจากการเปลี่ยนแปลง Go และจะปรากฏเป็นครั้งแรกในการค้นหา Google ด้วยคำว่า "How to install Go using Brew" นั่นหมายความว่าผู้คนจำนวนมากถูกนำไปสู่คำตอบที่ล้าสมัยและไม่ถูกต้องนี้ คุณไม่จำเป็นต้องกำหนดเส้นทางใด ๆ สำหรับ Go stackoverflow.com/a/21012349/3299397อีกต่อไปและคุณจะตั้งค่า GOROOT ก็ต่อเมื่อคุณกำลังพัฒนาภาษา Go จริง (เช่นเดียวกับที่คุณทำการเปลี่ยนแปลงรหัสอ้างอิงของ Go reddit.com/r/golang / comments / alrnuk / … )
Kyle Bridenstine

55

จากคำตอบด้านบนนี่คือสิ่งที่ใช้ได้ผลสำหรับฉันOSX 10.12 (Sierra)และการGo v1.7.1ใช้ Homebrew:

ฉันเพิ่มสิ่งนี้จากคำตอบของ Kosh สำหรับ.zshrcหรือ.bashrc:

# Go development
export GOPATH="${HOME}/.go"
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"

test -d "${GOPATH}" || mkdir "${GOPATH}"
test -d "${GOPATH}/src/github.com" || mkdir -p "${GOPATH}/src/github.com"

จากนั้นในหน้าต่าง / แท็บเทอร์มินัลใหม่:

$ brew install go
==> Downloading https://homebrew.bintray.com/bottles/go-1.7.1.sierra.bottle.tar.gz
Already downloaded: /Users/nigel/Library/Caches/Homebrew/go-1.7.1.sierra.bottle.tar.gz
==> Pouring go-1.7.1.sierra.bottle.tar.gz
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
  https://golang.org/doc/code.html#GOPATH

You may wish to add the GOROOT-based install location to your PATH:
  export PATH=$PATH:/usr/local/opt/go/libexec/bin
==> Summary
🍺  /usr/local/Cellar/go/1.7.1: 6,436 files, 250.6M

$ go get golang.org/x/tools/cmd/godoc

$ go get github.com/golang/lint/golint

$ go get golang.org/x/tour/gotour

$ gotour
2016/10/19 12:06:54 Serving content from /Users/nigel/.go/src/golang.org/x/tour
2016/10/19 12:06:54 A browser window should open. If not, please visit http://127.0.0.1:3999
2016/10/19 12:06:55 accepting connection from: 127.0.0.1:52958

สิ่งนี้ใช้งานได้ดีสำหรับฉันใน Sierra 10.12.5 ด้วย go 1.8.3 ขอบคุณ!
thewoolleyman

ทำงานให้ฉันกับ Catalina 10.15.2 ด้วย go 1.13.5 ด้วย ขอบคุณ!
Ross Zurowski

เทรนด์อย่างต่อเนื่องใช้ได้ผลกับฉันใน Mojave 10.14.6 ด้วย go 1.13.8 ฉันไม่ได้ปรับเปลี่ยนนี้เล็กน้อย แต่เมื่อเราส่งออกเส้นทางที่ผมใส่เส้นทางการเดินทางที่ด้านหน้าของ$PATHมากกว่าในตอนท้าย บรรทัดที่สามของไฟล์ rc ของฉันมีลักษณะดังนี้:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
romellem

1
นี่ควรเป็นคำตอบที่ได้รับการยอมรับเนื่องจากอธิบายวิธีใช้กับ homebrew ได้อย่างสมบูรณ์!
muuvmuuv

ตามความคิดเห็นนี้ GitHub , go get github.com/golang/lint/golintมีเส้นทางใหม่:go get -u golang.org/x/lint/golint
schottsfired

23

ฉันคิดว่าฉันพบวิธีแก้ปัญหาแล้วฉันควรส่งออก:

export PATH=$PATH:/usr/local/Cellar/go/1.0.2/bin/

แทน

GOPATH=/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/
export GOPATH

เนื่องจากว่า 'go get' จึงทำให้ไบนารี (ฉันเดา) gotour กำลังทำงาน:

$ gotour
2012/10/11 18:35:50 Serving content from /usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/go-tour
2012/10/11 18:35:50 Open your web browser and visit http://127.0.0.1:3999/ 

Btw ฉันตามคำตอบของฉันในโพสต์นี้

http://code.google.com/p/go-tour/issues/detail?id=39 ที่พวกเขาพูดถึงการส่งออก:

/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/

และหน้าเริ่มต้นจาก go: http://golang.org/doc/install ที่พวกเขาบอกว่าคุณต้องส่งออก:

export PATH=$PATH:/usr/local/go/bin

ฉันต้องใส่ bin พิเศษ / ในตอนท้ายเนื่องจากดูเหมือนว่าตอนนี้พวกเขาวางไฟล์ปฏิบัติการ go เหล่านี้ลงในไดเร็กทอรีย่อยแล้ว เช่นคำสั่งสำหรับเส้นทางของฉันคือ:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
เนท

หากคุณยังไม่ได้ติดตั้งbrewแต่จบลงที่นี่เพราะคุณไม่สามารถ run go เมื่อใช้ zsh ได้คุณต้องทำสิ่งเดียวกันมาก (ส่งออกเส้นทางไปยังการติดตั้ง go ของคุณ) ในกรณีของฉันมันคือ: export PATH=$PATH:/usr/local/go/binถ้ามันไม่ได้ผลสำหรับคุณแสดงว่าคุณอาจติดตั้งที่อื่น
andilabs

9

ฉันใส่ไว้ใน $ {HOME} /. bash_profile

export GOPATH="${HOME}/.go"
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"

test -d "${GOPATH}" || mkdir "${GOPATH}"
test -d "${GOPATH}/src/github.com" || mkdir -p "${GOPATH}/src/github.com"

ตามคำตอบของ golfadas แต่ได้รับการอัปเดตให้ใช้งานได้กับเบียร์รุ่นเก่าและรุ่นใหม่


7

ฉันสิ่งที่คุณควรจะได้ตั้ง GOPATH go getก่อนที่คุณจะ อย่างน้อยที่นี่ในเครื่องของฉันมันก็ทำงานได้อย่างราบรื่น

ฉันตั้งค่า GOPATH เป็นโฟลเดอร์ในโฟลเดอร์บ้านของฉัน

หวังว่านี่จะช่วยได้!


7
นี่คือคำแนะนำที่ถูกต้อง export GOPATH=$HOME/goและexport PATH=$PATH:$GOPATH/binครอบคลุมทุกสิ่งที่คุณต้องการ ทดแทน$HOME/goเส้นทางที่คุณเลือก
elithrar

5

มีเพียงการอัปเดตที่นี่ - ฉันพบปัญหาเดียวกันนี้และคำตอบก่อนหน้านี้ไม่ได้ช่วยอะไร ในเวอร์ชันปัจจุบัน (~ 1.2.2) ของ Go ที่ติดตั้งโดย Homebrew คุณต้องตั้งค่า GOROOT เป็นดังต่อไปนี้:

export GOROOT=/usr/local/Cellar/go/1.2.2/libexec

ฉันไม่ค่อยคุ้นเคยกับโครงสร้างโฟลเดอร์ go หรือเปลี่ยนแปลงการติดตั้ง go ผ่าน homebrew ดังนั้นฉันจึงไม่รู้ว่าทำไม แต่ - หากคุณพลาดสิ่งที่ดูเหมือนว่าแพ็คเกจหลักทั้งหมดข้างต้นควรแก้ไข


คุณสามารถถอนการติดตั้ง go เวอร์ชันปัจจุบันของคุณและติดตั้งเวอร์ชันใหม่ได้ นั่นคือสิ่งที่ฉันทำและทุกอย่างได้ผลดีสำหรับฉัน
Kent Bull

ด้วย homebrew คุณควรใช้/usr/local/opt/เป็นฐานเสมอ วิธีนี้ทำให้คุณไม่ต้องอัปเดตตัวแปรเมื่อมีเวอร์ชันใหม่ออกมา
คลาส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.