GitHub Releaseからバイナリを手動ダウンロードしていませんか? OS・アーキテクチャごとにアセット名が違い、curlスクリプトが肥大化した経験はないでしょうか。
Egetを使えば、ワンコマンドで正しいバイナリを自動取得できます。
# これだけでfdがインストールされる
eget sharkdp/fd --to ~/bin/fd
Egetの特徴
- OS・アーキテクチャを自動判別してダウンロード
-
x86_64/amd64/64-bitなどの表記揺れを吸収 - 設定ファイル(
eget.toml)で複数ツールを一括管理・更新 - 依存ゼロ:単一バイナリをダウンロードして実行権限を与えるだけで動作
従来の方法の問題点
GitHub Releaseからバイナリをインストールするスクリプトを自前で書くと、様々な表記揺れに対応する必要があります。以下はその一例です。
| 項目 | 表記パターン例 |
|---|---|
| アーキテクチャ |
x86_64, amd64, 64-bit, x64
|
| OS |
darwin, macos, osx, apple
|
| バージョン |
v1.0.0, 1.0.0
|
| 拡張子 |
.tar.gz, .zip, .tar.xz
|
典型的なcurlスクリプトは50行を超えることも珍しくありません。
Egetはこれらの違いを自動で吸収します。macOSとLinuxのどちらでも同じコマンドでインストールできます。
インストール
macOS
brew install eget
Linux / WSL
curl -o eget.sh https://zyedidia.github.io/eget.sh
shasum -a 256 eget.sh # 検証推奨
sh eget.sh
eget自身の更新
一度インストールすれば、eget自身の更新もegetで行えます。
eget zyedidia/eget --to ~/bin/eget
基本的な使い方
ツールをインストールする
eget junegunn/fzf --to ~/bin/fzf
https://github.com/junegunn/fzf/releases/download/v0.68.0/fzf-0.68.0-darwin_arm64.tar.gz
Downloading 100% [==========================] (1.7/1.7 MB, 18.667 MB/s)
Extracted `fzf` to `/Users/satoy/bin/fzf`
OS(darwin)とアーキテクチャ(arm64)が自動判別され、適切なアセットがダウンロードされます。
バージョンを固定してインストールする
--tag オプションでバージョンを固定できます。
eget sharkdp/fd --tag v10.2.0 --to ~/bin/fd
https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-aarch64-apple-darwin.tar.gz
Downloading 100% [==========================] (1.2/1.2 MB, 16.375 MB/s)
Extracted `fd-v10.2.0-aarch64-apple-darwin/fd` to `/Users/satoy/bin/fd`
複数アセットから選択する
ツールによっては複数のアセットがマッチすることがあります。
eget mikefarah/yq --to ~/bin/yq
2 matches found: please select manually
(1) yq_darwin_arm64
(2) yq_darwin_arm64.tar.gz
Enter selection number:
--asset オプションで絞り込めます。^ で否定マッチが可能です。
# tar.gzを除外して単体バイナリを取得
eget mikefarah/yq --to ~/bin/yq --asset "^.tar.gz"
https://github.com/mikefarah/yq/releases/download/v4.52.4/yq_darwin_arm64
Downloading 100% [============================] (12/12 MB, 18.198 MB/s)
Extracted `yq_darwin_arm64` to `/Users/satoy/bin/yq`
チェックサムでダウンロードを検証する
--sha256 オプションでダウンロードしたファイルのハッシュを確認できます。
eget sharkdp/bat --sha256 --to ~/bin/bat
https://github.com/sharkdp/bat/releases/download/v0.26.1/bat-v0.26.1-aarch64-apple-darwin.tar.gz
Downloading 100% [==========================] (3.1/3.1 MB, 20.696 MB/s)
e30beff26779c9bf60bb541e1d79046250cb74378f2757f8eb250afddb19e114
Extracted `bat-v0.26.1-aarch64-apple-darwin/bat` to `/Users/satoy/bin/bat`
事前にハッシュ値がわかっている場合は --verify-sha256 で検証できます。
eget sharkdp/bat \
--verify-sha256 e30beff26779c9bf60bb541e1d79046250cb74378f2757f8eb250afddb19e114 \
--to ~/bin/bat
複数ツールを設定ファイルで一括管理する
~/.eget.toml に定義しておくと、eget -D で一括インストールできます。
[global]
target = "~/bin"
["sharkdp/fd"]
["sharkdp/bat"]
["BurntSushi/ripgrep"]
["junegunn/fzf"]
["mikefarah/yq"]
asset_filters = ["^.tar.gz"]
["zyedidia/eget"]
# 全ツールを一括インストール
eget -D
# 新バージョンがある場合のみ更新
eget -D --upgrade-only
1つのリリースから複数バイナリをインストールする
リリースに複数のバイナリが含まれる場合、file と all オプションで一括インストールできる。
["joemckenney/wake"]
file = "wake-*/wake*"
all = true
eget joemckenney/wake --file "wake-*/wake*" --all --to ~/bin
https://github.com/joemckenney/wake/releases/download/v0.7.0/wake-v0.7.0-aarch64-apple-darwin.tar.gz
Downloading 100% [==========================] (5.8/5.8 MB, 23.338 MB/s)
Extracted `wake-v0.7.0-aarch64-apple-darwin/wake` to `/Users/satoy/bin/wake`
Extracted `wake-v0.7.0-aarch64-apple-darwin/wake-mcp` to `/Users/satoy/bin/wake-mcp`
| オプション | 説明 |
|---|---|
--file |
アーカイブ内のファイルパスをglobで指定 |
--all |
マッチした全ファイルを展開(デフォルトは1つ) |
主要オプション一覧
| オプション | 説明 |
|---|---|
--to |
インストール先を指定 |
--tag / -t
|
バージョン指定 |
--asset / -a
|
アセット名でフィルタ(^ で除外) |
--file |
アーカイブ内のファイルパスをglobで指定 |
--all |
マッチした全ファイルを展開 |
--upgrade-only |
新バージョンがある場合のみ更新 |
-D |
設定ファイルの全ツールをインストール |
--sha256 |
ダウンロードしたファイルのハッシュを表示 |
--verify-sha256 |
指定したハッシュ値で検証 |
--pre-release |
プレリリースも含めて最新版を取得 |
--rate |
GitHub APIのレート制限情報を表示 |
-q |
静かに実行 |
制約事項
GitHub APIレート制限に注意する
未認証の場合、1時間あたり60リクエストの制限があります。
eget --rate
Limit: 60, Remaining: 54, Reset: 2026-02-25 00:21:08 +0900 JST (59m30s)
大量のツールを一括インストールする場合は、GITHUB_TOKEN 環境変数を設定することで制限を緩和できます(5,000リクエスト/時間)。
export GITHUB_TOKEN=ghp_xxxxxxxxxxxx
eget -D
アンインストールは手動で行う
egetにはアンインストール機能がありません。--to で指定した先のバイナリを手動で削除してください。
rm ~/bin/fd
まとめ
| やりたいこと | コマンド |
|---|---|
| 最新版をインストール | eget owner/repo --to ~/bin/tool |
| バージョン固定 | eget owner/repo --tag v1.0.0 --to ~/bin/tool |
| 特定アセットを選択 | eget owner/repo --asset "keyword" --to ~/bin/tool |
| 一括インストール | eget -D |
| 一括更新 | eget -D --upgrade-only |