gslewis.id.au:~
The Bedlington Ape

Slackware tagfiles

What are Slackware tagfiles? What purpose do they serve these days? Essentially tagfiles provide a list of all packages in a Slackware package series (a, ap, d, e, etc) and the installation preference (add, skip, recommended or optional) of each package. If you are doing the suggested "full" or "terse" installation, then all packages are installed without regard for the tagfile preferences.

Tagfiles have two main purposes:

  • Determines the prompt when doing an interactive installation using the "newbie" prompting mode.
  • Controls the packages to install when doing a non-interactive installation using the "custom" or "tagpath" prompting modes.

Internally, the Slackware installer also uses the tagfile format for the "menu" and "expert" prompting modes where the choices you make for which packages to install in each package series are used to create custom tagfiles that then direct the actual installation.

In olden times, when package counts were in the mere hundreds, doing an interactive installation was manageable but as of 2025, Slackware-current has over 1700 packages so the "newbie" prompting mode is pretty much unusable. Today, the simplest installation method is to use the "full" or "terse" mode, perhaps having excluded select package series such as for KDE, Emacs (e), texlive (t), kernel source (k), etc. After a full install, I use slackpkg remove-template to remove a list of packages to clean up my installation by deleting some packages I know I will never use.

So why use tagfiles? The case that made me look into using tagfiles was trying to install Slackware onto a device (Asus Eee PC 701) with only 4 GB of storage (and of that 4 GB, I wanted some usable space left over). By preparing a set of tagfiles with a minimal working installation and using the "custom" or "tagpath" prompting mode, I could perform the installation without having to manually choose packages and without filling the disk.

Another use case for tagfiles is if you want to semi-automate a non-full installation of Slackware to multiple machines. I imagine there are better ways to fully automate this process.

Tagfile format

Each of the 15 Slackware package series has a tagfile.

a/tagfile
ap/tagfile
d/tagfile
e/tagfile
f/tagfile
k/tagfile
kde/tagfile
l/tagfile
n/tagfile
t/tagfile
tcl/tagfile
x/tagfile
xap/tagfile
xfce/tagfile
y/tagfile

Each line of a tagfile has the format package_name:tag where "package_name" is the base name of the package and the "tag" is the installation preference for the package. The tag values are:

  • ADD — Mandatory package to be added.
  • SKP — Package to be skipped.
  • REC — Recommended package, but not mandatory.
  • OPT — Optional package.
Package series a/tagfile
aaa_base:ADD
aaa_glibc-solibs:ADD
aaa_libraries:ADD
aaa_terminfo:REC
acl:ADD
acpid:REC
attr:ADD
bash:ADD
bcachefs-tools:ADD
bin:ADD
btrfs-progs:REC
bzip2:ADD
coreutils:ADD
cpio:ADD
cpufrequtils:OPT
cracklib:ADD
cryptsetup:OPT
dbus:REC
...

When using the installation "menu", "expert", "custom" or "tagpath" prompting modes, the "ADD" and "SKP" tags are used to non-interactively add or skip packages, and the "REC" and "OPT" tags will prompt the user whether to install the package or not. Note that there are no packages tagged with "SKP" by default.

Using the "custom" prompting mode

TBD

Using the "tagpath" prompting mode

TBD

Topics

The Bedlington Ape Back to the home page