Ghostboard pixel

Stop Manually Checking GitHub Releases — These Tools Automatically Install & Update Apps on Linux

These handy utilities tools simplify installing and managing binaries from GitHub releases on Linux.
Warp Terminal

Package managers are essential tools on Linux systems. They help you install, update, and remove software packages with simple commands. Most distributions come with their own package managers, like apt, dnf, or pacman.

However, many modern tools are distributed as pre-compiled binaries via GitHub releases. Developers using languages like Go, Rust, and Deno often release their software this way. New projects that are not included in the official distro repository yet have to opt for this method.

This creates a gap between traditional package managers and these GitHub-hosted releases.

Recently we covered Eget, a command utility that fetches appropriate binary from the given GitHub repo. You don't have to manually visit the release page of the application's GitHub repo, look for the available binary files and then install it. Eget does all that from the comfort of the command line.

But Eget is not unique. There are many more such package management tools. They let you install binaries, also handle updates, letting you track new releases without having to manually checking repositories.

Let's take a look at some of these package managers for you to explore.

GitHub Binary Download Tools

Tool Primary Focus Language GitHub Stars
deb-get Debian/Ubuntu packages Bash 1.5k
Autonomix GUI package manager Rust 6
Eget Simple binary installer Go 1.8k
Install Release Good Git support Python 104
bin Multi-source manager Go 1k
stew Install binaries from URL Go 309
AFX Shell plugins + binaries Go 179

1. deb-get

a screenshot of deb-get in action

deb-get brings apt-get functionality to third-party .deb packages. It works specifically with Debian and Ubuntu-based distributions. The tool handles packages from GitHub releases, PPAs, and direct downloads. It is developed by Martin Wimpress, the creator of Ubuntu MATE.

The project maintains a curated repository of supported software. This includes popular applications not available in official repositories. Installation is straightforward with commands similar to apt.

deb-get works better with a GitHub Personal Access Token for updates. This avoids rate-limiting issues when checking for new releases. The tool also supports external repositories for custom package definitions.

You can install deb-get on Debian, Ubuntu, or any derivatives by using this command:

sudo apt install curl lsb-release wget
curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get

Run this to learn the standard commands to use deb-get:

deb-get help

2. Autonomix

a screenshot of autonomix in action

Autonomix is the only GUI-based option in this list. It uses GTK4 and libadwaita for a modern interface. The tool works similarly to Obtainium, which Android users might recognize.

The application supports multiple package formats, including .deb, .rpm, AppImage, Flatpak, and Snap. It stores package information in a local database. You can track releases and install updates with a single click.

Autonomix is a relatively new one with active development. It handles system-level packages using pkexec for privilege elevation. The tool can also manage user packages like Flatpak and AppImage without requiring root access.

You can get Autonomix for Debian, Ubuntu, and their derivatives by downloading the .deb from GitHub and running the following command while being in the same directory:

sudo dpkg -i autonomix_*.deb
sudo apt-get install -f  # Fix any dependency issues

You can do the same for Fedora or RHEL by downloading the .rpm and running this command:

sudo dnf install autonomix-*.rpm

3. Eget

a screenshot of eget in action

Eget focuses on simplicity and minimal configuration. The tool downloads pre-built binaries from GitHub repositories and extracts them automatically. It works across Linux, BSD, and macOS.

The project requires no setup files or complex configuration. You provide a repository URL, and Eget handles the rest. It supports version-specific installations using tags. You can also download pre-releases if needed. The tool includes options for hash verification and custom installation paths.

You can learn how to install it in our guide here. 👇

Easily Install Binaries in Linux Terminal With This Tool
Easy way to get binaries from GitHub repositories and install the applications. Learn more about eget.

4. Install Release

a screenshot of install release in action

Install Release uses Python and provides a CLI tool named ir. It supports both GitHub and GitLab releases. The tool stores state information in JSON format for tracking installed packages.

A major feature is state file synchronization. You can push your configuration to a repository and pull it on other machines. This makes it easy to maintain consistent tools across multiple systems.

The tool handles architecture detection automatically. It provides commands for listing, updating, and holding specific packages.

You can get Install Release using pip:

pip install -U install-release

5. bin

a screenshot of bin in action

bin is a cross-platform binary manager without much configuration work. It supports multiple sources, including GitHub, GitLab, Codeberg, Docker images, and Hashicorp releases. The tool even handles Go install packages.

The project works without requiring root privileges. Binaries install to user directories by default. bin includes version tracking and rollback capabilities for all managed packages.

It maintains a configuration file to track installations. The tool supports GitHub Enterprise for private repositories.

You can download the package for your platform from GitHub, then follow the instructions listed in the repository.

6. stew

a screenshot of stew in action

stew introduces declarative package management through Stewfiles. These files define your binary installations with optional version pinning.

The tool provides headless installation from a Stewfile.lock.json file. This enables reproducible setups across different machines. It also includes an interactive terminal UI for browsing and selecting releases.

You will find the necessary files and instructions to get stew running on Linux on the GitHub repo linked above.

7. AFX

a screenshot of afx in action

AFX manages both CLI binaries and shell plugins. It uses YAML configuration files for package definitions. The tool works with bash, zsh, and fish shells.

Packages can include environment variables, aliases, and build steps. AFX supports conditional installation based on system properties. You can define dependencies between different packages.

The tool handles GitHub releases, Gist, HTTP downloads, and local files. It provides shell integration through an init command.

The files and instructions to get AFX are in the GitHub repo linked above.

About the author
Sourav Rudra

Sourav Rudra

A nerd with a passion for open source software, custom PC builds, motorsports, and exploring the endless possibilities of this world.

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

itsfoss happy penguin

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.