【macOS版】Go言語 開発環境 構築 ガイド:HomebrewでGoをインストールし、Hello Worldまで

Go言語との出会いが、あなたの開発を加速する

Googleが開発したGo言語は、シンプルで高速、そして並行処理に強いという特徴を持ち、WebサービスからCLIツール、さらにはマイクロサービス開発まで、幅広い分野でその真価を発揮しています。

この記事では、macOSユーザーのあなたがGo言語の学習をスムーズに始められるよう、Go開発環境の構築方法をゼロから丁寧に解説します。

Homebrewを使った簡単なインストールから、Goのバージョン確認、そして「Hello World」プログラムの実行まで、ステップバイステップで進めていきましょう。

さあ、Go言語の魅力に触れ、あなたの開発体験を次のレベルへと引き上げましょう!


目次


対象読者

  • Go言語に興味があり、macOSで開発環境を構築したいと考えている初心者開発者
  • Homebrewを使ったGoのインストール方法を知りたい方
  • Go言語の基本的な特徴や開発環境の全体像を理解したい方

動作検証環境

この記事は、以下の環境で検証しています。

  • OS : macOS Tahoe Version 26.0
  • ハードウェア : MacBook Air 2024 M3 24GB

1. Go言語とは?なぜ今Goを学ぶべきか

Go言語の概要

Go言語(Golang)は、2009年にGoogleで開発されたオープンソースのプログラミング言語です。
C言語のような高速性とPythonのような記述のしやすさを兼ね備え、現代のソフトウェア開発が求める多くの要件に応える設計思想を持っています。

Go言語は、DockerやKubernetesといったモダンなインフラ技術の基盤としても採用されており、クラウドネイティブな開発においてその存在感を増しています。

Uber, Twitch, Dropbox, Googleなどの海外の有名企業や、メルカリ、クックパッド、DeNAなどの国内企業でも導入事例が増えており、Goエンジニアの需要は高まる一方です。
gRPCのようなグローバルスタンダードなツールとの連携も容易で、モダンな開発において重要な役割を果たしています。

シンプルさゆえに学習コストが低く、一度習得すれば様々な分野で活躍できるGo言語は、あなたのキャリアを大きく広げる可能性を秘めていると言えるでしょう。


Goが選ばれる理由:主要なユースケース

Go言語は、その設計思想と機能特性から、現代のソフトウェア開発における様々な分野で強力な選択肢となっています。特にmacOS環境での開発においても、その恩恵を最大限に享受できます。

  • クラウド&ネットワークサービス:
    • 主要なクラウドプロバイダー(AWS, GCP, Azureなど)のツールやAPIとの強力なエコシステムにより、Goを使ったサービス構築がこれまで以上に容易になっています。macOS上で開発したGoアプリケーションを、そのままクラウド環境にデプロイするワークフローは非常にスムーズです。
  • CLI (コマンドラインインターフェース) ツール:
    • Goは、高速な起動と単一バイナリ生成という特性から、強力なCLIツールの開発に最適です。macOSのターミナルで日常的に利用するようなツールを、Goで効率的に開発・配布できます。
  • Web開発:
    • 優れたメモリ性能と複数のIDEサポートにより、Goは高速でスケーラブルなWebアプリケーションを支えます。macOSの快適な開発環境とVS CodeなどのIDEを組み合わせることで、効率的なWeb開発が可能です。
  • 開発運用 (DevOps) & サイト信頼性エンジニアリング (SRE):
    • 高速なビルド時間、簡潔な構文、自動フォーマッター、ドキュメントジェネレーターなど、GoはDevOpsとSREの両方をサポートするように設計されています。macOS上でこれらのツールを開発・運用することで、開発プロセス全体の効率化に貢献します。

2. Go言語の主な特徴

  • シンプルで読みやすい構文:
    • 複雑なオブジェクト指向の概念を排除し、誰が書いても同じようなコードになるよう設計されています。これにより、チーム開発でのコード品質の維持や、新規参入者の学習コスト削減に貢献します。
  • 高速な実行性能:
    • コンパイル言語であるため、実行速度が非常に高速です。これは、大規模なWebサービスや高負荷な処理を伴うアプリケーション開発において大きなメリットとなります。
  • 強力な並行処理:
    • Go言語は「Goroutine(ゴルーチン)」と「Channel(チャネル)」という独自の機能で、並行処理を非常に簡単に記述できます。Goroutineは、まるで軽量な作業員たちがそれぞれ独立してタスクをこなすようなもので、Channelはそれらの作業員たちが安全に情報をやり取りするための連絡通路のようなものです。これにより、マルチコアCPUの性能を最大限に引き出し、効率的なアプリケーションを構築できます。
  • 豊富な標準ライブラリ:
    • ネットワーク、ファイルI/O、暗号化など、開発に必要な多くの機能が標準ライブラリとして提供されており、外部ライブラリに依存することなく開発を進められます。

3. Go開発環境構築の全体像

Go言語の開発環境を構築する上で、主に以下の要素が必要になります。

  1. Go本体のインストール: Go言語のコンパイラや標準ライブラリなど、開発に必要なツール一式を導入します。
  2. 環境変数の設定: Goコマンドが正しく動作するために、GOPATHPATH などの環境変数を設定します。
  3. 開発ツールの導入: コードエディタ(IDE)やLinterなど、開発効率を高めるためのツールを導入します。

この記事では、まずGo本体のインストールと環境変数の設定に焦点を当て、簡単なプログラムの実行までを目標とします。開発ツールの導入については、別の記事で詳しく解説します。


4. macOSでのGoインストール方法

macOSでGoをインストールする方法はいくつかありますが、ここではHomebrewを使った方法と公式インストーラーを使った方法の2つを解説します。Homebrewを使った方法が最も一般的で推奨されます。


4-1. Homebrewを使ったインストール(推奨)

HomebrewはmacOS用のパッケージマネージャーで、Go言語だけでなく様々な開発ツールを簡単にインストール・管理できます。

まだHomebrewをインストールしていない場合は、以下の記事で詳細に解説していますので、是非ご覧ください。

Homebrewのインストールが完了したら、以下のコマンドでGoをインストールします。

brew install go

インストールが完了したら、Goのバージョンを確認してみましょう。

go version

もし go version go1.x.x darwin/amd64 のような出力があれば、インストールは成功です。


4-2. 公式インストーラーを使ったインストール

Homebrewを使わない場合は、Goの公式サイトからインストーラーをダウンロードしてインストールすることも可能です。

  1. Goの公式サイト(https://go.dev/dl/)にアクセスします。
  2. macOS向けの最新版インストーラー(go1.x.x.darwin-amd64.pkg のようなファイル)をダウンロードします。
  3. ダウンロードした .pkg ファイルを実行し、画面の指示に従ってインストールを進めます。

インストールが完了したら、Homebrewの場合と同様に go version コマンドでバージョンを確認してください。


5. Goのバージョン確認と環境変数設定

Goをインストールすると、通常は自動的に環境変数が設定されますが、念のため確認しておきましょう。


5-1. Goのバージョン確認

ターミナルで以下のコマンドを実行します。

go version

期待される出力例:go version go1.21.0 darwin/amd64 (バージョンはインストールしたものによって異なります)


5-2. 環境変数の確認

GoのインストールディレクトリやGOPATH(Goのワークスペース)は、環境変数によって管理されます。以下のコマンドで確認できます。

go env

特に重要なのは PATH です。Go Modulesの導入により、現代のGo開発ではGOPATHを意識する機会は減りましたが、Goの実行ファイルへのパスであるPATHは引き続き重要です。

もし PATH にGoの実行ファイルへのパス(例: /usr/local/go/bin~/go/bin)が含まれていない場合は、.zshrc.bash_profile などのシェル設定ファイルに以下の行を追加して、変更を反映させてください。

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

シェル設定ファイルの編集方法の例:

# .zshrc を開く場合
open -e ~/.zshrc
# または
vi ~/.zshrc

変更を保存した後、以下のコマンドで設定を反映させます。

source ~/.zshrc
# または
source ~/.bash_profile

6. 最初のGoプログラム「Hello World」を実行してみよう

環境構築が完了したら、早速Go言語で最初のプログラムを書いて実行してみましょう。

  1. 作業ディレクトリを作成します。
mkdir hello-go
cd hello-go
  1. main.go というファイルを作成し、以下のコードを記述します。
package main // このファイルが実行可能なプログラムであることを示す

import "fmt" // "fmt"パッケージをインポート。文字列のフォーマットや出力を行う機能が提供される

func main() { // プログラムが最初に実行される関数
    fmt.Println("Hello, Go!") // "Hello, Go!"という文字列をコンソールに出力する
}
  1. ターミナルで以下のコマンドを実行して、プログラムを実行します。
go run main.go

Hello, Go! と出力されれば成功です!

この go run コマンドは、Goのソースコードをコンパイルして実行までを一度に行う便利なコマンドです。


7. Goのアップデートとアンインストール

7-1. Homebrewでインストールした場合

  • アップデート:
brew upgrade go
  • アンインストール:
brew uninstall go

アンインストール後、go version コマンドで command not found と表示されることを確認してください。


7-2. 公式インストーラーでインストールした場合

アップデート:

公式インストーラーには直接的なアップデート機能はありません。新しいバージョンにアップデートするには、以下のいずれかの方法を取ります。

方法1. 既存のGoをアンインストールしてから新しいバージョンをインストールする:

以下のアンインストール手順に従って現在のGoを削除し、その後、Goの公式サイトから最新版のインストーラーをダウンロードしてインストールします。

方法2. 複数のGoバージョンを共存させる:

Goの公式ドキュメントによると、同じマシンに複数のGoバージョンをインストールすることが可能です。新しいバージョンのGoを別の場所にインストールし、環境変数を適切に設定することで、必要に応じてバージョンを切り替えて使用できます。goenv などのバージョン管理ツールを利用すると、この作業をより簡単に行うことができます。

Go 1.21以降では、go install golang.org/dl/go1.X.X@latest コマンドを使用して、特定のGoバージョンをダウンロードし、インストールすることができます。例えば、Go 1.20.7をインストールするには、以下のコマンドを実行します。

go install golang.org/dl/go1.20.7@latest
go1.20.7 download

インストール後、go1.20.7 version のようにバージョン番号を付加してGoコマンドを実行することで、そのバージョンを使用できます。

アンインストール:

Goのアンインストールを行う前に、Goが保存しているユーザー設定やキャッシュ、ダウンロードされた依存関係のデータを削除することをお勧めします。これにより、システムからGo関連のファイルを完全にクリーンアップできます。

  1. ビルドキャッシュの削除:
    Goはビルド時に中間ファイルをキャッシュします。これらは以下のコマンドで削除できます。
go clean -cache
  1. ダウンロードされた依存関係の削除:
    Go Modulesでダウンロードされた依存関係は、以下のコマンドで削除できます。
go clean -modcache

以下のファイルを削除することでアンインストールを実施できます。

  1. /usr/local/go ディレクトリを削除します。
sudo rm -rf /usr/local/go
  1. /etc/paths.d/go ファイルを削除します。
sudo rm -f /etc/paths.d/go
  1. ユーザー設定ディレクトリ内の go ディレクトリを削除します。
rm -rf ~/go

アンインストール後、go version コマンドで command not found と表示されることを確認してください。


まとめ

この記事では、macOSでのGo言語開発環境の構築方法を、Homebrewと公式インストーラーの両面から解説し、Goのバージョン確認、環境変数設定、そして「Hello World」プログラムの実行までを行いました。

これであなたは、Go言語の学習を始めるための強固な基盤を手に入れました。Go言語のシンプルさ、高速性、そして並行処理の強力さをぜひ体験してみてください。

次のステップでは、Go開発をさらに効率化するためのIDE(VS Code)の設定、コード品質を保つためのLinterの導入、そして複数のGoバージョンを管理するための goenv の使い方について詳しく解説します。

Go言語の奥深い世界へ、ようこそ!


免責事項

この記事は、特定の環境下での動作を保証するものではありません。
記事の内容は執筆時点での情報に基づいており、Go言語や関連ツールのアップデートにより、手順や設定が変更される可能性があります。
環境構築やプログラムの実行は、ご自身の責任において行ってください。
万一、この記事の内容によって何らかの損害が生じた場合でも、筆者および公開者は一切の責任を負いかねます。


SNSでもご購読できます。

コメントを残す

*