Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

今日からGoをはじめる人に伝えたい$GOPATHではまった話

Download to read offline

Go(Un)Conference(Goあんこ)LT大会 1kg

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

今日からGoをはじめる人に伝えたい$GOPATHではまった話

  1. 1. 今日から Goをはじめる人に伝えたい $GOPATHではまった話 Go(Un)Conference(Goあんこ)LT大会 1kg 2018/04/17 Yuta Ohashi
  2. 2. 2 blue_goheimochi blue-goheimochi はじめて1ヶ月
  3. 3. 3 いっちょやってみっか! go get github.com/xxxxx/xxxxx
  4. 4. 4 いっちょやってみっか! go get github.com/xxxxx/xxxxx $ go get github.com/syossan27/kirimori package github.com/syossan27/kirimori: cannot download, $GOPATH not set. For more details see: go help gopath
  5. 5. 5 いっちょやってみっか! go get github.com/xxxxx/xxxxx $ go get github.com/syossan27/kirimori package github.com/syossan27/kirimori: cannot download, $GOPATH not set. For more details see: go help gopath
  6. 6. 6 $GOPATH not set
  7. 7. 7 \(^o^)/
  8. 8. 8 出だしからはまってつらい 死にたい
  9. 9. 9 結論
  10. 10. 10 結論 Go言語のバージョン 1.8 以上を使って、 export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN を .zshrc とか .bash_profile とかに追加しておく。 https://github.com/golang/go/wiki/SettingGOPATH
  11. 11. 11 あなたは$GOPATH に悩まされる? チェックしてみましょう $ go version go version go1.2.1 linux/amd64 1.7 未満の場合 → 悩まされる。 1.8 以上の場合 → 悩まされない。
  12. 12. 12 なぜ 1.8 が分岐点なのか? https://github.com/golang/go/issues/17262 Go言語のバージョンが 1.8 以上の場合は、 $HOME/go がデフォルトとして 認識されるようになったため。
  13. 13. 13 やったね!!
  14. 14. 14 どういう人が悩まされる?? 各OSのGo言語のバージョン状況(2018/04/17現在) $ brew install go $ go version go version go1.10.1 darwin/amd64 http://formulae.brew.sh/formula/go Mac https://chocolatey.org/packages/golang Windows $ choco install golang $ go version go version go1.10.1 windows/amd64
  15. 15. 15 あれ?だいじょうぶじゃん?
  16. 16. 16 どういう人が悩まされる?? 各OSのGo言語のバージョン状況(2018/04/17現在) $ brew install go $ go version go version go1.6.2 linux/amd64 Ubuntu 16.04 Ubuntu 14.04 $ sudo apt-get install golang-go $ go version go version go1.2.1 linux/amd64
  17. 17. 17 だめじゃん・・・・
  18. 18. 18 どういう人が悩まされる?? 新しいバージョンをインストールしよう・・! $ sudo add-apt-repository ppa:gophers/archive $ sudo apt-get update $ sudo apt-get install golang-1.10-go https://github.com/golang/go/wiki/Ubuntu 公式のWikiに書いてあるこの方法で新しいバージョンの ものがインストールできる!(パスを通す必要あり)
  19. 19. 19 ちなみに 各OSのGo言語のバージョン状況(2018/04/17現在) sudo yum install golang $ go version go version go1.8.3 linux/amd64 CentOS 7 Ubuntu 18.04 $ sudo apt-get install golang-go $ go version go version go1.10.1 linux/amd64
  20. 20. 20 え、じゃあ別に環境変数に 設定しておかなくてもいいじゃん?
  21. 21. 21 ちゃんと設定しておくのがよさそう・・! os.Getenv("GOPATH") が 実装されているソースコードに対して 問題が発生する可能性があります。 https://medium.com/eureka-engineering/gopath-を-build-default-gopath-で適切に扱う-1f3ee50e9633
  22. 22. 22 ま? ま?
  23. 23. 23 マジでした 下記のコードを各環境で動かしてみた package main import ( "fmt" "go/build" "os" ) func main () { fmt.Println("os.Getenv(¥"GOPATH¥") : " + os.Getenv("GOPATH")) fmt.Println("build.Default.GOPATH : " + build.Default.GOPATH) } test.go
  24. 24. 24 マジでした Mac $ go run test.go os.Getenv("GOPATH"): build.Default.GOPATH: /home/blue-goheimochi/go $GOPATH設定前 $GOPATH設定後 $ go run test.go os.Getenv("GOPATH"): /home/blue-goheimochi/go build.Default.GOPATH: /home/blue-goheimochi/go
  25. 25. 25 マジでした Windows $ go run test.go os.Getenv("GOPATH") : build.Default.GOPATH : C:¥Users¥blue-goheimochi¥go $GOPATH設定前 $GOPATH設定後 $ go run test.go os.Getenv("GOPATH") : C:¥Users¥blue-goheimochi¥go build.Default.GOPATH : C:¥Users¥blue-goheimochi¥go
  26. 26. 26 マジでした Ubuntu 16.04、Ubuntu 14.04 $ go run test.go os.Getenv("GOPATH") : build.Default.GOPATH : $GOPATH設定前 $GOPATH設定後 $ go run test.go os.Getenv("GOPATH"): /home/blue-goheimochi/go build.Default.GOPATH: /home/blue-goheimochi/go
  27. 27. 27 マジでした CentOS 7 $ go run test.go os.Getenv("GOPATH") : build.Default.GOPATH : /home/blue-goheimochi/go $GOPATH設定前 $GOPATH設定後 $ go run test.go os.Getenv("GOPATH") : /home/blue-goheimochi/go build.Default.GOPATH : /home/blue-goheimochi/go
  28. 28. 28 まとめ 今日からGoをはじめる人は・・・ • バージョンは 1.8 以上ではじめる • $GOPATH は明示的に設定する export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN
  29. 29. 29 おわり

Go(Un)Conference(Goあんこ)LT大会 1kg

Views

Total views

7,059

On Slideshare

0

From embeds

0

Number of embeds

1,188

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×