installwatch(1)

πŸ’– installwatch β€” bestie's guide to tracking installs πŸ’–

okay so real quick, this is the installwatch(1) page from the General Commands Manual, and it's genuinely one of those little tools that ate and left no crumbs. sit down, grab a strawberry πŸ“, we're doing this.


✨ NAME ✨

installwatch β€” track installation of software πŸ‘€


🌸 SYNOPSIS 🌸

installwatch [options] [command]

that's it. that's the whole vibe. options, then the command. periodt.


πŸ¦‹ DESCRIPTION πŸ¦‹

so installwatch is a program that exists for one iconic reason: tracking the changes made while you install local software (you know, the classic "make install" moment πŸ’…). it watches the command you asked it to watch, and it produces a log that shows you every single file that got created and every single file that got modified. no cap.

by default it outputs to syslog(3) using a priority of "LOG_USER | LOG_INFO". you can override that whole situation with the -o flag, bestie. the log format is literally this:

<return-value> <syscall-name> <argument> #<comment>

and the delimiters? okay so listen: each field is delimited by a "^I" character if you're logging to syslog(3), or by a tab when you're logging to a file. two different delimiters depending on where you're going, iykyk. 🌈


πŸŽ€ ENVIRONMENT πŸŽ€

  • INSTALLWATCH_BACKUP_PATH β€” set this variable to the location where you want installwatch to copy the original version of any files that get modified. 🫢 and yes, the directory will be created if it doesn't already exist β€” assuming that the parent is writable. if the parent isn't writable, that's a you problem, not an installwatch problem πŸ’€

πŸ‘‘ OPTIONS πŸ‘‘

these programs follow the usual GNU command line syntax, with long options starting with two dashes (`-`). a summary of options is included below, and honestly? every one of them is a main character.

  • -o, --logfile β€” directs that output from the logged command be written to the filename you specify. ⚠️ and heads up bestie: if the specified file already exists, it will be truncated. gone. deleted. evaporated. so don't point it at something you love.
  • -r, --root β€” sets the directory under which meta-info and translated files will be stored. πŸ—‚οΈ
  • -t, --trans β€” toggle translation capabilities. flip it, flop it, your call ✨
  • -e, --exclude β€” sets a comma separated neutral directory list, that won't be concerned by translation or backups. aka the "don't touch these" list 🚫
  • -d, --dbgfile β€” specify a debug file. πŸ”
  • -v, --dbglvl β€” sets the debug level to be used. turn the volume knob on the debug vibes πŸ”Š
  • -h, --help β€” show help information. the classic. the icon. the legend 🫢

πŸ’€ BUGS πŸ’€

okay this is the part where we get real, because the facts don't change even when the vibe does:

  • installwatch does not work with programs which are statically linked with libc. sorry bestie, it's just not happening.
  • due to LD_PRELOAD limitations, it does not work with suid programs β€” and honestly, that would probably introduce security problems anyway. πŸ™ˆ
  • mknod(2) is not monitored. it's out here living its own life, unobserved. 😭

πŸ’œ AUTHOR πŸ’œ

this manual page was written by Felipe Sateler <fsateler@gmail.com> for the Debian system (but may be used by others). original text by Greg Norris <adric@debian.org>. permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2. πŸ“œ

on Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.


and that's the whole page, bestie β€” slay πŸ’…βœ¨ this was installwatch(1) from the General Commands Manual, no date on it, just the name and the number, and honestly? iconic of it to keep it simple. bye bestie, go track some installs πŸ¦‹πŸŒΈ