An independent package manager for unix and linuxπ·
Table of contents π
Why?? π©
I am a CTF player (Capture the flag) who often finds myself without my main laptop in places that lack the tools I need. Some distros don't carry the packages I require and some doesn't keep them updated. That's why I created my own package manager :). It fetches tool binaries easily, ensuring I always have what I need to compete.
Dont touch my shrug
Features βΎ
- Versatile : Hysp operates on (*nix) systems and various architectures (x86, aarch64_arm), providing flexibility for your needs.
- Simple : No prerequisites is needed for
Hysp
orhysp-pkgs
. Install Hysp as a single binary, no need for Go, Rust, or any other dependencies. Saves space, storage, and time. - Customizable : Pkg-Source can be self-hosted by anyone, allowing hysp to use your very own instead of the default source and local configuration as well. See #Self hosting
- Statically compiled : The default source
metis-os/hysp-pkgs
) has all statically compiled binaries, only statically linked binaries that will run anywhere. You can always host dynamic or whatever you want. - No Special Privileges : Hysp requires no special perms or privileges. It can run completely in userspace with all of its features.
- Everything is open source : Hysp uses github actions to build and ship the packages. On top of that it uses
sha
for varifying the binary.
7. Security Considerations
It is never a good idea to install random binaries from random sources.
Check these HackerNews Discussions
!# PKG Metadata # Everything is automated via Github Actions & Scripts Repo --> https://github.com/metis-os/hysp-pkgs WorkFlows --> https://github.com/metis-os/hysp-pkgs/tree/main/.github/workflows Scripts --> https://github.com/metis-os/hysp-pkgs/tree/main/.github/scripts !# Upstream Source # Everything is automated via Github Actions & Build Scripts Repo --> https://github.com/Azathothas/Toolpacks WorkFlows --> https://github.com/Azathothas/Toolpacks/tree/main/.github/workflows Build Scripts --> https://github.com/Azathothas/Toolpacks/tree/main/.github/scripts
Installation π©
πͺ Binary
- Manual : You can directly download the binary of your arch and run it.
- One liner : Run this script, requires
jq
,curl
,tar
&wget
wget -qO- "$(curl -qfsSL "https://api.github.com/repos/pwnwriter/hysp/releases/latest" | jq -r '.assets[].browser_download_url' | grep -Ei "$(uname -m).*$(uname -s).*musl" | grep -v "\.sha")" | tar -xzf - --strip-components=1
./hysp -h
πΌ Source
git clone --depth=1 https://github.com/pwnwriter/hysp --branch=main
cd hysp
cargo build --release
Then go to release
dir and ./hysp
or move the binary
to your any $PATH
for instant access from anywhere.
π Cargo
π© METIS Linux
sudo/doas pacman -Sy hysp
π’ Arch user repository
paru/yay -S hysp-git
Hysp usages π
Firstly, if you intend to access the binaries installed via hysp
over the system, you may want to...
π΅οΈ Setup path for hysp bin
-
Add the following line to your shellrc. [
zshrc
,bashrc
etc. ]export PATH="$HOME/.local/share/hysp/bin/:$PATH"
Hosting custom repo πΎ
-
Hysp provies the following configuration, which can be overwritten by defining a
config file
. Default config[source] remote = "https://raw.githubusercontent.com/metis-os/hysp-pkgs/main/data/" aarch = "Architecture" [local] home="/home/user/.local/share/hysp" bin="/home/user/.local/share/hysp/bin/" data="/home/user/.local/share/hysp/data/Architecture/"
-
Explanation
Name | Description | Default |
---|---|---|
remote |
Package repository | metis-os/hysp-pkgs |
home |
Home for hysp |
hysp |
bin |
Directory to save the binaries | ~/.local/share/hysp/bin |
data |
Directory to save pkg data | ~/.local/share/hysp/data/Architecture |
aarch |
Your system Architecture | Only supported X86_64,aarch64 |
π Tree view of the repo
.
βββ available.toml # Storing available pkgs info (Optional)
βββ data
β βββ x86_64 # Your cpu Architecture (aarch64 and x86_64) supported for now
β βββ foo.toml # where the package data are stored (needed)
π Sample pkg
[bin]
name = "$BIN" # Name of the pkg to be installed as
[package]
architecture = "x86_64" # Your aarchitecture
name = "$BIN" # Your package name
description = "$DESCRIPTION" # Description
author = "$AUTHOR" # Author
repo = "$REPO_URL"
stars = "${STARS}"
version = "$PKG_VERSION"
updated = "$PKG_RELEASED"
size = "$SIZE"
sha = "$SHA"
source = "$SOURCE_URL" # Source of the binary wherever it's hosted
language = "$LANGUAGE"
license = "$LICENSE"
[package.conditions]
conflicts = ["$BIN"] # Conflictions
requires = [] # Dependencies
[package.metadata]
keywords = $TOPICS
categories = ["Utilities"]
Packages whuat?? π¦
There is a list of packages available in metis-os/hysp-pkgs
. You can confidently utilize the default configuration without any hesitation. However, if you prefer to host your own packages, you have the option to do so by creating your own custom configuration file under ~/.config/hysp/config.toml
. See #repo
Support π
I am a student currently attending university. I like working for Open Source in my free time. If you find my tool or work beneficial, please consider supporting me via KO-FI or ESEWA* (Nepal only), Or by leaving a star β ; I'll appreciate your action :)
License γοΈ
Everything is license under the MIT
except for the packages... They hold their own livess :oOO
Copyright Β© 2023 pwnwriter xyz βοΈ