Linux CLI  ·  x86-64 and ARM64

One command.
Three binaries, verified.

The installer downloads a published portable CLI archive from GitHub Releases, detects x86-64 or ARM64 (aarch64), checks the archive’s SHA-256 digest, ELF architecture and runtime compatibility, then installs xretractor, xqry and xtrdb. A systemd service is available on request.

~/.local
curl -fsSL https://retractordb.com/install.sh | bash -s -- install --user
# commands are linked from ~/.local/bin; add it to PATH if asked
xretractor --build-info
Requires a published *-portable.tar.gz archive for your CPU  ·  run list to check; until those archives are added, the list is empty
What it does

Checks first, installs second, keeps what is yours

Checked

SHA-256 digest, ELF architecture and runtime compatibility are verified before anything is installed. On an ARM 32-bit host, a musl-based distribution, or a host with an older glibc/libstdc++ than the release requires, the check stops and shows the cause — such hosts may need a dedicated build.

Configured

The archive includes a retractor.toml with safe default settings. It is copied to /etc/retractor/retractor.toml for a system install, or to ~/.config/retractor/retractor.toml (or XDG_CONFIG_HOME) for a user install — only when absent. xretractor reads it at startup, including as a service.

Preserved

Upgrades and removal keep local configuration, query files and the service account. The installer only removes binaries and the unit it created. The shipped storage.dir line stays commented until you create a writable storage directory.

systemd

Run xretractor as a system service

Add --service to a system install if this host runs systemd. The installer creates the retractor service account and an empty /etc/retractor/startup.rql when absent — the empty file starts the engine in idle mode. Existing query and configuration files are left untouched. For a service, the install path must be owned by root and not writable by other users.

managed service --system
# the service keeps running after an upgrade
curl -fsSL https://retractordb.com/install.sh | sudo bash -s -- upgrade --system
# removes the unit; query files and the service account remain
curl -fsSL https://retractordb.com/install.sh | sudo bash -s -- uninstall --system
Versions and maintenance

Pick a version, upgrade, check, remove

The default is the newest stable release with an archive for your CPU. upgrade can also take --version.

maintenance --user
curl -fsSL https://retractordb.com/install.sh | bash -s -- list
curl -fsSL https://retractordb.com/install.sh | bash -s -- install --version 0.1.10 --user
curl -fsSL https://retractordb.com/install.sh | bash -s -- upgrade --user
curl -fsSL https://retractordb.com/install.sh | bash -s -- status --user
curl -fsSL https://retractordb.com/install.sh | bash -s -- uninstall --user

For a custom directory, use --prefix /absolute/path and supply the same prefix when upgrading or removing. If both user and system installations exist, the installer asks which one to manage.

Before you pipe to bash

Read the script, then run it

curl -fsSLO https://retractordb.com/install.sh
less install.sh
bash install.sh install --user
Debian or Ubuntu with systemd

Prefer a distribution-managed service?

Use the .deb from GitHub Releases through apt. It installs into /usr/bin and enables the service for the next boot. Manage upgrades and removal with apt as well; the portable installer does not manage Debian packages.

Do not install both service variants on one host: they use the same unit name.