WSLにGoをインストールする手順を説明します。
ただ手順を説明するだけではなく、コマンドの意味や Linux 周辺の知識も補足して説明していきます。
その前に
以前にGoをインストールしており、古いバージョンを上書きせずに新しいバージョンをインストールしたい場合は、以下のコマンドでGoのインストールディレクトリを削除してください。
(sudo) rm -rf /usr/local/go
ここで削除しているgo
ディレクトリの親ディレクトリについて軽く説明します。
/usr
/usr
ディレクトリは主に一般ユーザーが利用する実行可能ファイルや、それらに関するドキュメントが含まれています。一般ユーザーが利用するコマンドの多くは/usr/bin
に保存されています。
/usr/local
/usr/local
は手動でソースコードからコンパイルしてインストールしたプログラムや、サードパーティ製ソフトウェアを格納する場所になっています。なので、Linuxシステムでは、手動でインストールするソフトウェアを/usr/local
配下で管理するのが推奨されています。
Goのパッケージはこの/usr/local
配下に置きます。
パッケージのダウンロード
公式サイトから「go1.23.5.linux-amd64.tar.gz」のリンクアドレスをコピーし、こちらのコマンドでパッケージをダウンロードします。
curl -LO https://go.dev/dl/go1.23.5.linux-amd64.tar.gz
または
wget https://go.dev/dl/go1.23.5.linux-amd64.tar.gz
コマンドの意味
Goのバイナリパッケージをダウンロードしているのですが、もう少し言うとどちらのコマンドもURL「https://go.dev/dl/go1.23.5.linux-amd64.tar.gz」に対してGETリクエストを行ってパッケージをダウンロードしています。
curl コマンドのオプションについて
- -L : URLがリダイレクトされる場合に、そのリダイレクト先を追跡してリクエストを続けるオプション
-
-O : レスポンスで得られたファイルを URL に基づく名前(この場合、
go1.23.5.linux-amd64.tar.gz
)で保存する
go1.23.5.linux-amd64.tar.gz について
また、ダウンロードした「go1.23.5.linux-amd64.tar.gz」についても解説しておきます。
go1.23.5.linux-amd64.tar.gz は(アーカイブ形式の)バイナリパッケージと呼ばれるものに該当します。「バイナリパッケージ」と「アーカイブ形式」の言葉の意味を確認しておきましょう。
バイナリパッケージ
ソースコードをコンパイル済み(実行可能形式)にしたソフトウェアの配布物のことで、実際はソフトウェア(今回はGo)の実行ファイルや関連するデータ(ライブラリ、設定ファイルなど)をまとめたものです。パッケージをダウンロードすることですぐに利用できるようになっています。
アーカイブ形式
複数のファイルやディレクトリを 1 つにまとめた後、圧縮した形式のことです。
なので今回ダウンロードしたgo1.23.5.linux-amd64.tar.gzはGoのパッケージを圧縮したものと言えます。
データの完全性検証
可能性は低いですが、公式サイトのSHA256 Checksumを参照してダウンロードしたファイルが改ざんされていないか、ファイルのダウンロード中や保存の際に破損していないかをこちらのコマンドで確認できます。
sha256sum go1.23.5.linux-amd64.tar.gz
cbcad4a6482107c7c7926df1608106c189417163428200ce357695cc7e01d091 go1.23.5.linux-amd64.tar.gz
コマンドの意味
sha256sumコマンドで、ファイルの SHA-256 ハッシュ値(チェックサム)を計算して出力しています。これで公式の結果と同じになっていることを確認できました。
ダウンロードしたパッケージは圧縮してあるので解凍・展開して利用できるようにします。
パッケージの展開
こちらのコマンドで展開します。
(sudo) tar -C /usr/local -xzf go1.23.5.linux-amd64.tar.gz
コマンドの意味
tar コマンドはアーカイブファイルの操作を行うコマンドでアーカイブの作成や解凍、展開に使用されます。
オプションについて
- -x: 解凍オプション
- -z: gzip 圧縮の場合に指定
- -f: ファイル名(go1.23.5.linux-amd64.tar.gz)を指定
- -C: 指定したディレクトリ(/usr/local)に移動して実行
これで /usr/local配下にGoのパッケージが展開されました。
こちらのコマンドで/usr/local/goを親ディレクトリとしてGoのパッケージが展開されていることがわかると思います。
ls -l /usr/local/go
パスを通す
環境変数PATHにパスを通してgoコマンドを利用できるようにします。
環境変数PATH
の設定を永続化するため、.bashrc
に書き込んでおきます。
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
コマンドの意味
このコマンドはgo
コマンドを実行できるようにするためのPATH
設定「export PATH=$PATH:/usr/local/go/bin」を「.bashrc」ファイルに書き込んでいます。
.bashrc はBash セッションが起動する際に読み込まれるので、一度ターミナルを閉じた場合でもgoコマンドが利用できるようになります。
最後にgoコマンドが利用できるようになったのか確認します。
go version
go version go1.23.5 linux/amd64
これでGoのインストール完了です!
お疲れ様でした!