Skip to content

Installation

Anagnostakis Ioannis edited this page Sep 19, 2026 · 14 revisions

EN · EL · FR · ES · IT · RU · ZH · AR · HI · PT · DE

Installation

The easy way: the binary package

On Slackware you install the binary package built from the SlackBuild. It puts everything in place for you:

  • the slacker executable (/usr/bin/slacker),
  • the man page (man slacker),
  • the plain-text config files under /etc/slacker/,
  • shell completions for bash, zsh and fish,
  • slacker-gui (/usr/bin/slacker-gui), its desktop entry, icons and the polkit policy it uses to run changes as root.

You do not copy anything. After installing the package, the only setup is to edit two files - pick a mirror in mirrors and set your repo priorities in repos - then run slacker status (it checks the setup and tells you what to do next), slacker update gpg, and slacker update. See Quick Start.

On upgrades, Slackware delivers changed config files as *.new so your edits are never clobbered; slacker new-config helps you reconcile them.

Building from source (for developers)

Building needs Rust 1.85.1 or newer - the effective minimum supported Rust version. Current Slackware ships Rust 1.96, which is fine. (The crate itself is edition 2021, but a dependency, clap_lex, is written in edition 2024, and that is what sets the 1.85.1 floor - not slacker's own code.)

cargo build --release
install -m0755 target/release/slacker /usr/bin/slacker
install -m0644 man/slacker.8 /usr/man/man8/slacker.8
mkdir -p /etc/slacker
for f in slacker.conf distro-upgrade.conf mirrors repos blacklist; do
  install -m0644 CONF/etc-slacker/current/$(uname -m)/$f /etc/slacker/$f
done

(/etc/slacker/templates/ is created by slacker itself on the first generate-template.)

No root is needed to build or to run the test suite; only the mutating commands need root.

cargo build
cargo test            # all tests pass; the build is warning-clean

Dependencies

slacker is deliberately dependency-light. Direct crates: clap, ureq, md-5, regex, rusqlite. Everything heavy is shelled out to the tools Slackware already ships:

  • installpkg / upgradepkg / removepkg for the actual package operations,
  • gpg2 (falling back to gpg) for signature verification,
  • bzip2 for the MANIFEST,
  • sha256sum for SHA checksums,
  • diff for new-config.

TLS is handled in-process by rustls (via ureq's tls feature), and SQLite (read by resolve-stock) is compiled in through rusqlite's bundled feature, so slacker links no system OpenSSL and no system SQLite. The binary needs little more from the system than the C library.

slacker-gui

The graphical front-end is separate from slacker and not dependency-light: it links GTK4 and libadwaita (>= 1.5), and needs polkit (pkexec) with an authentication agent in the session for the actions that change the system. slacker itself does not depend on it.

Packaging notes

If you build a distributable package, freeze the dependency versions first so the build stays reproducible. See Building and Releasing.

Verify it works

slacker --version
slacker status        # health-check the whole setup

Next: Quick Start.

Clone this wiki locally