-
Notifications
You must be signed in to change notification settings - Fork 0
Commands
The full reference for all 35 actions, with the exact descriptions printed by
slacker --help. Run slacker <command> --help for a command's options, or
man slacker for the complete manual.
Global flags (any command):
| Flag | Effect |
|---|---|
--config-dir <DIR> |
Directory holding the plain-text config files (default /etc/slacker). |
-y, --yes
|
Assume "yes" to confirmation prompts. |
--dry-run |
Show what would happen without changing the system. |
--no-deps |
Do not read .dep files / pull in dependencies for this run. |
-h, --help
|
Print help. |
-V, --version
|
Print version. |
| Command | What it does |
|---|---|
update [gpg] |
Refresh metadata from every repo. update gpg imports repo GPG keys. |
check-updates |
Check every configured repo for pending updates (exit 100 if any). |
show-changelog [REPO] |
Print a repo's cached ChangeLog. With no argument, the official (tracked) repo; name a repo to fetch and show that one instead. |
history [NAME] |
Show a chronological log of package changes - installed, upgraded and removed, and when - newest first. Derived from the pkgtools admin directories, so it also reflects changes made outside slacker. See Package History. |
| Command | What it does |
|---|---|
search NAME |
Find a package by its exact name (case-insensitive). |
file-search FILE |
Find which package ships a file (uses MANIFEST). |
info PACKAGE |
Show details and per-repo candidates for a package. |
list-repos |
List configured repositories with priority, verify policy and how many installed packages came from each. |
status |
The setup doctor - checks the whole setup and says what to do next, and runs even when the config is broken (diagnosing that is its job). Verifies the environment (pkgtools and helper tools on PATH, config-file syntax), then mirror (and whether it is up to date with the upstream master, pointing you at find-mirror when it is stale), repos, priorities, verification, GPG keys (verified empirically against the keyring), metadata freshness, whether every repo targets the running system's release, blacklist (and pins, flagging any pinned to an inactive repo), an integrity audit of slacker's own config + cache + state (root ownership, world-writable paths, stray symlinks), installed-package sources, pending .new configs, and - if online - reachability and pending updates. Ends with the exact commands to run next, in order. |
find-mirror |
Find the fastest up-to-date mirror for your location: probes the official mirror list, times each one, drops stale mirrors (>48h behind the upstream master), ranks the rest by speed, lists the 7 fastest and proposes the 3 fastest - never changing your config. Runs before a mirror is configured, so it is the natural first command on a fresh install. Works on -current and stable (and on 32-bit). |
| Command | What it does |
|---|---|
install PATTERN... |
Install new packages (refuses already-installed ones). |
upgrade PATTERN... |
Upgrade installed packages to the newest available revision. |
reinstall PATTERN... |
Reinstall the currently installed version. |
remove PATTERN... |
Remove installed packages. |
download [-o DIR] PATTERN... |
Download package files without installing. Saved to the cache by default, or to a directory given with -o/--output. |
revert-pkg NAME |
Roll an official package back to a previous -current version (rollback). Lists its earlier versions from removed_packages, fetches the chosen build from the cumulative archive (GPG-verified against the pinned Slackware key), and downgrades with upgradepkg --reinstall. Official packages only and hard-blocked outside Slackware -current - the code reads VERSION_CODENAME from /etc/os-release and refuses (fail-closed) on a stable release, because the cumulative archive holds -current packages that would break it. Requires REVERT=on. See Common Workflows. |
| Command | What it does |
|---|---|
upgrade-all |
Upgrade every installed package that has a newer revision - honouring priority (no migration, no downgrade). |
upgrade-dist {current|VERSION} |
Distribution upgrade to a different Slackware release (e.g. 15.0 → -current). The target is an explicit argument; allowed routes are a fail-closed whitelist. UNLIKE every other command it deliberately ignores source priority and the blacklist and takes the target's version of every package. Re-points the mirror/repos, upgrades everything (core first, GnuPG chain last), runs install-new + clean-system + a second pass, and ends with a kernel reminder. --dry-run first. See Distribution Upgrade. |
install-new [REPO...] |
Install every package the selected repos provide that you don't already have - the "fill what's missing" counterpart to install @repo. Catches both packages newly added to the distribution and ones you removed, and stays correct across any number of updates. Honours source/tag priority and the blacklist (frozen packages are skipped); a new build/version of an installed package is an upgrade (use upgrade-all), not new. Default: official repo(s) only; name repos to use those instead. |
clean-system |
Remove installed packages no longer in the official baseline - the official repo plus any immutable repo. slackpkg-style: a package the distribution dropped is removed even if a third-party repo still ships the name. Kept by the blacklist, an IGNORE_TAGS build tag, or an immutable repo. See Common Workflows. |
clean-cache [REPO...] |
Delete downloaded package files from the cache. Repo metadata and GPG keys are never touched. Optionally limit to named repos. |
new-config |
Reconcile leftover *.new configuration files. A bulk choice applies to all at once - **(K)**eep current (leave the .new for later), **(O)**verwrite all (old saved as .orig), **(R)**emove all .new, or **(P)**rompt one by one (default) - and the per-file prompt adds (M)erge and (D)iff. |
| Command | What it does |
|---|---|
frozen RULE... |
Add one or more blacklist rules ("freeze"). Each argument is one rule: a glob (*, ?) or regex, a series/, or @repo PATTERN (quote rules with spaces). Run with no argument to list the current frozen rules. See Blacklist. |
unfrozen RULE... |
Remove one or more blacklist rules ("unfreeze") - the counterpart to frozen. Each argument must match an existing rule exactly, as a literal string (special characters like .*, *, / are never interpreted as a pattern). Run with no argument to list the current rules. See Blacklist. |
pin REPO:PACKAGE |
Pin a package to ONE repo, ignoring priority (e.g. pin alienbob:vlc) - the positive counterpart to frozen. Every command (incl. upgrade-all) then sources that package only from that repo. Stored in the blacklist file as @repo 100% package; uses an exact name (not a pattern); a freeze on the same package always wins. Run with no argument to list the current pins. See Blacklist. |
unpin PACKAGE... |
Remove a pin - the counterpart to pin. The package returns to normal priority-based resolution. Run with no argument to list the current pins. See Blacklist. |
| Command | What it does |
|---|---|
list-repos |
List configured repositories with priority, verify policy and installed counts. |
status |
The setup doctor: health-checks the whole setup - environment and config sanity, repos, whether your mirror is up to date with upstream, GPG keys, metadata, an integrity audit of config + cache, and online reachability - and says what to do next. |
add-repo PRIORITY NAME URL [flags] |
Add a binary repository to the repos file. URL must be http:// or https:// and unique. Flags (separate words, no quotes): official, immutable (keeps its packages out of clean-system), subtree (a Slackware distribution subtree - extra/, patches/, … - whose packages download from the parent/root URL), verify=.... See Repositories and Priority. |
del-repo NAME |
Remove a binary repository (by name) from the repos file. |
pri-repo PRIORITY NAME |
Change a repo's priority in the repos file. NAME must be an active repo (the closest match is suggested on a typo); PRIORITY must not already be used by another repo (priorities are kept distinct, and the clashing repo is named). Only that repo's priority is rewritten - its URL and flags stay untouched. See Repositories and Priority. |
add-tag PRIORITY NAME TAG |
Add a build-tag priority line to the repos file (e.g. add-tag 100 SBo _SBo; no quotes). |
del-tag TAG |
Remove a build-tag priority line (by its TAG) from the repos file. |
| Command | What it does |
|---|---|
vet-repo NAME |
Re-run the safety vetting on a repo on demand (fetches metadata only). Quarantines it if it fails, or clears a prior quarantine if it now passes. |
trust-repo NAME |
Trust a quarantined repo, lifting its freeze so it can be used again. This overrides slacker's safety verdict - at your own responsibility. |
distrust-repo NAME |
Manually quarantine (freeze) a repo so it provides no packages until you trust-repo it again. |
See Security for the trust model.
| Command | What it does |
|---|---|
generate-template NAME |
Snapshot installed packages into a template. |
install-template NAME |
Install all packages listed in a template. |
remove-template NAME |
Remove all packages listed in a template. |
delete-template NAME |
Delete a template file (does not touch installed packages). |
See Templates.
The authoritative output, verbatim:
slackpkg + slackpkg+ in one, minimal Rust tool
Usage: slacker [OPTIONS] <COMMAND>
Commands:
update Refresh metadata from every repo. `update gpg` imports repo GPG keys
search Find a package by its exact name (case-insensitive)
file-search Find which package ships a file (uses MANIFEST)
info Show details and per-repo candidates for a package
list-repos List configured repositories with priority, verify policy and how many installed packages came from each
status Health-check the whole setup and report what to do next - the setup doctor
install Install new packages (refuses already-installed ones)
upgrade Upgrade installed packages to the newest available revision
reinstall Reinstall the currently installed version
remove Remove installed packages
revert-pkg Revert an official package to a previous -current version (rollback)
download Download package files without installing. Saved to the cache by default, or to a directory given with -o/--output
upgrade-all Upgrade every installed package that has a newer revision
upgrade-dist Distribution upgrade: migrate a Slackware 15.0 system to -current (or to the next stable). UNLIKE every other command it deliberately ignores source priority and the blacklist and takes the target distribution's version of every package
install-new Install every package the selected repos provide that isn't already installed - the "fill what's missing" counterpart to `install @repo`: catches packages new to the distribution and ones you removed, correct across any number of updates. Honours source/tag priority and the blacklist (frozen packages are skipped); a newer build/version of an installed package is an upgrade (use `upgrade-all`), not new. Default: official repo(s) only; name repos to use those instead
clean-system Remove installed packages no longer in the official baseline - the official repo plus any `immutable` repo. slackpkg-style: a package the distribution dropped is removed even if a third-party repo still ships the name. Kept by the blacklist, an `IGNORE_TAGS` build tag, or an immutable repo
clean-cache Delete downloaded package files from the cache. Repo metadata and GPG keys are never touched. Optionally limit to named repos
new-config Handle leftover *.new configuration files
check-updates Check every configured repo for pending updates (exit 100 if any)
show-changelog Print a repo's cached ChangeLog. With no argument, the official (tracked) repo; name a repo to fetch and show that one instead
history Show a chronological log of package changes - installed, upgraded and removed, and when - newest first. Derived from the pkgtools admin directories, so it also reflects changes made outside slacker
find-mirror Find the fastest up-to-date Slackware mirror for your location: probes the official mirror list over HTTP and ranks reachable, fresh mirrors by speed, lists the 7 fastest and proposes the 3 fastest. Works on -current and stable. Does not change your configuration
generate-template Snapshot installed packages into a template
install-template Install all packages listed in a template
remove-template Remove all packages listed in a template
delete-template Delete a template file (does not touch installed packages)
frozen Add one or more blacklist rules ("freeze"). Each argument is one rule: a glob (`*`, `?`) or a regex, a `series/`, or `@repo PATTERN` (quote rules with spaces). Run with no argument to list the current frozen rules
unfrozen Remove one or more blacklist rules ("unfreeze"). Each argument must match an existing rule EXACTLY, as a literal string - special characters like `.*`, `*`, `-` or `/` are compared verbatim, never as a pattern. Run with no argument to list the current rules. Quote rules with spaces
pin Pin a package to ONE repo, regardless of priority: `pin repo:package` (e.g. `pin alienbob:vlc`). From then on every command (incl. upgrade-all) sources that package only from that repo. Stored in the `blacklist` file as `@repo 100% package`. A freeze on the same package always wins. Run with no argument to list the current pins
unpin Remove a pin: `unpin package` (e.g. `unpin vlc`). The package returns to normal priority-based resolution. Run with no argument to list the current pins
add-repo Add a binary repository to the `repos` file: `add-repo PRIORITY NAME URL [official] [immutable] [subtree] [verify=...]`. URL must be http:// or https:// and unique. Separate words, no quotes (quote only a URL that contains shell-special characters). `immutable` keeps every package attributed to the repo out of clean-system. `subtree` marks a Slackware distribution subtree (extra/, patches/, ...) whose packages download from the parent (root) URL
del-repo Remove a binary repository (by name) from the `repos` file
pri-repo Change a repo's priority in the `repos` file: `pri-repo PRIORITY NAME`. Refuses if NAME is not an active repo (suggesting the closest match), or if PRIORITY is already used by another repo (priorities must be distinct)
add-tag Add a build-tag priority line to the `repos` file: `add-tag PRIORITY NAME TAG` (e.g. `add-tag 100 SBo _SBo`; no quotes)
del-tag Remove a build-tag priority line (by its TAG) from the `repos` file
vet-repo Re-run the safety vetting on a repo on demand (fetches metadata only). Quarantines it if it fails, or clears a prior quarantine if it now passes
trust-repo Trust a quarantined repo, lifting its freeze so it can be used again. This overrides slacker's safety verdict - at your own responsibility
distrust-repo Manually quarantine (freeze) a repo so it provides no packages until you `trust-repo` it again
help Print this message or the help of the given subcommand(s)
Options:
--config-dir <CONFIG_DIR> Directory holding the plain-text config files [default: /etc/slacker]
-y, --yes Assume "yes" to confirmation prompts
--dry-run Show what would happen without changing the system
--no-deps Do not read .dep files / pull in dependencies for this run
-h, --help Print help
-V, --version Print version
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#161b22','primaryBorderColor':'#1f6feb','primaryTextColor':'#e6edf3','lineColor':'#6e7781','fontFamily':'monospace'}}}%%
flowchart LR
A["0 success"]:::green
B["1 error"]:::grey
C["20 nothing found"]:::grey
D["50 slacker upgraded itself - re-run"]:::blue
E["100 pending updates (check-updates)"]:::blue
classDef grey fill:#0d1117,stroke:#6e7781,color:#8b949e;
classDef blue fill:#0d1117,stroke:#1f6feb,color:#e6edf3;
classDef green fill:#0d1117,stroke:#2ea043,color:#e6edf3;
| Code | Meaning |
|---|---|
0 |
success |
1 |
an error occurred |
20 |
no package found to act on |
50 |
slacker upgraded itself and must be re-run |
100 |
there are pending updates (from check-updates) |
Read-only commands (search, info, file-search, check-updates,
show-changelog, history, find-mirror) run as any user. Everything that changes the
system, cache, or config must be run as root. Mutating commands take an
exclusive lock (/run/slacker.lock) so only one runs at a time; queries take no
lock and run freely in parallel.
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