- Goの環境構築方法とは?
- Goプロジェクトはどのように始めれば良い?
- Goのバージョン1.10以前と1.11以降の違いは?
- Goのバージョンはどう管理すれば良い?
本記事ではこのような疑問を解決します。
Goプロジェクトを始める際に、Goの環境構築について内容をまとめたいなと思ったので記事にしました。
Goのインストールからバージョン管理、プロジェクトの始め方やバージョン差異など、Goの環境構築についてはこの記事1つ読めばOKです。
なお、本記事で扱うGoのバージョンは1.21となります。
ただ、バージョン1.11以降をお使いであれば違いはほぼありません。
※Goはバージョン1.10以前と1.11以降でいろいろ異なる点がアリ(詳しくは後述)
ちなみに、Goのコードを書いてプログラムを実行したいだけの方は「Goのインストール」と「Goプロジェクトの始め方」のみを確認していただければ十分です。
バージョン1.10以前と1.11以降
Goの環境構築について最初に知っておくべきことがあります。
Goはバージョン1.10以前と1.11以降で環境構築やプロジェクトの設定方法に大きな違いがあります。
そのため、これからGoの環境構築などを始めていく場合はバージョン1.11以降のやり方に倣うことが一般的です。
なお、バージョン1.10以前と1.11以降の違いを簡単に説明すると以下の通りです。
◯バージョン1.10以前
・ソースコード、パッケージ等、ビルドの管理はGOPATH配下のみ
・パッケージのバージョンは最新のものだけ使用可能
→まとめると、”GOPATHモード”(GO111MODULE=off)
※GO111MODULEはGo環境変数の1つ
◯バージョン1.11以降
・ソースコード、パッケージ等、ビルドの管理を任意の場所でできる
・パッケージのバージョンを指定できる
・GOPATHとGOROOTを意識する必要がない
→まとめると、”モジュールモード”(GO111MODULE=on)
※バージョン1.16からデフォルトでGO111MODULE=on
Goのインストール
Goのインストールについては基本的に、Go公式サイトのインストーラーを使用するか、パッケージ管理ツールを使用するかのどちらかの方法を選択します。
なお、バージョン管理ツールを使用する方法も一応存在しますが、通常は必要ありません。
※バージョン管理ツールが不要な理由については後述
それでは、macOSおよびWindowsのそれぞれの場合でGoのインストール方法を説明していきます。
macOSの場合
macOSでGoをインストールする場合は、HomebrewまたはGo公式サイトのインストーラーを使う方法があります。
macOSではHomebrewを使うと便利です。
①Homebrewを使う(推奨)
ターミナルを開き、次のコマンドを実行してGoをインストールします。
$ brew install go
なお、Homebrewをまだインストールしていない場合はこちらに沿ってインストールをしておいてください。
②Go公式サイトのインストーラーを使う
Go公式サイトから対象のmacOSバージョンを選んでインストーラーをダウンロードします。
ダウンロード後、インストーラーを実行してGoのインストールは完了です。
Windowsの場合
WindowsでGoをインストールする場合は、Go公式サイトのインストーラーまたはChocolatey(Windowsパッケージ管理ツール)を使う方法があります。
Windowsではインストーラー文化が強く、あまりメジャーではないChocolateyを使う意味は乏しいのでGo公式サイトのインストーラーを使う方がいいかもです。
※あくまで個人的見解
①Go公式サイトのインストーラーを使う(推奨)
Go公式サイトからWindowsバージョンを選んでインストーラーをダウンロードします。
ダウンロード後、インストーラーを実行してGoのインストールは完了です。
②Chocolateyを使う
PowerShellまたはコマンドプロンプトを開き、次のコマンドを実行してGoをインストールします。
> choco install golang
なお、Chocolateyをまだインストールしていない場合はこちらに沿ってインストールをしておいてください。
フリーランスエンジニアが案件獲得方法とは?自ら営業せずに案件を獲得するには?実務経験1年未満でも大丈夫なの? 本記事ではこのような疑問を解決します。これからフリーランスエンジニアとして独立したい方は、兎にも角にも案件の獲得が急務です[…]
Goプロジェクトの始め方
まずはGoプロジェクトを開始するために任意のディレクトリを作成し、移動しましょう。
$ mkdir <ディレクトリ名> && cd <ディレクトリ名>
次に任意のディレクトリで以下のコマンドを実行します。
$ go mod init <モジュール名>
go.modというファイルが作成され、上記コマンドを実行した場所がプロジェクトのルートディレクトリになります。
なお、指定するモジュール名は、Web上にモジュールを公開する場合はgithub.com/アカウント名/リポジトリ名(例:github.com)といった形になります。
ただ、公開する予定がなければ任意の名前で大丈夫です。
その後は、Goでソースコードを書いて、下記のコマンドを実行します。
$ go mod tidy
このコマンドは、ソースコード内のimportで指定されているモジュールをgo.modへ反映し、一方でimportで指定されていないモジュールはgo.modから削除してくれます。
ソースコードの作成が完了したら、下記のコマンドを実行してビルドします。
$ go build <ディレクトリ名 or ファイル名>
※引数を指定しない場合はカレントディレクトリ内のmainパッケージがビルドされる
※「-o」オプションでビルドの出力ファイル名を指定できる
→指定しない場合はモジュール名がファイル名となる
ビルドが完了したら、出力ファイルを実行することでプログラムが実行されます。
$ ./sample_go
※出力ファイル名が「sample_go」の場合
なお、ビルドから実行までを一気にやりたい場合は下記のコマンドを実行します。
$ go run <ディレクトリ名 or ファイル名>
※引数を指定しない場合はカレントディレクトリ内のmainパッケージがビルド・実行される
GOPATHとGOROOT
Goの環境構築でよく議論されるのがGOPATHとGOROOTです。
結論からいうと、現在のバージョン(1.11以降)ではGOPATHとGOROOTを意識する必要はありません。
ネットの記事ではたまにGOPATHとGOROOTをいじるような操作が書かれていますが、現在では不要になっています。
なお、簡単に両者を説明すると以下の通りです。
GOPATH:ソースコード、パッケージ等、ビルドの管理場所
GOROOT:Go SDKの場所
ちなみに下記のコマンドを実行することによってGoで使用できる環境変数が一覧で出力されます。
$ go env
※Windowsでも同様
エンジニアが副業を始めるには?エンジニアの副業にはどんな種類がある? 本記事ではこのような疑問を解決します。副業がブームになっている昨今、エンジニアほど副業をやりやすい職業はないでしょう。副業に関心があったり、副業をしてみたいと思っ[…]
Goのバージョンアップ
macOS・Windowsにおけるバージョンアップ方法を説明します。
また、最後にgo.mod内のバージョンアップについても記述します。
macOSの場合
Homebrewを使い、以下のコマンドを実行してバージョンアップは完了です。
$ brew update
$ brew upgrade go
Windowsの場合
WindowsにおけるGoのバージョンアップは、「Goのインストール」のところで確認した手順と同じです。
すなわち、Go公式サイトからインストーラーをダウンロードして、実行するだけです。
なお、古いバージョンのGoについてはコントロールパネルからプログラムをアンインストールするか、古いGoのインストールディレクトリを手動で削除します。
go.modにおけるバージョンアップ
Go自体のバージョンを上げたとしても、go.mod内の指定バージョンの記述を変えなければ、使用しているパッケージのバージョンも更新されません。
そこで以下のコマンドを実行します。
$ go mod tidy -go=1.21
※ここではバージョン1.21を指定
これによってgo.modファイル内で指定されている有効なGoバージョンが更新されます。
Goのバージョン管理
一般的に開発言語にはバージョン管理ツールが用意されています。
例えばPythonならpyenv、Node.jsならnodenvなど。
同じようにGoにもバージョン管理ツールがありますが、Goの場合は基本的にバージョン管理をする必要はありません。
なぜなら、Goは後方互換性を保っているため、最新版をインストールしておけば問題ないからです。
それでもGoについて複数のバージョンを扱いたい場合は、公式サイトの説明に沿って、扱いたいバージョンを都度インストールすればOKです。
もちろんGoのバージョン管理ツールとしてメジャーなgvmやgoenvを使うのも良いと思います。
まとめ
以上がGo言語の環境構築方法まとめになります。
バージョン1.11以降で登場したモジュールモード(Go Modules)によって、Goの環境構築が簡単になりました。
つまり、Goをインストールするだけで、裏の設定を意識する必要がほぼなくなりました。
環境構築はチャチャっと終わらせて、Go開発に入っていきましょう!
本記事があなたのお役に立つことができたら幸いです。