Skip to content

Comparison

Anagnostakis Ioannis edited this page Jun 30, 2026 · 9 revisions

Comparison

slacker is built to feel familiar to anyone who uses slackpkg and slackpkg+, while folding both into one tool and adding a few things of its own. This page is about positioning, not putting other tools down - slackpkg and slackpkg+ are excellent and slacker borrows their best ideas on purpose.


slacker vs slackpkg vs slackpkg+

slackpkg slackpkg + slackpkg+ slacker
Language Bash Bash Rust (single binary)
Official mirror yes yes yes - and it is just one repo whose priority you choose
Mirror freshness check + fastest-mirror finder no no yes (find-mirror; status warns if your mirror is stale)
Multiple repositories no yes (via slackpkg+) yes, first-class
Repo precedence n/a priority list priority model with no silent migration or downgrade
.dep dependencies no no yes when a repo ships them (same-repo, recursive), with a PACKAGE REQUIRED: fallback
Repo-declared conflicts / suggests no no yes — a declared CONFLICTS prompts before install; a SUGGESTS line is shown, never acted on
GPG on metadata yes yes yes, fail-closed
Per-package signature at install partial partial yes (.txz.asc) under all
GPG key pinning (TOFU) no no yes
Misbehaving-repo quarantine no no yes (vet/trust/distrust)
Package-change history no no yes (history, even for changes by other tools)
Roll back to a previous version no no yes (revert-pkg, from the cumulative -current archive, GPG-verified)
One-command distribution upgrade manual procedure manual procedure yes (upgrade-dist: re-points repos, replaces every package, release-guard elsewhere)
Blacklist series + name + regex series + name + regex glob + regex + series/ + @repo scoping, frozen vs hidden
Templates yes yes yes (generate/install/remove/delete)
clean-system baseline official official official + immutable repos
Config plain text plain text plain text

What slacker keeps from slackpkg

Action parity and muscle memory: update, install, upgrade, remove, clean-system, file-search, templates, ChangeLog tracking, .new config handling, the numbered multi-match chooser, and the same exit-code conventions. It is a thin layer over installpkg/upgradepkg/removepkg - it never reimplements them.

What slacker keeps from slackpkg+

Many repositories in one priority-ordered model, with the official mirror sitting in that order as just another repo - and selecting a package's source by the build tag of the installed version (slackpkg+'s TAG_PRIORITY, which slacker generalises into its tag-priority lines). slackpkg+ ignores .dep files entirely; slacker only honours them when a repo provides them (below).

What slacker adds

  • A strict priority guarantee. A distinct, high priority locks a repo's packages - nothing lower can replace or "upgrade" them, only an explicit repo:name pin. See Repositories and Priority.
  • mirror/<subpath> URLs and a subtree flag so extra/testing/patches track whichever mirror you picked, correctly.
  • Mirror health. status warns when your chosen mirror has fallen behind the upstream master, and find-mirror probes the official mirror list to rank the fastest up-to-date mirrors for your location - neither slackpkg nor slackpkg+ does this. See Quick Start.
  • Trust-on-first-use key pinning and a quarantine model for repos. See Security.
  • history - a real, newest-first package-change timeline reconstructed from the pkgtools admin dirs, covering changes made by any tool. See Package History.
  • Rollback. revert-pkg rolls an official package back to a previous -current version from the cumulative archive, GPG-verified - a safety net for a bad upgrade. See Common Workflows.
  • One-command distribution upgrade. upgrade-dist migrates a whole system to a new Slackware release (15.0 → -current, or → a newer stable), re-pointing the mirror and repos and replacing every package - the one operation where slacker deliberately steps outside the priority model. A complementary release-match guard stops normal installs from mixing a different release's packages into the system. See Distribution Upgrade and Security.
  • It respects a repo's own dependency data, when the repo provides it. This is the repository's responsibility - not slacker's, and not Slackware's, whose official trees ship none (so official packages get no auto-deps). Where a third-party repo chooses to declare them - a package's .dep beside it, or a PACKAGE REQUIRED: line in PACKAGES.TXT - slacker honours that, recursively, from the same repo. It never defines, requires, or guesses dependencies, and you can switch it off (RESOLVE_DEPS=off / --no-deps). See Dependencies.
  • Honest verification labels - it tells you exactly which checks passed (verified: gpg (signer) + md5).

What it is not

  • It is not a source builder. It installs binary packages and resolves declared .dep dependencies; it does not build from SlackBuilds. Pair it with SBo tooling for that (and protect those builds with a tag priority).
  • It does not guess dependencies. No .dep, no automatic deps - by design.
  • It is beta / WIP: built for Slackware -current (64-bit and, as of 0.9.0, 32-bit i586/i686), for testers. See Status and Roadmap.

Clone this wiki locally