-
Notifications
You must be signed in to change notification settings - Fork 0
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.
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 |
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.
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).
-
A strict priority guarantee. A distinct, high priority locks a repo's
packages - nothing lower can replace or "upgrade" them, only an explicit
repo:namepin. See Repositories and Priority. -
mirror/<subpath>URLs and asubtreeflag soextra/testing/patchestrack whichever mirror you picked, correctly. -
Mirror health.
statuswarns when your chosen mirror has fallen behind the upstream master, andfind-mirrorprobes the official mirror list to rank the fastest up-to-date mirrors for your location - neitherslackpkgnorslackpkg+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-pkgrolls 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-distmigrates 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
.depbeside it, or aPACKAGE REQUIRED:line inPACKAGES.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).
- It is not a source builder. It installs binary packages and resolves
declared
.depdependencies; 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.
slacker - slackpkg + slackpkg+ in one - Apache-2.0 - by Ioannis Anagnostakis (rizitis) - beta / WIP, for Slackware -current (64-bit & 32-bit)
Getting started
Using slacker
- Commands
- Common Workflows
- Distribution Upgrade
- Repositories and Priority
- Package History
- Dependencies
- Docker
- Templates
- Blacklist
Trust & safety
Reference
For contributors