gobrew
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
スター履歴
データ取得日時: 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
# 公式サイトからダウンロードしたバイナリを配置