gobrew

バージョン管理GoGolang開発環境CLI高速クロスプラットフォーム

GitHub概要

kevincobain2000/gobrew

Go version manager, written in Go. Super simple tool to install and manage Go versions. Install go without root. Gobrew doesn't require shell rehash.

スター396
ウォッチ7
フォーク29
作成日:2021年2月15日
言語:Go
ライセンス:MIT License

トピックス

envgogoenvgolanggolang-cligolang-packagegolang-toolsinstallmanagement

スター履歴

kevincobain2000/gobrew Star History
データ取得日時: 2025/7/20 03:00

言語バージョン管理ツール

gobrew

概要

gobrewは、Go言語で実装された高速でシンプルなGoバージョン管理ツールです。kevincobain2000によって開発され、nodebrewにインスパイアされた設計を採用しています。root権限不要でインストールでき、シェルのrehashも必要ありません。Windows、macOS、Linux、さらにARMアーキテクチャもネイティブサポートしています。

詳細

主な特徴

  • Go言語実装: 高速で安定した動作
  • クロスプラットフォーム: Windows、macOS、Linux、ARM完全対応
  • 自動バージョン検出: go.modファイルからバージョンを自動認識
  • スマートバージョン選択: latest、dev-latest、特定メジャーバージョンの最新版指定
  • キャッシュ機能: ダウンロード済みバイナリの高速再利用
  • セルフアップデート: gobrew自体の更新も簡単
  • シンプルなコマンド: 直感的で覚えやすいコマンド体系

アーキテクチャ

  • インストール場所: デフォルトで ~/.gobrew に配置
  • バイナリ管理: versions/ ディレクトリに各バージョンを保存
  • 現在バージョン: current/ シンボリックリンクで管理
  • 環境変数: GOBREW_ROOTでカスタマイズ可能

特徴的な機能

  • modファイル連携: gobrew use mod でgo.modから自動設定
  • 柔軟なバージョン指定: 1.21@latest、1.20@dev-latest などの指定が可能
  • プルーン機能: 使用していないバージョンを一括削除
  • TTLキャッシュ: ダウンロードキャッシュの有効期限設定

メリット・デメリット

メリット

  • 圧倒的な速度: Go実装による高速な動作
  • Windows完全対応: PowerShellでネイティブ動作
  • ゼロ設定: インストール後すぐに使用可能
  • 直感的: シンプルで分かりやすいコマンド
  • 最新版追従: 新しいGoリリースに自動対応
  • 軽量: 最小限のディスク使用量
  • ARM対応: M1/M2 Macやラズベリーパイでも動作

デメリット

  • パッケージセット機能なし: プロジェクト別の依存関係管理は非対応
  • カスタマイズ性: 高度な設定オプションが少ない
  • コミュニティ: gvmやgと比較して利用者が少ない
  • プラグインなし: 拡張機能のエコシステムがない
  • 自動切り替えなし: ディレクトリ移動時の自動バージョン切り替え非対応

参考ページ

書き方の例

インストール

# Linux/macOS(推奨方法)
curl -sLk https://raw.githubusercontent.com/kevincobain2000/gobrew/master/git.io.sh | sh

# Windows PowerShell
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/kevincobain2000/gobrew/master/git.io.ps1'))

# 環境変数の設定(~/.bashrc or ~/.zshrc)
export PATH="$HOME/.gobrew/current/bin:$HOME/.gobrew/bin:$PATH"

# カスタムインストール場所
export GOBREW_ROOT=/opt/gobrew
curl -sLk https://raw.githubusercontent.com/kevincobain2000/gobrew/master/git.io.sh | sh

基本的な使い方

# 利用可能なバージョンを表示
gobrew ls-remote

# RC/Betaバージョンも含めて表示
gobrew ls-remote --include-rc

# 最新安定版をインストールして使用
gobrew use latest

# 特定バージョンをインストール
gobrew use 1.21.5
gobrew use 1.20.12

# インストール済みバージョンを表示
gobrew list

# 現在使用中のバージョンを確認
gobrew current
go version

高度なバージョン管理

# go.modからバージョンを読み取って設定
gobrew use mod

# 開発版の最新をインストール
gobrew use dev-latest

# 特定メジャーバージョンの最新版
gobrew use 1.21@latest
gobrew use 1.20@dev-latest

# バージョンのインストールのみ(切り替えなし)
gobrew install 1.21.5
gobrew install 1.22rc1

# バージョンのアンインストール
gobrew uninstall 1.19.13

# 現在使用中以外をすべて削除
gobrew prune

プロジェクトでの活用

# プロジェクトディレクトリで作業
cd ~/projects/my-app

# go.modファイルの確認
cat go.mod
# module example.com/my-app
# go 1.21

# go.modに基づいて自動設定
gobrew use mod

# 開発作業
go build
go test ./...

# 別プロジェクトへ移動
cd ~/projects/legacy-app
# go.modが1.20を指定している場合
gobrew use mod  # 自動的に1.20.xをインストール・使用

キャッシュとパフォーマンス

# キャッシュを使用してインストール(デフォルト)
gobrew use 1.21.5

# キャッシュをクリア
gobrew --clear-cache use 1.21.5
gobrew -c use 1.21.5

# キャッシュを無効化
gobrew --disable-cache use 1.21.5
gobrew -d use 1.21.5

# キャッシュTTLを設定(デフォルト20分)
gobrew --ttl=30m use 1.21.5
gobrew -t 30m use 1.21.5

gobrewの管理

# gobrew自体をアップデート
gobrew self-update

# バージョン確認
gobrew version

# ヘルプ表示
gobrew help
gobrew -h

# アンインストール
# Linux/macOS
rm -rf ~/.gobrew
# 環境変数の設定も削除

# Windows
Remove-Item -Recurse -Force "$env:USERPROFILE\.gobrew"

CI/CD環境での使用

# GitHub Actions
# - name: Install gobrew
#   run: |
#     curl -sLk https://raw.githubusercontent.com/kevincobain2000/gobrew/master/git.io.sh | sh
#     echo "$HOME/.gobrew/current/bin:$HOME/.gobrew/bin" >> $GITHUB_PATH
#
# - name: Install Go
#   run: gobrew use mod  # go.modから自動設定

# Dockerfile
# FROM ubuntu:latest
# RUN apt-get update && apt-get install -y curl
# RUN curl -sLk https://raw.githubusercontent.com/kevincobain2000/gobrew/master/git.io.sh | sh
# ENV PATH="/root/.gobrew/current/bin:/root/.gobrew/bin:${PATH}"
# COPY go.mod .
# RUN gobrew use mod

トラブルシューティング

# インストールパスの確認
which gobrew
which go
echo $GOBREW_ROOT

# 環境変数の確認
gobrew env

# 詳細ログの表示
GOBREW_DEBUG=1 gobrew use 1.21.5

# 権限エラーの解決
chmod -R 755 ~/.gobrew

# ネットワークエラー時の対処
# プロキシ設定
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080

# 手動でバイナリを配置
mkdir -p ~/.gobrew/versions/1.21.5
# 公式サイトからダウンロードしたバイナリを配置