Skip to content

GVM を使った Go の環境構築

  • Go

📅 2020-06-13

⏱️ 4 min read

概要

以前 Go 言語を使った開発にアサインされることがあった。 その時に GVM を使って環境構築したら非常に簡単だったので紹介がてら残しておきたいと思う。

GVMについて

GVM は、Go Version Manager といい、Go 言語のバージョンを管理することのできるツール。プロジェクトごとに使うバージョンが違ったり、以前にインストールしていたものが古くなったりすると、バージョンを変えるのが割と大変なこともある。 そんな時に、コマンドを叩くだけでバージョンの切り替えを可能にしてくれるのがこの GVM だ。

こちらが公式のリポジトリ。 moovweb/gvm: Go Version Manager

セットアップ

僕は macOS なので、それに合わせて必要となる依存ライブラリをインストールしていく。

※ 他の OS についても、 README に記載があるので、そちらを参照して欲しい。

$ sw_vers -productName
Mac OS X

$ xcode-select --install
$ brew update

# Check whether formula is installed in your machine
$ brew list | grep mercurial

# If not, please install
$ brew install mercurial

GVM のインストール

# Install Go version manager
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
...

Installed GVM v1.0.22

Please restart your terminal session or to get started right away run
 `source /Users/username/.gvm/scripts/gvm`

$ source ~/.gvm/scripts/gvm

# Check
$ gvm version
Go Version Manager v1.0.22 installed at /Users/username/.gvm

実際に GVM から Go をインストールする

その前にインストールのオプションを確認しておく。

$ gvm install -h
Usage: gvm install [version] [options]
    -s,  --source=SOURCE      Install Go from specified source.
    -n,  --name=NAME          Override the default name for this version.
    -pb, --with-protobuf      Install Go protocol buffers.
    -b,  --with-build-tools   Install package build tools.
    -B,  --binary             Only install from binary.
         --prefer-binary      Attempt a binary install, falling back to source.
    -h,  --help               Display this message.

となっている。

A Note on Compiling Go 1.5+ Go 1.5+ removed the C compilers from the toolchain and replaced them with one written in Go. Obviously, this creates a bootstrapping problem if you don't already have a working Go install. In order to compile Go 1.5+, make sure Go 1.4 is installed first.

公式のリポジトリにはこのように書かれており ver1.5 以上をインストールするためにはまず ver1.4 が必要と書かれている。

しかしこの対処法としては -B オプションを付けてソースコードからではなく、バイナリからインストールすることで回避することができる。

# Enter the version you want to install
$ gvm listall | grep 1.14
   go1.14
   go1.14beta1
   go1.14rc1
   go1.14.1
   go1.14.2
   go1.14.3

# Only install from binary
$ gvm install go1.14.3 -B

$ gvm list

gvm gos (installed)

=> go1.1 4.3
   system

# Setup default version in your machine
$ gvm use go1.14.3 --default

$ go version
go version go1.14.3 darwin/amd64

ここでは --default オプションを指定することで、ターミナルを再起動した際などにも指定したバージョンが保持されるようにしている。

まとめ

これで GVM を使った Go の環境構築は以上となる。 今後は GVM コマンドを叩くだけで、他のバージョンに簡単に変更ができるようになった。

非常に便利なので Go を使って開発するチームやプロジェクトによって複数のバージョンを跨ぐような機会があれば導入しておくと開発が捗るのではないだろうか。

参考にさせていただいたサイト

← PrevNext →
  • © ysmtegsr 2019 - 2021