-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
This guide covers all methods of installing Zero Layer on your system.
- OS: Any Linux distribution (x86_64)
- Kernel: Linux 4.x or later
- libc: glibc 2.17+ or musl
- Disk: ~15 MB for the binary, plus space for installed packages
Note: ZL is a single static binary. It has no runtime dependencies — no Python, no Node.js, no shared libraries needed.
Download the latest release directly:
curl -Lo zl https://github.com/supercosti21/zero_layer/releases/latest/download/zl-x86_64-unknown-linux-gnu
chmod +x zl
sudo mv zl /usr/local/bin/mkdir -p ~/.local/bin
curl -Lo ~/.local/bin/zl https://github.com/supercosti21/zero_layer/releases/latest/download/zl-x86_64-unknown-linux-gnu
chmod +x ~/.local/bin/zlIf you install to ~/.local/bin, make sure it's in your PATH:
# Bash — add to ~/.bashrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Zsh — add to ~/.zshrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# Fish
fish_add_path ~/.local/binRequires Rust 1.85+ (edition 2024).
If you don't have Rust installed:
# Recommended: via rustup (works on any distro)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
# Arch Linux alternative
sudo pacman -S rust
# Fedora alternative
sudo dnf install rust cargo
# Ubuntu/Debian alternative
sudo apt install rustc cargoImportant: Distribution packages may ship older Rust versions. ZL requires Rust 1.85+. Use
rustupif your distro's Rust is too old. Check withrustc --version.
git clone https://github.com/supercosti21/zero_layer.git
cd zero_layer
cargo build --releaseThe binary will be at target/release/zl.
# System-wide
sudo cp target/release/zl /usr/local/bin/
# Or user-local
mkdir -p ~/.local/bin
cp target/release/zl ~/.local/bin/If ZL is already installed, update to the latest version:
zl self-updateThis downloads the latest release binary from GitHub and replaces the current binary in-place.
ZL installs package executables to ~/.local/share/zl/bin/. You need to add this to your PATH so installed packages are accessible:
# Bash — add to ~/.bashrc
echo 'export PATH="$HOME/.local/share/zl/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Zsh — add to ~/.zshrc
echo 'export PATH="$HOME/.local/share/zl/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# Fish — run once
fish_add_path ~/.local/share/zl/binTab completions make ZL much easier to use:
# Bash — add to ~/.bashrc
echo 'eval "$(zl completions bash)"' >> ~/.bashrc
# Zsh — add to ~/.zshrc
echo 'eval "$(zl completions zsh)"' >> ~/.zshrc
# Fish — run once
zl completions fish > ~/.config/fish/completions/zl.fishzl --version
zl --helpSome sources require syncing before you can search or install:
# Arch Linux repos (pacman)
zl update --from pacman
# Debian/Ubuntu repos (apt)
zl update --from apt
# Fedora repos (dnf)
zl update --from dnf
# openSUSE repos (zypper)
zl update --from zypper
# Alpine repos (apk)
zl update --from apkSources that use live APIs (GitHub, AUR, Nix, Flatpak, Snap, AppImage) don't need syncing.
# Search for a package
zl search ripgrep
# Install something
zl install ripgrep --from github
# Check it works
rg --version
# Clean up
zl remove ripgrepTo completely remove Zero Layer:
# Remove the binary
sudo rm /usr/local/bin/zl
# or: rm ~/.local/bin/zl
# Remove all installed packages, database, and cache
rm -rf ~/.local/share/zl
# Remove configuration
rm -rf ~/.config/zl
# Remove PATH and completion lines from your shell config
# (manually edit ~/.bashrc, ~/.zshrc, or fish config)- Getting Started — First run wizard and basic workflow
- Package Sources — Configure which sources to use
- Commands Reference — Full command reference
Getting Started
User Guide
Deep Dive
Development
Help