0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Eget】依存ゼロ・1ファイルの超軽量パッケージマネージャ

0
Last updated at Posted at 2026-02-24

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つのリリースから複数バイナリをインストールする

リリースに複数のバイナリが含まれる場合、fileall オプションで一括インストールできる。

["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

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?