
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Simple package manager to easily install, update and manage any command-line(CLI) tool directly from github releases
Install Release is a CLI tool by name ir
to install any single-binary executable package for your device(Linux/MacOS/WSL) directly from their GitHub releases and keep them updated. Consider it as a small package manager to install single binary tools from GitHub releases.
This can be any tool you want to install, which is pre-compiled for your device and present on GitHub releases.
INFO: It's mainly for installing tools that are not directly available officially by package managers like
apt, yum, pacman, brew
etc.
install-release
package 📦install-release
🔄ir --help
💡
# Install ir
pip install -U install-release
Example Installation a tool named deno(A modern runtime for JavaScript and TypeScript) directly from its GitHub releases.
# ir get [GITHUB-URL]
❯ ir get https://github.com/denoland/deno
Checking for deno is installed by install-release
:
❯ which deno
~/bin/deno
❯ deno --version
deno 1.46.3 (stable, release, x86_64-unknown-linux-gnu)
v8 12.9.202.5-rusty
typescript 5.5.2
python3.8 or higher
Default releases Installation Path is: ~/bin/
,
This is the path where installed tools will get stored.
In order to run installed tools, you need to add the following line to your ~/.bashrc
or ~/.zshrc
file:
export PATH=$HOME/bin:$PATH
install-release
package 📦pip install -U install-release
install-release
🔄For seeing version:
ir me --version
For updating:
ir me --upgrade
ir --help
💡# Help page
❯ ir --help
Usage: ir [OPTIONS] COMMAND [ARGS]...
GitHub Release Installer, based on your system
Commands:
get | Install GitHub release, cli tool
ls | list all installed releases, cli tools
rm | remove any installed release, cli tools
upgrade | Upgrade all installed releases, cli tools
state | show currently stored state
config | Set configs for tool
pull | Install tools from a remote state
hold | Keep updates a tool on hold.
me | Update ir tool.
For sub-command help use: ir <sub-command> --help
Example: ir get --help
# ir --install-completion [SHELL: bash|zsh|fish|powershell]
# Example for zsh:
ir --install-completion zsh
❯ ir get "https://github.com/ahmetb/kubectx"
📑 Repo : ahmetb/kubectx
🌟 Stars : 13295
✨ Language : Go
🔥 Title : Faster way to switch between clusters and namespaces in kubectl
🚀 Install: kubectx
┏━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┓
┃ Name ┃ Selected Item ┃ Version ┃ Size Mb ┃ Downloads ┃
┡━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━┩
│ kubectx │ kubectx_v0.9.4_linux_x86_64.tar.gz │ v0.9.4 │ 1.0 │ 43811 │
└─────────┴────────────────────────────────────┴─────────┴─────────┴───────────┘
Install this tool (Y/n): y
INFO Downloaded: 'kubectx_v0.9.4_linux_x86_64.tar.gz' at /tmp/dn_kubectx_ph6i7dmk utils.py:159
INFO install /tmp/dn_kubectx_ph6i7dmk/kubectx /home/noobi/bin/kubectx core.py:132
INFO Installed: kubectx
# checking if kubectx is installed
❯ which kubectx
/home/noobi/bin/kubectx
❯ kubectx --version
0.9.4
❯ ir ls
Installed tools
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name ┃ Version ┃ Url ┃
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ terrascan │ v1.15.2 │ https://github.com/tenable/terrascan │
│ gron │ v0.7.1 │ https://github.com/tomnomnom/gron │
│ kubectx │ v0.9.4 │ https://github.com/ahmetb/kubectx │
└───────────┴─────────┴──────────────────────────────────────┘
# Remove installed release
❯ ir rm gron
INFO Removed: gron
❯ ir upgrade
Fetching: https://github.com/tenable/terrascan#terrascan
Fetching: https://github.com/ahmetb/kubectx#kubectx
Following tools will be upgraded:
terrascan
Upgrade these tools, (Y/n): y
Updating: terrascan, v1.15.0 => v1.15.2
INFO Downloaded: 'terrascan_1.15.2_Linux_x86_64.tar.gz' at /tmp/dn_terrascan_0as71a6v
INFO install /tmp/dn_terrascan_0as71a6v/terrascan ~/bin/terrascan
INFO Installed: terrascan
Progress... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
You can push your state to somewhere like GitHub and use it for any other device, to make a sync for tools installed via ir
❯ ir pull --url https://raw.githubusercontent.com/Rishang/dotFiles/main/templates/install-release/state.json
In case you want to hold an update to the specific tool, you can use hold {tool-name}
command which will pause update for that tool.
Example: keep tool named k9s update on hold
❯ ir hold k9s
INFO Update on hold for, k9s to True
You can list tools on hold updates by ls --hold
command
❯ ir ls --hold
Installed tools kept on hold
┏━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name ┃ Version ┃ Url ┃
┡━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ k9s │ v0.26.7 │ https://github.com/derailed/k9s │
└──────┴─────────┴───────────────────────────────────┘
In case you want to unhold update to the specific tool, you can use hold --unset {tool-name}
command by which it will pause update for that tool.
❯ ir hold --unset k9s
INFO Update on hold for, k9s to False
❯ ir config --path ~/.local/bin
INFO updated path to: ~/.local/bin
INFO Done
This is useful when you want to install pre-release versions of tools like beta or alpha releases. By default, it is set to False
in which case it will only check for latest release.
❯ ir config --pre-release
❯ ir config --token [your github token]
INFO: Update token
INFO: Done.
FAQs
Simple package manager to easily install, update and manage any command-line(CLI) tool directly from github releases
We found that install-release demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.