Eget - GitHubのリリースページからプレビルドバイナリをダウンロード・インストール

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 20240912 114348

最近は多数のソフトウェアプロジェクトがGitHubでホストされていて、ソースコードだけでなく、すぐに実行できるバイナリファイルが配布されている事もあります。

GitHubのリリースページからバイナリをダウンロードしてインストールするのは少し面倒な作業ですが、この作業を簡単化してくれるツール「Eget」が公開されています。

Egetは、お気に入りのツールのビルド済みバイナリを簡単に入手することができるツールで、GitHubのリリースからビルド済みバイナリをダウンロード・抽出することができます。

Egetにリポジトリを指定すると、システムに適した最新のビルド済みバイナリが検索され、見つかった場合は、アセットがダウンロードされ、バイナリをカレントディレクトリに展開します(指定フォルダに展開することもできます)。

Egetはバイナリが一つだけ含まれる、シンプルで静的なビルド済みバイナリのインストールに適していて、より複雑なインストールには、-download-onlyオプションを使用することが推奨されています。

以下使用方法を説明します。

目次

Egetの使用方法

Egetは以下の方法でインストールすることができます。

curl https://zyedidia.github.io/eget.sh | sh

スクリプトを実行するとegetファイルがカレントディレクトリに保存されます。/usr/local/binなどパスが通ったディレクトリにコピーします。

使用方法は簡単で「eget リポジトリ」と実行します。

ripgrepをダウンロードしたい場合次のように実行します。

eget BurntSushi/ripgrep

この場合カレントディレクトリにrgファイル(ripgrepの実行ファイル)が展開されます。

展開先を指定する場合--to /usr/local/binのようにオプションを追加します。

eget jgm/pandoc --to /usr/local/bin

この場合/usr/local/binへ展開されますが、展開先ディレクトリの書き込み権限が必要となります。

neovimのようにファイルがいくつか含まれていてどのファイルを展開すれば良いのか決められない場合、ユーザーが展開したいファイルを指定する必要があります。

eget neovim/neovim
https://github.com/neovim/neovim/releases/download/v0.10.1/nvim-macos-x86_64.tar.gz
Downloading 100% [========================================================] (8.6/8.6 MB, 19.616 MB/s)
Checksum verified with nvim-macos-x86_64.tar.gz.sha256sum
12 candidates for target exe `neovim` found: please select manually
(1) nvim-macos-x86_64/bin/nvim
(2) nvim-macos-x86_64/lib/nvim/parser/c.so
(3) nvim-macos-x86_64/lib/nvim/parser/vim.so
(4) nvim-macos-x86_64/lib/nvim/parser/markdown.so
(5) nvim-macos-x86_64/lib/nvim/parser/vimdoc.so
(6) nvim-macos-x86_64/lib/nvim/parser/lua.so
(7) nvim-macos-x86_64/lib/nvim/parser/query.so
(8) nvim-macos-x86_64/lib/nvim/parser/markdown_inline.so
(9) nvim-macos-x86_64/share/nvim/runtime/indent/Makefile
(10) nvim-macos-x86_64/share/nvim/runtime/pack/dist/opt/matchit/doc/tags
(11) nvim-macos-x86_64/share/nvim/runtime/macros/less.sh
(12) nvim-macos-x86_64/share/nvim/runtime/doc/tags
(13) all
Enter selection number: 1
Extracted `nvim-macos-x86_64/bin/nvim` to `nvim`

その他にも多数のオプションを指定することができます。

Usage:
  eget [OPTIONS] TARGET

Application Options:
  -t, --tag=           tagged release to use instead of latest
      --pre-release    include pre-releases when fetching the latest version
      --source         download the source code for the target repo instead of a release
      --to=            move to given location after extracting
  -s, --system=        target system to download for (use "all" for all choices)
  -f, --file=          glob to select files for extraction
      --all            extract all candidate files
  -q, --quiet          only print essential output
  -d, --download-only  stop after downloading the asset (no extraction)
      --upgrade-only   only download if release is more recent than current version
  -a, --asset=         download a specific asset containing the given string; can be specified multiple times for additional filtering; use ^ for anti-match
      --sha256         show the SHA-256 hash of the downloaded asset
      --verify-sha256= verify the downloaded asset checksum against the one provided
      --rate           show GitHub API rate limiting information
  -r, --remove         remove the given file from $EGET_BIN or the current directory
  -v, --version        show version information
  -h, --help           show this help message
  -D, --download-all   download all projects defined in the config file
  -k, --disable-ssl    disable SSL verification for download

なおEgetはGitHubのAPIを利用していますが、認証されていないユーザーのAPIリクエストは1時間あたり60件に制限されています。それ以上のリクエス(1時間あたり5,000件まで)を行いたい場合は、個人用のアクセストークンを設定し、GITHUB_TOKENまたはEGET_GITHUB_TOKENという環境変数に代入しておくと良いそうです。

また~/.eget.tomlファイルを準備し、デフォルトのインストール先などを指定することもできます。

[global]
target = "~/bin"

["zyedidia/micro"]
target = "~/.local/bin"

まとめ

EgetはGitHubからビルド済みのバイナリをダウンロードしインストールすることができる便利なツールです。macOSの場合Homebrew経由でインストールできることも多いのですが、Homebrewを使っていない方や、LinuxやWindowsなど、他のプラットフォームを使っている方におすすめのツールです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次