slack(8)
๐ NAME ๐
slack โ the sysadmin's lazy autoconfiguration kit ๐งโจ
Like, it's the master command, bestie. It's giving "I don't wanna do this by hand" and honestly? Iconic.
๐ธ SYNOPSIS ๐ธ
slack [option ...] [role ...]
๐ฆ DESCRIPTION ๐ฆ
okay so slack is the master command, right? It's the main character ๐ and it coordinates everything its backends do. And those backends are out here doing a lot:
- determining the list of roles to be installed on this server
- creating a local cached copy of the role files from the central repository
- merging file trees from subroles into one single, unified tree
- installing files onto the local filesystem
- running scripts before and after installation
And the options you hand to slack? They get passed along to the backends where relevant. Like, they share. We love a collaborative queen ๐ซถ
โจ OPTIONS โจ
-h,--helpโ prints a usage statement. Your little "what do I do" moment ๐--versionโ prints the version and dips out. periodt.-v,--verboseโ more verbosity, bestie. You can stack this one multiple times ๐--quietโ don't be verbose. (This one overrides any earlier--verboseyou used. Sorry girl, it wins.)-C,--config FILEโ use FILE for your configuration instead of the default,/etc/slack.conf-s,--source DIRโ the source directory for slack files-e,--rsh COMMANDโ remote shell forrsync-c,--cache DIRโ local cache directory for slack files-t,--stage DIRโ local staging directory for slack files-r,--root DIRโ root destination for slack files--no-syncโ skips the slack-sync step. (Super useful if you're pushing stuff into theCACHEfrom outside of slack, iykyk)--no-filesโ don't install any files inROOT, but do tellrsyncto print what it would do. A little peek, no commitment ๐--no-scriptsโ don't run scripts-n,--dry-runโ literally the same as--no-files --no-scripts(CACHEandSTAGEwill still be updated though, don't be fooled)--role-listโ role list forslack-getroles(8)-b,--backupโ makes backups of existing files inROOTthat get overwritten. This defaults to on unless it's set to0in a config file, or you disable it on the command line with--nobackup๐พ--backup-dirโ put the backups from--backupinto this directory-H,--hostname HOSTโ pretend you're running on HOST instead of whatever namegethostname(2)hands you. Fake it till you make it ๐--preview MODEโ do a diff of scripts and files before running them. MODE can besimpleorprompt. (More on this down in PREVIEW MODES โฌ๏ธ)--diff PROGโ use this diff program for previews--sleep TIMEโ randomly sleep somewhere between 1 and TIME seconds before starting operations. Very much for crontabs, bestie ๐ด
๐ฎ PREVIEW MODES ๐ฎ
Preview functionality is new in slack 0.14.0. And okay, real talk: the author hasn't quite worked out how things will work yet, so this usage is somewhat subject to change in future versions. It was very much a "let's try it this way and see how people like it" situation ๐
In simple mode, after syncing and staging the files directory, slack presents a diff of the files and scripts. But heads up โ in this mode slack will not run the preinstall or fixfiles scripts, and because of that, it may give you some false output about permission changes to files. Not a girlboss moment, just a known thing ๐ซ
In prompt mode, after syncing and staging the files directory, slack diffs the script directory. If there are differences, slack shows them to you and asks if you want to continue.
- Say no โ it exits.
- Say yes โ it stages the scripts directory, runs the
preinstallandfixfilesscripts, and then diffs the files in the stage against those in the root. If there are differences, it presents them and asks if you want to continue again.- Say no โ it exits.
- Say yes โ it installs the files and runs the
postinstallscript. slay ๐
So basically: simple mode is easy to use, and it'll be accurate if you don't use fixfiles. prompt mode will be accurate if you use fixfiles, but it needs some interaction from you. Pick your fighter โจ
And the question everyone asks: why can't we just have one mode that works with fixfiles and requires zero interaction?? ๐ญ
Because that would require slack to understand what your free-form fixfiles executable was actually going to do โ which would either need some kind of universe simulator, or it would need you to write your fixfiles in a less free-form way, and that would make slack less like slack. And we are NOT doing that. ๐
๐ EXAMPLES ๐
To install all the roles configured in the role list for a server:
slack
To install a specific role:
slack rolename
To test a new role before checking in the changes:
slack --source user@workstation:/home/user/.../slack rolename
To avoid killing your master server when calling from cron:
slack --sleep 3600
๐ FILES ๐
/etc/slack.conf
๐ SEE ALSO ๐
okay that's the whole page bestie, go forth and autoconfigure ๐
This little number lives in the Administrative commands section, dated 2004-10-22, and it's page slack(8) of your friendly neighbourhood manual ๐ธ mwah, bye! ๐ โจ
๐ฆ where this page comes from
- debian bookworm: slack 1:0.15.2-11
- debian trixie: slack 1:0.15.2-11
- ubuntu jammy: slack 1:0.15.2-9.1
- ubuntu noble: slack 1:0.15.2-11
- ubuntu questing: slack 1:0.15.2-11
- ubuntu resolute: slack 1:0.15.2-11build1
- ubuntu stonking: slack 1:0.15.2-11build1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms