4
4

More than 3 years have passed since last update.

golangをソースコードからインストールする(CentOS/Ubuntu)

Posted at

TL;DR

  • Go言語のプログラムのコンパイラ+実況環境(goコマンド)をソースコードからインストールする方法を紹介します

Go言語のビルド手順

Installing Go from sourceの説明をもとにインストールします.

直近のバージョンのgoは,goでビルドします.そのため,(以前のバージョン)go1.4をいったんビルドしてから,最近のバージョンのgoをビルドする手順を取ります
(もとの説明は「Bootstrap toolchain from source」にあります).

手順は以下のとおりです.使用したいgoを1.13.5(2019年12月27日時点)とします.

  1. go1.4をダウンロード,ビルドする
  2. go1.13.5をダウンロード,go1.4のディレクトリを指定してビルドする

go1.4のビルド

  • まず最初に,goを使用しないでビルドできるgo1.4をダウンロードし,ビルドします
wget https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz
mkdir go1.4-bootstrap && tar xzvf go1.4-bootstrap-20171003.tar.gz -C go1.4-bootstrap --strip-components 1
cd ./go1.4-bootstrap/src
CGO_ENABLED=0 bash ./make.bash
cd -
  • go1.4-bootstrap-20171003.tar.gzをダウンロードします
  • 展開後のディレクトリ名がgoで,以降のgo1.13.5とバッティングしてしまうので,go1.4-bootstrapという名前のディレクトリに展開します
  • make ./make.bashで,最小限のビルドを行います
  • go1.4-bootstrap/bingogofmtが生成されます

go1.13.5のビルド

wget https://dl.google.com/go/go1.13.5.src.tar.gz
mkdir go1.13.5 && tar xzvf go1.13.5.src.tar.gz -C go1.13.5 --strip-components 1
cd ./go1.13.5/src
GOROOT_BOOTSTRAP=${PWD}/go1.4-bootstrap bash ./all.bash
cd -
  • go1.13.5.src.tar.gzをダウンロードします
  • 特段ディレクトリ名を変更する必要はないのですが,他のディレクトリと混在しないようにバージョン名を含めた名前で展開します
  • go1.13.5/srcディレクトリに移動して,ビルドします.このとき環境変数GOROOT_BOOTSTRAPに,前章でビルドしたgo1.4のディレクトリを指定します
  • go1.13.5/bingogofmtが生成されます

ビルドしたgo1.13.5ディレクトリを実行パスに移動

ビルドしたgo1.13.5ディレクトリをわかりやすい場所に移動します.

mv ./go1.13.5 /usr/local/
ln -s /usr/local/go1.13.5 /usr/local/go

テスト

/usr/local/go/bin/go が使用できることを確認します.

export PATH=/usr/local/go/bin:${PATH}

which go
# /usr/local/go/bin/go
go version
# go version go1.13.5 linux/amd64

参考

4
4
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
4
4