Awesome
Jitter
A repository-oriented binary manager for Linux
Notice
I may revist this project and rework it in the future.
How it works
Jitter searches through GitHub(and hopefully soon more sources) for releases with .tar.gz
, .tgz
, .zip
or .AppImage
assets. Unlike Homebrew or similar package managers, Jitter does not require a brewfile or nixfile in order to recognize the project.
Installing
Before installing, make sure you have glibc installed on your distro.
Using the install.sh
script (recommended):
wget -qO- https://github.com/sharpcdf/jitter/raw/main/install.sh | bash
To pass flags such as --force
or --uninstall
use:
wget -qO- https://github.com/sharpcdf/jitter/raw/main/install.sh | bash -s -- --flag
Through Nimble:
nimble install https://github.com/sharpcdf/jitter
Manually (versions above 0.3.0): Download the latest release and run
./jtr setup
Uninstalling
Through the install.sh script:
wget -qO- https://github.com/sharpcdf/jitter/raw/main/install.sh | bash -s -- --uninstall
Notes
- Right now, Jitter only supports GitHub as a download source.
- You may encounter bugs as this project is still in development, please create an issue if you encounter anything wrong with jitter :)
- On Ubuntu or other distros, you may need to run
sudo apt install glibc-source
or similiar in order to use jitter. - Because Jitter has no way of knowing what executable is meant to be run by the end user, it uses a loose method of finding the executables, and therefore there may be irrelavant executables added to the bin.
- Jitter requires git to be installed when using the -g flag
Building
Clone the repository and run nimble build
to create a release version, or nim debug
to debug the code after making changes.
(You need to have Nim and Nimble installed).
git clone https://github.com/sharpcdf/jitter
cd jitter
nimble build
Usage
❯ jtr -h
A repository-oriented binary manager for Linux
Usage:
[options] COMMAND
Commands:
install Installs the given repository, if avaliable. [gh:][user/]repo[@tag]
update Updates the specified package, Jitter itself, or all packages if specified. [user/repo[@tag]][all][this|jitter|jtr]
remove Removes the specified package from your system. user/repo[@tag]
search Searches for repositories that match the given term, returning them if found. [user/]repo
list Lists all executables downloaded.
catalog Lists all installed packages.
setup Creates needed directories if they do not exist
Options:
-h, --help
-v, --version
--no-make If makefiles are found in the downloaded package, Jitter ignores them. By default, Jitter runs all found makefiles.
--exactmatch When searching for a repository, only repositories with the query AS THEIR NAME will be shown. Jitter shows any repository returned by the query.
-g Clones the repo, and looks for makefiles or supported file types to build, then adds built executables to the bin
Example Usage
jtr install gh:VSCodium/vscodium
- installs repository VSCodium/vscodium from github.jtr install vscodium
- searches for all repositories that have the namevscodium
, and then installs the chosen onejtr search vscodium
- searches and lists all repositories that havevscodium
in their name.jtr search VSCodium/vscodium
- searches and lists all release tags of repositoryVSCodium/vscodium
jtr list
- lists all executables in jitter's bin.jtr catalog
- lists all downloaded repositoriesjtr remove VSCodium/vscodium
- removes VSCodium/vscodium from your systemjtr install VSCodium/vscodium@1.69.0
- installs VSCodium/vscodium release with the tag1.69.0
jtr update VSCodium/vscodium
- updates vscodium to the latest versionbroken in the code revamp, being worked onjtr update (this|jitter|jtr)
- updates jitter to the latest releasejtr update all
- updates all installed packages
Note: repositories are case insensitive, and all AppImage file names are converted to the name of the repository. jtr install VSCodium/vscodium
is equivalent to jtr install vscodium/vscodium
.