
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
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
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.