Due to a series of unfortunate choices, I accidentally convinced OS X 10.6.8 that it was OS X 10.7. I was mostly able to revert the damage, but sometimes Apple’s Software Update utility will decide to download some 10.7 update and break the a core framework installation, which breaks everything else.
What are the symptoms of such an event? Well, if running almost any application yields a crash with an error that looks like the following, you probably have an inconsistent framework installation.
Instead, we will manually extract the files from the package using
pkgutil and copy them ourselves.
$ pkgutil --expand ./MacOSXUpdCombo10.6.8.pkg ~/combo_update/
If we go into this directory, we will see a bunch of directories with some weird files in them. These are gzipped archives of directories.
$ cd ~/combo_update $ ls Distribution MacOSXUpdCombo10.6.8.Part6.pkg MacOSXUpdCombo10.6.8.Part0.pkg MacOSXUpdCombo10.6.8.Part7.pkg MacOSXUpdCombo10.6.8.Part1.pkg MacOSXUpdCombo10.6.8.Part8.pkg MacOSXUpdCombo10.6.8.Part10.pkg MacOSXUpdCombo10.6.8.Part9.pkg MacOSXUpdCombo10.6.8.Part11.pkg QuickTimePlayer7ForCombo10.6.8.pkg MacOSXUpdCombo10.6.8.Part12.pkg Resources MacOSXUpdCombo10.6.8.Part2.pkg RosettaForCombo10.6.8.pkg MacOSXUpdCombo10.6.8.Part3.pkg SUBaseSystemCombo10.6.8.pkg MacOSXUpdCombo10.6.8.Part4.pkg X11ForCombo10.6.8.pkg MacOSXUpdCombo10.6.8.Part5.pkg $ ls MacOSXUpdCombo10.6.8.Part0.pkg Bom PackageInfo Payload Scripts
Now, we need to unpack these archives to get to the files we need.
$ mkdir payload $ cd payload $ cat ../*.pkg/Payload | gzip -d - | cpio -im
If we look around the payload directory, we can see a familiar Mac OS X directory structure.
$ ls Applications System mach_kernel sbin Library bin private usr
That’s it, your errors should disappear (or at least change). If you are now getting a different framework error, just rinse and repeat with the next affected framework.