Go のソースコードをビルドして処理するためのプログラム群が存在します。 直接実行されるのではなく、そのセットのプログラムは通常 go プログラムによって呼び出されます。 GOPATH と GOROOT は、Go のソースコードに対して一定の配置や構成を定義する環境変数です。 gopath と goroot のパスは、必要であれば明示的に変更することができます。
GOPATH
GOPATH はワークスペース・ディレクトリとも呼ばれ、Go コードが所属するディレクトリです。 これは go/build パッケージによって実装され、文書化されており、import 文を解決するために使用されます。 go getツールは、GOPATHの最初のディレクトリにパッケージをダウンロードします。 環境変数が設定されていない場合、GOPATHはユーザーのホームディレクトリにある「go」という名前のサブディレクトリをデフォルトとします。 これを確認するには、次のコマンドを入力します:
On Windows:C:\Users\%USERPROFILE%\goOn Linux:$HOME/go
現在の GOPATH を確認するには、次のコマンドを入力します:
C:\Users\%USERPROFILE%\go env GOPATH
GOPATH にはその下に3つのディレクトリがあって、それぞれのディレクトリには特定の機能があります:
- src: ソースコードが入っています。 このディレクトリ以下のパスは、インポートパスや実行ファイル名を決定します。 インストールされたパッケージオブジェクトを保持します。 対象となる OS とアーキテクチャの組ごとに pkg.
- bin のサブディレクトリがあります。 コンパイルされたコマンドを格納します。
Go でモジュールを使用する場合、GOPATH はもはや import を決定するために使用されません。 しかし、ダウンロードしたソースコードを pkg に格納し、コンパイルしたコマンドを bin.
GOROOT
GOROOT はコンパイラと go インストールに付属するツールのためにあり、標準ライブラリを見つけるために使用されます。 常にインストールディレクトリに設定する必要があります。
現在の GOROOT を確認するには、次のコマンドを入力します:
C:\Users\%USERPROFILE%\go env GOPATH
Go ツールを別の場所にインストールすることが可能です。 これは、環境変数 GOROOT がインストールされたディレクトリを指すように設定することで可能ですが、これはツールにプリセットされているため、推奨されるものではありません。