Skip to content
Anagnostakis Ioannis edited this page Jun 30, 2026 · 14 revisions

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

FAQ

Common questions and troubleshooting. See also Configuration, Security, and Repositories and Priority.


Does slacker work on Slackware 15.0?

No - and it never will. slacker targets Slackware -current: 64-bit (x86_64) and, as of 0.9.0, 32-bit (i586/i686). See Status and Roadmap.

Can slacker upgrade my system to a new Slackware release?

Yes - that is slacker upgrade-dist {current|VERSION}. It re-points your mirror and repos to the target release and replaces every package with the target's build (the one command that deliberately bypasses the priority model), then runs install-new + clean-system and reminds you about the kernel before you reboot. Always --dry-run it first and keep backups. Note that to upgrade a 15.0 system you need a slacker binary that runs on 15.0's older glibc (the distributed package is built for -current); and the local-source option (DISTRO_UPGRADE_MIRROR) is not yet tested. Full details in Distribution Upgrade.

install/upgrade refuses a package, saying the repo targets a different release.

That is the release-match guard. A repo built for another Slackware release (for example an alienbob -current repo still active on 15.0) can pass GPG/md5 yet install packages that break your system, so slacker refuses it. Point the repo at your system's release, or pass --yes to override if you are sure. slacker status shows the same mismatch on its Repo release row. See Security.

Do I have to copy config files after installing?

No. The binary package puts the config files in place under /etc/slacker/. You only edit two of them - mirrors (pick one) and repos (set priorities). See Installation.

How do I pick a fast, up-to-date mirror?

Run slacker find-mirror. It probes the official Slackware mirror list, times each mirror, drops any that have fallen behind the upstream master, ranks the rest by speed, and prints the fastest one as the line to put in mirrors - it never changes your config for you. It works before any mirror is configured, so it is the natural first command on a fresh install. slacker status later flags a mirror that has gone stale (more than 48 hours behind upstream). See Quick Start.

update says a repo's packages won't download (a doubled path like .../extra/extra/...).

That repo is a distribution subtree (extra, patches, testing, pasture) and needs the subtree flag in repos. Its PACKAGES.TXT lists locations relative to the distribution root; the flag tells slacker to fetch packages and the key from the parent URL. See Repositories and Priority.

error: repos: ... duplicate priority

Binary-repo priorities must be distinct. Give each binary repo a unique number. (Tag-priority lines may share a priority - that is fine.)

error: repos: ... two active mirrors / "no mirror"

In mirrors, exactly one line must be uncommented. Zero leaves the official URL empty; two or more is an error.

Why didn't upgrade-all upgrade my SBo / alienbob package, even though there's a newer version?

Priority. slacker never migrates an installed package to a different-priority source or downgrades it. A candidate is only proposed from a repo of higher or equal priority. If you want a specific repo's build, pin it: slacker upgrade alienbob:vlc. To make a source always win, give it a tag priority. See Repositories and Priority.

A -current upgrade broke a package - can I roll it back?

Yes, for official packages on -current. slacker revert-pkg NAME lists that package's previous builds (from removed_packages), fetches the one you pick from the cumulative archive (GPG-verified against the pinned Slackware key), and downgrades it with upgradepkg --reinstall. Try --dry-run first to see the exact build. It then offers to freeze the package so upgrade-all won't pull it forward again - lift that later with slacker unfrozen NAME. Third-party packages aren't covered (the cumulative archive carries only official ones), and it works only on -current: the code reads VERSION_CODENAME and refuses on a stable release (a hard, fail-closed guard). See Common Workflows.

How do I remove a rule from the blacklist?

slacker unfrozen RULE - the counterpart to frozen. Run slacker unfrozen with no argument to list the current rules, then pass one exactly as shown (the match is literal, so .* / * / / are never treated as a pattern). Editing /etc/slacker/blacklist by hand works too. See Blacklist.

install-new keeps offering things I removed / never offers a package I removed.

install-new is for packages whose name is newly added to the distribution - not packages you removed (those already exist in the tree). To put a removed package back, use slacker install NAME (or install @repo). See Commands.

history emacs shows nothing, but the package is installed.

Names match exactly. If the package is aircrack-ng, history aircrack finds nothing - use the exact name. See Package History.

history shows an upgrade as old → new for something I'm sure was removed.

The pkgtools removed_packages/ directory keeps one filename per package id, so a later removal overwrites an earlier record - some history is lost by the tools themselves. slacker reconstructs as much as it can and infers a lost upgrade target from the next known entry. See Package History.

A repo is in quarantine and provides no packages.

slacker quarantines a repo that fails vetting (unreachable or malformed/hostile metadata). Re-check with slacker vet-repo NAME; if you judge it a false positive, slacker trust-repo NAME lifts it (at your responsibility). See Security.

"key-substitution attack" / a key won't import.

slacker pins each repo's GPG fingerprint on first import (trust on first use). A later key with a different fingerprint is refused. If the key legitimately changed, you'll need to clear that repo's pin under STATE_DIR (/var/lib/slacker/gpg/<repo>.fpr) and re-import. See Security.

How do I keep extra/testing/patches packages from being removed by clean-system?

Mark those repos immutable in repos. Their installed packages are then kept without blacklisting each one. See Common Workflows.

install * / remove * / history * doesn't do what I expect.

slacker has no * wildcard for selecting packages. A whole repository is @repo (e.g. install @gnome); a single package is its exact name; a substring matches a family. An unquoted * is expanded by your shell into the filenames of the current directory before slacker runs — slacker never sees the * and never reads your directory. When that produces a flood of non-package arguments, slacker recognises it and refuses the command without changing anything (a remove * will not delete real packages that happen to share a substring with a filename). Quote a literal pattern, or use @repo. Note that the blacklist is different: frozen does accept glob and regex patterns — see Blacklist.

Can I run queries as a normal user?

Yes. search, info, file-search, check-updates, show-changelog, history, and find-mirror run as any user. Everything that changes the system needs root.

A command says another instance is running.

Mutating commands take an exclusive lock (/run/slacker.lock); only one runs at a time. The lock releases automatically if slacker exits or is killed. Queries take no lock.

Colours are messing up my logs / terminal.

Set NO_COLOR=1 (colour is also auto-disabled when output is not a terminal). The pager for long output is $PAGER or less -FRX.

How do I report a bug or request a feature?

Open an issue at https://forge.slackware.nl/rizitis/slacker/issues.

Clone this wiki locally