2 Home
Anagnostakis Ioannis edited this page 2026-06-25 03:12:30 +03:00

slacker

slackpkg + slackpkg+ Rust Slackware License status release

slacker

slackpkg + slackpkg+ in one — a Slackware package manager written in Rust.

slacker gives you full slackpkg action parity and slackpkg+-style multi-repo priority resolution in a single, fast, dependency-light binary. The official mirror is just one repository whose priority you choose, so it can sit anywhere in your stack — and a distinct, high priority locks a repository's packages so nothing of lower priority can ever silently replace or downgrade them.

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#161b22','primaryBorderColor':'#1f6feb','primaryTextColor':'#e6edf3','lineColor':'#6e7781','fontFamily':'monospace'}}}%%
flowchart LR
  Q["a package name"] --> R{"highest-priority repo<br/>that offers it"}
  R --> W["that build is installed"]
  P["repo:name pin"] -. "the only override" .-> R
  classDef grey fill:#0d1117,stroke:#6e7781,color:#8b949e;
  classDef blue fill:#0d1117,stroke:#1f6feb,color:#e6edf3;
  classDef green fill:#0d1117,stroke:#2ea043,color:#e6edf3;
  class Q,P grey
  class R blue
  class W green

Status: beta / work in progress. slacker builds and runs on Slackware64-current and is offered for testers. It is not built for Slackware 15.0 and never will be; 32-bit -current support is coming. See Status and Roadmap.


Why slacker

  • One tool, many repositories. The official mirror, extra/testing/patches, alienbob, conraid, ktown, your own — all in a single priority-ordered model.
  • Priority above all. An installed package is never silently migrated to a different repository or downgraded. Give a repo a high priority and its packages are protected — only an explicit repo:name pin overrides it. See Repositories and Priority.
  • Honest verification. GPG on every update, per-package signatures at install, trust-on-first-use key pinning, and a quarantine model for misbehaving repos. See Security.
  • A real history command. A newest-first timeline of every package change on the box — installed, upgraded, reinstalled, removed — even changes made by other tools. See Package History.
  • Thin by design. It never reimplements installpkg/upgradepkg/removepkg, gpg, or bzip2 — it calls the tools Slackware already ships.
  • Plain text, everywhere. Everything you edit is a plain-text file under /etc/slacker/.

Quick start

After installing the package, you edit two files and run two commands:

# 1) pick exactly one mirror
$EDITOR /etc/slacker/mirrors

# 2) set your repo priorities
$EDITOR /etc/slacker/repos

# 3) import keys once, then refresh and check
slacker update gpg
slacker update
slacker status

Full walkthrough: Quick Start.


Documentation

Installation binary package and building from source
Quick Start first-time setup, step by step
Configuration slacker.conf, mirrors, repos, blacklist
Repositories and Priority the priority model, subtree, pins, @ selectors
Commands full reference for all 31 actions
Common Workflows the recipes you will actually use
Package History the history command
Dependencies .dep resolution
Security GPG, key pinning, verification, quarantine
Blacklist freezing and hiding packages
Templates snapshot and replay package sets
Comparison slacker vs slackpkg vs slackpkg+
FAQ troubleshooting and common questions
Contributing architecture and how to build/test
Building and Releasing freezing dependencies for a distro package
Status and Roadmap what works today, what is planned

slacker is free software under the Apache License 2.0, by Ioannis Anagnostakis (rizitis). Sources: https://forge.slackware.nl/rizitis/slacker.