会社で教えてもらったことあったんだけど、家でやろうと思ったときに資料が会社にしかなくて全然思い出せなかったので自分で調べた。
goenv も使わないし、 brew で古いバージョン入れる方法でもない。
前提として mac に brew で go を入れてあるところから始める。別にbrewである必要は実際にはない。
でダウンロードしたい go のバージョンをダウンロードしてくる。
今回 go1.11.13 を使えるようにしたかったので以下のようなコマンドを実行。
$ go install golang.org/dl/go1.11.13
そうすると以下のディレクトリに go1.11.13 が入る。
$ ls -l $GOPATH/bin/go1.11.13 -rwxr-xr-x 1 kimikimi714 kimikimi714 7383724 10 22 23:15 /your/go/path/bin/go1.11.13
このままではまだ使えないのでダウンロードする。
$ $GOPATH/bin/go1.11.13 version go1.11.13: not downloaded. Run 'go1.11.13 download' to install to /Users/your-user/sdk/go1.11.13 $ $GOPATH/bin/go1.11.13 download Downloaded 0.0% ( 16384 / 120519348 bytes) ... Downloaded 1.2% ( 1407803 / 120519348 bytes) ... (略) Downloaded 92.3% (111278907 / 120519348 bytes) ... Downloaded 100.0% (120519348 / 120519348 bytes) Unpacking /Users/kimikimi714/sdk/go1.11.13/go1.11.13.darwin-amd64.tar.gz ... Success. You may now run 'go1.11.13'
これで実行すると動く。
$ $GOPATH/bin/go1.11.13 version go version go1.11.13 darwin/amd64
このファイルを go として使いたい場合、私はかなり強引だが以下のようにした。
$ brew unlink go Unlinking /usr/local/Cellar/go/1.13.3... 0 symlinks removed $ rm /usr/local/bin/go rm: remove symbolic link '/usr/local/bin/go'? y $ ln -s $GOPATH/bin/go1.11.13 /usr/local/bin/go $ go version go version go1.11.13 darwin/amd64
参考
追記: 2022-06-07
Go1.18を使ってる人だと go get
ではダメで go install
じゃないといけない。
この記事によると Go 1.17 から。