yosemite's blog

About technology, books, diary

Go の環境構築時にバージョン管理を見越してインストールする

gopher
gopher

はじめに

最近 Go 言語を使った開発にアサインされることになりました。
業務では PHP しか書いたことがなかったので、ちょっとドキドキしていました。
(経験してきたサーバサイド言語としては Ruby(業務外) → PHP → Go という流れ)

静的型付け言語と言われるものは初めてだったので結構困惑しました(今もわりとしているw)。

開発が始まるとなると、まずやるのは環境構築!

そこで使ってみて便利だった GVM について少しだけ紹介したいと思います。

GVMについて

概要

GVM は、Go Version Manager といい、Go 言語のバージョンを簡単に管理することのできるツール。
プロジェクトごとに使うバージョンが違ったり、以前にインストールしていたものが古くなったりすると、バージョンを変えるのが割と大変だったりしますよね。

そんな時に、コマンド叩くだけで直ぐに切り替えできます。

こちらが公式のリポジトリです。

github.com

セットアップ

依存ライブラリのインストール

筆者は、macOS なので、OSに合わせて、必要となるライブラリを入れていきます。

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

$ xcode-select --install

$ brew update

$ brew install mercurial

GVM のインストール

$ 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

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

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

…の前に!

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

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以上をインストールするためにはまず、1.4が必要と書かれています。

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

$ gvm install go1.12.6 -B


$ gvm list

gvm gos (installed)

=> go1.12.6
   system

$ gvm use go1.12.6 --default

$ go version
go version go1.12.6 darwin/amd64

おわりに

無事に Go をmacOS にインストールすることができました。
GVMコマンドを使用することで、今後他のバージョンに変更したくなった時でも簡単に変更ができるようになりました。

次回は、 Go 初学者としてどんなことをしている(してきたか)など経験を交えて書いていけたらと思ってます。

最後まで見てくださりありがとうございました。

それじゃまた🙋‍♂️