Instal go with brew, dan jalankan gotour

101

Saya mengikuti http://tour.golang.org/ sampai saya sampai pada langkah ketiga tentang yang memberitahu Anda bahwa Anda dapat menginstal gotour di sistem Anda. Setelah itu saya instal bahasa go dengan brew by:

brew install hg
brew install go

Kemudian saya mengunduh gotour dengan cara:

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

Ketika saya mencoba meluncurkan gotour itu tidak mengenali perintah:

$ gotour
-bash: gotour: command not found

dan

$ go gotour

dan

$ ./gotour

Jadi saya mencoba untuk melihat jalan masuk dan itu kosong,

echo $GOPATH

jadi saya mendefinisikan GOPATH:

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

Sekarang saya bisa menjalankan gotour dengan lari

./gotour

Tapi aku tidak yakin dengan lingkungan hidupku .. bukankah aku seharusnya bisa lari lewat

go run gotour

atau hanya dengan mengetik (seperti yang dijelaskan di situs web ini http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

Saya ingin tahu apakah saya melakukan hal-hal dengan cara yang benar karena saya baru mengenal bahasa pemrograman berjalan.

golfadas
sumber
2
GOPATH Anda tidak boleh sama dengan GOROOT Anda. Setel ke sesuatu seperti $HOME/godan tambahkan $GOPATH/binke PATH Anda.
elithrar
BTW tur go mendapatkan perintah dan url sekarang diubah menjadi: go get golang.org/x/tour/gotour
Jerman

Jawaban:

183

Menginstal go 1.4 dengan homebrew di OSX:

1) Buat Direktori

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

2) Atur jalur Anda

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

3) Instal Go

brew install go

4) "dapatkan" dasar-dasarnya

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

5) Mulai di sini: https://golang.org/doc/code.html di "program pertama Anda"

pengguna2562923
sumber
2
Ide IntelliJ tidak menemukan GOPATH yang ditentukan dalam .bashrc Anda? Pada langkah 2 tempel baris ekspor di .bash_profile, bukan di .bashrc, mulai ulang mac Anda dan IntelliJ akan menemukan GOPATH (baru saja diuji, perlu reboot)
firepol
1
Saya mengotomatiskan penyiapan $ GOPATH yang Anda jelaskan github.com/camilin87/setup_go
Camilo Sanchez
Mengapa Anda menggunakan $Home/Gohuruf besar G? Penginstal homebrew menggunakan GEg huruf kecil ==> 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
Jawaban ini sangat ketinggalan zaman dan menyebabkan banyak masalah mengingat perubahan pada Go dan muncul pertama kali di pencarian Google untuk "Cara menginstal Go menggunakan Brew". Itu berarti banyak orang diarahkan ke jawaban yang sudah ketinggalan zaman dan tidak akurat ini. Anda tidak perlu lagi menyetel jalur apa pun untuk Go stackoverflow.com/a/21012349/3299397 dan Anda hanya menyetel GOROOT jika Anda sedang mengembangkan bahasa Go yang sebenarnya (seperti Anda membuat perubahan pada kode yang mendasari Go reddit.com/r/golang / comments / alrnuk /… )
Kyle Bridenstine
55

Mengikuti campuran jawaban di atas, inilah yang berhasil untuk saya OSX 10.12 (Sierra)dan Go v1.7.1menggunakan Homebrew:

Saya menambahkan ini dari jawaban Kosh ke saya .zshrcatau .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"

Kemudian di jendela / tab terminal baru:

$ 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
Gibbsoft
sumber
Ini bekerja sangat baik untuk saya di Sierra 10.12.5 dengan go 1.8.3. Terima kasih!
thewoolleyman
Bekerja untuk saya di Catalina 10.15.2 dengan go 1.13.5 juga. Terima kasih!
Ross Zurowski
Melanjutkan tren, berhasil untuk saya di Mojave 10.14.6 dengan go 1.13.8. Saya memodifikasi ini sedikit meskipun: ketika saya mengekspor jalan, saya menempatkan jalur pergi di depan dari $PATHbukan di akhir. Jadi baris ketiga dari file rc saya terlihat seperti ini:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
romellem
1
Ini harus menjadi jawaban yang diterima karena secara sempurna menggambarkan bagaimana menggunakannya dengan homebrew!
muuvmuuv
Sesuai komentar GitHub ini , go get github.com/golang/lint/golintmemiliki jalur baru:go get -u golang.org/x/lint/golint
schottsfired
23

Saya pikir saya telah menemukan solusinya, saya seharusnya mengekspor:

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

Dari pada

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

Karena di situlah 'go get' menempatkan binari (saya kira). Gotour sedang bekerja:

$ 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 saya mendasarkan jawaban saya pada posting ini

http://code.google.com/p/go-tour/issues/detail?id=39 di mana mereka berbicara tentang mengekspor:

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

Dan halaman memulai dari go: http://golang.org/doc/install di mana mereka mengatakan Anda harus mengekspor:

export PATH=$PATH:/usr/local/go/bin
golfadas
sumber
Saya harus meletakkan bin ekstra / di akhir, karena tampaknya sekarang mereka meletakkan file yang dapat dieksekusi go ini ke dalam subdirektori. Yaitu, perintah untuk jalan saya adalah:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate
Jika Anda belum menginstalnya brewtetapi berakhir di sini karena Anda tidak dapat menjalankan go saat menggunakan zsh, Anda perlu melakukan hal yang sama (mengekspor jalur ke instalasi go Anda). Dalam kasus saya itu: export PATH=$PATH:/usr/local/go/binJika itu tidak berhasil untuk Anda, maka Anda mungkin menginstalnya di tempat lain.
andilabs
9

Saya taruh ini di $ {HOME} /. Bash_profile saya

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"

berdasarkan jawaban golfadas tetapi diperbarui untuk bekerja dengan versi lama dan baru dari minuman.

Kosh
sumber
7

Saya pikir Anda harus mengatur GOPATH sebelum Anda go get. Setidaknya di sini, di mesin saya ini bekerja dengan lancar.

Saya mengatur GOPATH ke folder di folder rumah saya.

Semoga ini membantu!

Antonio Ribeiro
sumber
7
Ini adalah nasihat yang tepat. export GOPATH=$HOME/godan export PATH=$PATH:$GOPATH/binmencakup semua yang Anda butuhkan. Gantikan $HOME/gojalan pilihan Anda.
elithrar
5

Hanya pembaruan di sini - Saya mengalami masalah yang sama ini, dan jawaban sebelumnya TIDAK membantu. Pada versi (~ 1.2.2) Go yang diinstal oleh Homebrew, Anda harus menyetel GOROOT ke yang berikut ini:

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

Saya sedikit tidak terbiasa dengan struktur folder go, atau perubahan pada instalasi go melalui homebrew, jadi saya tidak begitu tahu mengapa. Tetapi - jika Anda kehilangan apa yang tampak seperti semua paket inti, hal di atas harus diperbaiki.

scztt
sumber
Anda bisa mencopot pemasangan versi go saat ini dan memasang yang baru. Itulah yang saya lakukan dan semuanya bekerja dengan baik untuk saya.
Kent Bull
Dengan homebrew, Anda harus selalu menggunakan /usr/local/opt/sebagai basis. Dengan cara ini Anda bahkan tidak perlu memperbarui variabel saat versi baru keluar.
kelas