Install
Three install paths — static binary first, distro package manager second, source build third.
1. Static binary (one line)
The fastest and most portable install path. Use
x eget — x-cmd's wrapper around the upstream
GitHub release pipeline:
x eget ljh-sh/lhasa # ~200 KB, zero deps, multi-arch static build
The installed CLI is named lha (not lhasa
— the project deliberately mirrors the original LHa for
UNIX command). After install:
$ lha --help | head -1
Lhasa v0.6.0 command line LHA tool - Copyright (C) 2011-2025 Simon Howard
What the eget install does
- Detects your platform (linux-musl / aarch64-macos / x86_64-macos / x86_64-windows).
- Downloads the matching tarball from
github.com/ljh-sh/lhasa/releases/latest. - Verifies the SHA256 against the upstream-published
SHA256SUMS(see build audit for how the sums are produced). - Extracts
bin/lhainto~/.local/bin/lha. - Does not touch anywhere outside
~/.local/. No sudo, no installer, no daemon.
Manual install from a release archive
Grab the per-platform tarball/zip directly from releases/latest:
| Platform | File | Linkage |
|---|---|---|
| Linux x86_64 | lhasa-x86_64-linux-musl.tar.gz |
Static musl — runs on every Linux distro. |
| Linux ARM64 | lhasa-aarch64-linux-musl.tar.gz |
Static musl — aarch64 Linux. |
| macOS Apple Silicon | lhasa-aarch64-macos.tar.gz |
Static; uses system libc++/libSystem. |
| macOS Intel | lhasa-x86_64-macos.tar.gz |
Static; cross-compiled from Apple Silicon. |
| Windows x86_64 | lhasa-x86_64-windows.zip |
Static; MinGW. No VC redistributables. |
tar xzf lhasa-x86_64-linux-musl.tar.gz
sudo install -m 0755 lhasa-x86_64-linux-musl/bin/lha /usr/local/bin/lha
sudo install -m 0644 lhasa-x86_64-linux-musl/man/man1/lha.1 /usr/local/share/man/man1/
man lha
2. Distro package manager
If you already use x install lhasa, x-cmd resolves to
your distro's official lhasa package —
identical source to ljh-sh/lhasa. Distro-table:
x install lhasa # apt / brew / pacman / zypper / xbps-install / pkg / pkgin
Distribution package installs:
| OS family | install command |
|---|---|
| Debian / Ubuntu / Kali / Raspbian | sudo apt install lhasa |
| macOS | brew install lhasa |
| Arch Linux | yay -S lhasa-git |
| FreeBSD | pkg install archivers/lhasa |
| NetBSD | pkgin install lhasa |
| openSUSE | sudo zypper install lhasa |
| Void | sudo xbps-install lhasa |
Distro lhasa packages install the binary as
/usr/bin/lha (upstream convention). If both
lhasa and any lha-named binary are on
your PATH, the first wins; run
which lha to confirm.
3. Build from source
Vendored source is in upstream/lhasa/,
fetched via git subtree from
fragglet/lhasa.
Build commands:
git clone https://github.com/ljh-sh/lhasa.git
cd lhasa
bash scripts/build.sh
bash scripts/smoke.sh
To refresh vendoring when upstream advances:
git subtree pull --prefix=upstream/lhasa https://github.com/fragglet/lhasa.git master --squash
The wrapper scripts mirror what CI does: out-of-tree build via
autoreconf -is, then configure && make.
See build audit for the per-platform
CI shape.