LoginSignup
9
9

More than 5 years have passed since last update.

gvmでGolangインストール

Last updated at Posted at 2017-06-07

はじめに

最近遊び始めたので、メモついでに簡単なGolangの環境構築方法をつらつら書いていこうと思います。

環境はAWSのEC2(Amazon Linux)です。
他のLinux系OSやMacでも同様の処理でインストールまで出来るはずです。

Golangとは

GolangはGoogleが開発しているコンパイル型のプログラム言語で、
シンプルな記法が特徴で並列処理も簡単に実装できます。

gvm

gvmはGolangのバージョン管理ツールです。
$GOPATH$GOROOTも最初から設定してくれるので大変便利です。
https://github.com/moovweb/gvm

gvmのインストール

ターミナルで下記を実行

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

これだけです。

.bashrcに自動読み込みの設定も追記されているので、今後はターミナルを立ち上げるだけでgvmが利用できます。

  1. ログイン中のターミナルですぐに使いたいときは下記を実行してください。
    • source /home/ec2-user/.gvm/scripts/gvm
  2. 下記のエラーが出た場合はgitをインストールしましょう。
    • ERROR: Could not find git

gvmの確認

正常に動いているか確認しましょう。

$ gvm version

Could not find bison

  linux: apt-get install bison

Could not find gcc

  linux: apt-get install gcc

と思ったら怒られました。
Amazon Linuxにはbisongccが無いのでインストールします。

$ sudo yum install -y bison gcc

そして再確認

$ gvm version
Go Version Manager v1.0.22 installed at /home/ec2-user/.gvm

問題なさそうです。
これでgvmのインストールが完了しました。

Golang

ではGolangをインストールしていきましょう。

gvm listall

まずインストール可能なGolangの バージョンを探します。

$ gvm listall
...
   go1.7rc4
   go1.7rc5
   go1.7rc6
   go1.8
   go1.8.1
   go1.8.2
   go1.8.3
...

今回は最新のgo1.8.3をインストールしようと思います。

gvm install

$ gvm install go1.8.3 -B

オプションの-BはBinaryを持ってくるだけですが、
-Bなしでのインストールを行うとGolangのソース持ってきてローカルでコンパイルします。
ただしgo1.5以上のコンパイルにはgo1.4が必要となることがあります。
(※go1.8.2のインストールでは必要なかったのでこの仕様は無くなったのかもしれません。)

gvm use

ではGoを使えるようにしましょう。

$ gvm use go1.8.3 --default

オプションの--defaultを指定しておくことでターミナルに再ログインした後でも、そのバージョンを利用できます。
指定しない場合はログイン中のみ利用できます。

それでは確認です。

$ go version
go version go1.8.3 linux/amd64

さらに$GOPATH$GOROOTも見てみましょう。

$ echo $GOPATH
/home/ec2-user/.gvm/pkgsets/go1.8.3/global
$ echo $GOROOT
/home/ec2-user/.gvm/gos/go1.8.3

※もし何も表示されない場合は再ログイン、または下記を実行してください。
source /home/ec2-user/.gvm/scripts/gvm

というわけでGolang1.8.3のインストールが完了です!

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9