What was installed?

There are days when several major software updates are released, and keeping track of which have been installed gets quite tricky. If, a few days later, you notice odd things happening, it can be even harder to know whether an update was responsible.

There are now three main ways in which we install or update software in OS X:

  • through the Mac App Store,
  • by downloading an Installer package, and getting the Installer app to perform the installation or update,
  • by downloading a Disk Image or archive, such as a Zip compressed file, and manually moving the contents to an appropriate folder; typically this would be an intact app which is copied into the main Applications folder.

The last of these bypasses the mechanisms built into OS X for recording installation and updating. If you want to keep a record of those events, you will need to keep your own notes, I am afraid. However the first two methods are automatically logged, and this article explains how you can inspect those records.

installappstoreThe Install History

OS X maintains an XML property list file at /Library/Receipts/InstallHistory.plist containing details of all software installed through the App Store, or using the Installer app. As a rolling list, the most recent entry is at the end.

installhistoryInformation accessible here includes:

  • if not an app, what type of entity was installed, e.g. configuration data,
  • the date and time of installation,
  • the name of the entity exposed to the user, e.g. the app name,
  • the version number exposed to the user,
  • the URL of the entity, by which it is known to OS X,
  • the process name of the installer, including softwareupdated (the App Store’s updater), storedownloadd (App Store), Installer (the Installer app).

As this file is readily accessible, and can be parsed and displayed by all apps which can open XML (including text editors), this should be the first choice. However you should ensure that you open it read-only, to protect its integrity.

The Full Details

The Install History does not contain further details, such as any messages or errors which occurred during an installation or update. To examine those, you will need to open Console, and browse the log at /var/log/install.log, which contains a blow-by-blow account of exactly what took place during each installation and update using the first two methods.

installconsoleAs this log contains date and time stamps for each entry, you can use those gained from the Install History to locate the particular event which you are interested in. Console’s log browser also provides a filter facility which can be invaluable.

And There’s More

For all packages which are installed by the first two methods, the Installer (or App Store app) leaves a complete record of exactly what was installed. These are kept in ‘bill of materials’ (BOM) files, stored in the hidden folder /var/db/receipts. To access these, you will need to enter shell commands into Terminal’s command line.

You can obtain a full listing of all the BOMs available by entering
ls /var/db/receipts/
Note that some BOMs overwrite older ones, so you are unlikely, for instance, to find a BOM for every version of iTunes which has ever been installed on that Mac, only the most recent.

installreceiptsThe command shell tool lsbom can read the BOM contents and write them out to Terminal as text. So to view a list of all the individual files installed by the BOM named com.apple.pkg.ProVideoFormats.bom, you would enter the command
lsbom /var/db/receipts/com.apple.pkg.ProVideoFormats.bom

installbomThe files listed there should have tallied with those which can be listed in Installer, once it has opened a package for installation. You should never remove or tamper with BOM files, as they are used by Disk Utility and other tools to repair permissions, and for other purposes. Emptying that folder, for instance, will disable the repair of permissions completely.

Between these different sources of information, you should be able to know exactly what has been installed and updated on your Mac at any time, provided that it has used the App Store or the Installer app for installation. Happy browsing!