profile.img
Hayashida.dev

Goのセットアップ方法

Goこれ読んでおいて

Motivation

初学者にGoのセットアップ方法を聞かれる機会がちらほらあるので、
このリンクを読んでおいてと案内できるものを自分で書いちゃってよいかなというモチベーション

Setup環境

  • Machine: MacBook Pro(Intel)
  • OS: maxOS Monterey

方針

  • 公式サイトからダウンロードしてパスを通す 🙆‍♂️
  • brew経由などのパッケージマネージャでインストールする方法は採用しない
  • goenvなどの*env系ツールも採用しない

Goは後方互換性があるため、特別なことがない限り
最新にバージョンをあげていけばよいので、バージョン管理ツールは不要

Install

  • Go公式からtar.gz形式でダウンロードする
  • MacOSで 2021/10時点での最新バージョンはgo1.17.2.darwin-amd64.tar.gzが対象
  • ダウンロードファイルを/user/localに展開する
// 2021/10 時点での最新バージョン
$ wget https://golang.org/dl/go1.17.2.darwin-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.17.2.darwin-amd64.tar.gz
$ rm go1.17.2.darwin-amd64.tar.gz

Add path to ~/.zshrc

  • パスを通す
$ vi ~/.zshrc

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

~/.zshrcを反映

$ source .zshrc

$HOME/goのパスをlsするとbin, pkg, sdkが確認できる

% ls $HOME/go
bin     pkg     sdk

バージョン確認

$ go version
go version go1.17.2 darwin/amd64

Goバージョンアップ(追記)

手順はインストール手順と同じである
試しにv1.17.3がでていたので、インストールする

$ wget https://golang.org/dl/go1.17.3.darwin-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.17.3.darwin-amd64.tar.gz
$ rm go1.17.3.darwin-amd64.tar.gz
$ go version                                              
go version go1.17.3 darwin/amd64

go.modのGo Versionの変更

go.mod記載のGoのVersionを変更するには以下のgo mod edit -go=1.XXで行う
例として、go1.16 -> go1.17へ変更する

$ go mod edit -go=1.17

$ git diff go.mod
diff --git a/go.mod b/go.mod
index 282c25f..014df88 100644
--- a/go.mod
+++ b/go.mod
@@ -1,9 +1,11 @@
 module github.com/hayashiki/go-boiler
 
-go 1.16
+go 1.17

Go Multi Version install

複数バージョンのGoをInstallする場合にはマニュアルに書いてあるようにおこなう
(サーバレス上のランタイムのGoバージョン制約にあわせる必要があるケースなど)

$ go install golang.org/dl/go1.17.6@latest
$ go1.17.6 download
$ go1.17.6 version

Install On Ubuntu

  • 公式サイトの取得をlinux-amd64にすればよいだけ
$ wget https://golang.org/dl/go1.17.6.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.17.6.linux-amd64.tar.gz
  • 環境変数をパスに登録する
vi ~/.profile
$ export PATH=$PATH:/usr/local/go/bin
$ source ~/.profile
$ go version
go version go1.17.6 linux/amd6

まとめ

結論としてはとにかく公式に書かれている手順でやるのが一番良いよという話であった