Tracking System Software
By: Mike Kimball - Revised: 2006-06-21 devinIntroduction
Info about utilities that make it easier to discover what System software gets installed by applications (and therefore easier to know exactly what components to add to your master images).
Why track software installations?
An environment such as a university computer lab is often comprised of high numbers of identically-configured machines. To maintain them efficiently, one must implement file maintenance software such as RevRdist or Assimilator, which utilizes a master image on a server to distribute and maintain a standard configuration of software on an automated, daily basis. This of course requires knowing the precise System components belonging to each application, in order to add them to the master image to be distributed.
To your benefit, 90% of Mac software is self-contained, with little more than a preferences file/folder in the System Folder. Most of the other 10%, those that insist on using System components, at least put them in some fairly obvious places - Control Panels, Control Strip Modules, or Extensions - and name them intuitively. So a majority of the time, you won't have a lot of trouble getting it all. It's the few problem children that put other mysterious or invisible items in there, or don't include an installation log file - so maybe you keep thinking you got everything, but then you test your distribution and find error dialogs or problems launching the software and realize there's still something missing. Once you cross the threshold of the time efficiency of investigating manually, it becomes necessary to use software to help you. In this section we'll examine some useful utilities for peering into your System to find what pieces belong to what applications.
Incidentally, more info about these (and many more) applications can be found at
VersionTracker.com.
Sherlock
Sherlock 2, Apple's favorite search utility, is one of the simplest methods of finding items related to a software install. Of course the term "simple" means just that - it won't do comparisons, it won't give detailed information about System pieces. But it is nice for searching for certain kinds of files, files with certain creation/modification dates, or other attributes, or for advanced options like invisible files or files with certain types or creators. See below.
Once you have your custom search options set, you will get your results in the first window, with the location of the selected item in the second, like below:
File Buddy
File Buddy 5.x, quite simply, does a lot of cool stuff. For this section, we'll concentrate on the Cleaning menu, with particular attention to the Take Snapshot and Compare Snapshots functions:
As you can see the first section finds things like duplicate files, invisible items, or orphaned files.
Check Aliases will examine all aliases on a volume you select and make sure their targets exist (useful for finding orphaned aliases). As for Scanning Prefs or Empties, we don't really use them (or find them accurate). No biggie.
Delete Unused Icon Files - this I wouldn't do until you check your disk with a directory repair utility and maybe even rebuild the desktop first...
Take Snapshot is the main useful part of File Buddy for us here. It allows you to take a snapshot of the contents of your System Folder, etc, meaning you can get a record of its exact contents before you install software, then take another one after you're finished. Compare Snapshots will then allow you to see exactly which files have been added, moved, deleted, renamed...
Erase file and especially, Erase Unused Space, are things I'd do only after running a directory repair utility (if you have directory problems of any kind, erasing unused space only makes matters worse). If you don't already know, when you trash something all it does is make a note of the "free space" in the directory, but the file is physically still there until it gets overwritten. Erase Unused Space will write over all sectors of the disk marked as free space, so that trashed files cannot be recovered.
Installer Observer 3.x is similar to File Buddy in that it can take Save Conditions (take snapshots) and then Examine Changes (compare snapshots). It also does Folder Sets, which is similar to another program we'll examine below, Conflict Catcher. Most of this can be done from the Options window, shown at left, but there are the duplicate functions available in the File menu, shown to the left.
The Folder Sets menu is where you can create or edit folder sets.
TomeViewer
TomeViewer 1.3 is basically a utility that lets you view and expand installation tome contents - which are merely archives of the pieces that get installed (e.g. by Mac OS 9.2.2 update, shown below).
Basically, use the File menu to open the tome you wish to view...
Then you can see the list of items that might be installed (including Type and Creator, as well as Version), and even use the Archive menu to Show Info or Expand selected items to your Desktop or wherever you choose (such as ATI Graphics Accelerator, shown here).
Conflict Catcher
Conflict Catcher 8.1 is another program that does a lot of cool things for managing the System, including things like Clean Install System Merging. For our purposes, we'll concentrate on its powers of information about System components. As you see below, the Conflict Catcher window has options like Sets (i.e. of startup items in Control Panels, Extensions, etc), Groups, Conflict Testing and Reporting. To get info on a particular component, such as what I have selected here (ATI Graphics Accelerator), option-click on the item in the list, and it will show the info to the left. To force this window to appear on startup, hold down the space bar. Or, you can use the menubar item (on the right next to the Application menu, or Finder as it's commonly known) to open it anytime.
Issues with Final Cut Pro & LightWave
There are a few applications that have one gotcha - it's not as simple as merely copying a preference file to the master image and distributing it to every machine. Final Cut Pro 2.x and LightWave 6.x both utilize a file that must be configured individually on each machine, to contain the licensing information (as a weak way to enforce copy protection). Final Cut Pro uses the "Final Cut Pro User ID" which is in System Folder: Preferences: Final Cut Pro Data; LightWave uses the "License.key" which is in Lightwave 6: Programs. The two methods for dealing with these files are 1) "ignoring" that particular file in the distribution instructions, or 2) keeping copies of all the ID/key files on the server and then coding the distribution instructions to put the correct file on the correct machine. We prefer option 2 because it is more robust and saves us the trouble of re-creating the ID/key files if they happen to get deleted. The files still work if they get renamed for storage on the server - just as long as they are returned to the expected name once they are on each machine.
Other Gotchas
Some other things to watch for are fairly harmless, while some are quite disagreeable. One harmless example would be software that might not name its System pieces intuitively, but the pieces can at least be found easily by searching for files of a certain type/creator. In the medium section, there are apps that use path-based preferences to find things (so that you have to install the original on a computer with the same hard drive name as the ones that you will distribute the app to, and all these hard drives must have the same name as well), or apps that put some items in unexpected locations such as the root of the System Folder (e.g. the Scanner Settings file for OmniPage, or the EfiColor items for QuarkXPress 3.x). In the odious catagory, I would place apps that utilize cryptically-named and/or invisible files to enforce licensing (e.g. MacLinkPlus' invisible "System.kas" file, or Cinema 4D's "mca2"), or apps like the two above (FCP and Lightwave) which use machine-specific license key or ID files. Of course we hardly need mention the use of dongles or network-based licensing verification (usually coupled with requiring single-user only licensing), way at the bottom of the scale of user-friendliness...