この記事では、Go(Golang)をLinuxにインストールする手順をまとめています。
LinuxはUbuntuを使用し、Goのバージョンは現在の最新である「go1.15.2」をインストールしていきます。(※CentOSの場合もほぼ同様です。)
また、後々に複数のバージョンをインストールして利用しやすいようにシンボリックリンクを使って「バージョンを切り替える方法」についても記述しておきます。
それではインストールしていきましょう。
Linux(Ubuntu)へGoをインストールする方法
1 Goの公式サイトからファイルをダウンロードする
まず、Goの公式サイトからLinux用に配布されている圧縮ファイルをダウンロードします。
Goの公式サイト
サイトの「Stable versions」より”go1.15.2.linux-amd64.tar.gz”をダウンロードします。
今回は wgetコマンド を使用します。(※ちなみ過去のバージョンはサイト下の「Archived versions」から選択できます。)

右クリックで「リンクのアドレスをコピー(E)」を選択してアドレスをコピーします。

/usr/localに移動して、wgetコマンドで先ほどコピーしたURLを指定してダウンロードしましょう。
# 移動
$ cd /usr/local
# ダウンロードする
$ sudo wget https://golang.org/dl/go1.15.2.linux-amd64.tar.gz
2 ダウンロードファイルを展開する
先ほどダウンロードしたファイルを展開します。下のコマンドを実行すると、/usr/local/go/ に実行環境に必要なファイルが展開されます。
$ sudo tar xvf go1.15.2.linux-amd64.tar.gz
展開が完了したら、この段階で一応バージョンを確認しておきます。
$ /usr/local/go/bin/go version
#=> go version go1.15.2 linux/amd64と表示される
3 バージョン切り替えのためのディレクトリ、シンボリックリンクを作成
go1.15.2用のディレクトリを作成しつつ、/usr/local/go を移動します。mvコマンドで行います。
$ sudo mv go /usr/local/go1.15.2
/usr/local/go1.15.2を参照するシンボリックリンクを作成します。
$ sudo ln -s /usr/local/go1.15.2 /usr/local/go
#=> go -> /usr/local/go1.15.2/ というリンクが作成される。
新しいバージョンのGoをインストールした際には、このリンク先を新しいバージョンのディレクトリに変更することで切り替えることができます。(※展開する前にこのシンボリックリンクは削除しておきましょう。)
4 GOPATHを通す
最後に /usr/local/go/bin/ へのパス(GOPATH)を通せば完了です。GOPATHを通すには、ユーザーのホームディレクトリにある「 ~/. profile」というファイルを編集します。
vimエディタで編集します。
$ vim ~/.profile
~/.profileの最後にGOPATHに関する環境変数を追記します。
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
# GOPATHの追加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
追記したら、その内容を次のコマンドで反映させます。
$ source ~/.profile
ここまで上手くいったら、最後にGOPATHが通っているか確認しましょう。
$ go version
#=> go version go1.15.2 linux/amd64と表示されればOK
LinuxへのGoのインストールはこれで完了です。
簡単なまとめでしたが、誰かの参考になれば幸いです。
コメント