One of the nice things about 10.6 is how much better Time Machine backups perform. I’d had set up Time Machine on 10.5 to back up to an Time Machine AFP share, which was hosted from one of my home 10.5 servers. Performance was not great, and I had issues with Finder occasionally beachballing or being herky-jerky while Time Machine was making a backup. Eventually, I turned Time Machine backups off and resorted to backing up my account’s home folder with rsync, using RipCord.
When I upgraded to 10.6, I decided to give network Time Machine backups another try, and I’m glad that I did. Once Time Machine did the first backup (which ran overnight, due to the fact that it was backing up 50 GBs over a WiFi network), Time Machine has behaved very smoothly and most of the time I don’t even notice that it’s done a backup until after the fact.
I ran into an puzzle recently on 10.6.x, where I noticed that installer packages were not leaving a receipt behind in /Library/Receipts. This was weird because, from pretty much Mac OS X 10.0.0 – 10.5.8, here’s how Installer.app generally worked:
The installation process in Mac OS X Server centers around the Installer.app located in /System/Administration. The Installer.app installs groups of files called packages. All packages end in the .pkg or .mpkg extensions. A .pkg extension indicates a single package where as a .mpkg extension signifies multiple packages to be installed. Once a package is installed a receipt is created to keep track of the files installed and to remove the package if needed. All receipts are stored in the /Local/Library/Receipts directory. (This was changed to /Library/Receipts in later version of the OS once /Local was dropped.)
In 10.6.x, this Installer.app behavior had changed, so that receipts were no longer being stored in /Library/Receipts. But where? Fortunately, when I asked in the AFP548 forums, somebody was able to tell me.
“Apple changed the location. It is now /var/db/receipts. The naming scheme has also changed to the com/net/org.companyname…plist format as well.”
When I checked /var/db/receipts, there were a series of .bom and .plist files which corresponded to the installer packages I’d been installing. So on the plus side, no bug; Installer’s receipt-generating behavior. Down side? All that re-install documentation that folks put together with regards to removing receipts before re-installing something (including Apple’s documentation) will need to be updated for 10.6.x. That’ll definitely cause some confusion.
I discovered that Apple has actually changed this in 10.5.x as well. In the span of three reference releases (10.4, 10.5, and 10.6) Apple changed the receipt format three times. In 10.4.x and earlier, the Installer.app behavior was to store receipts in /Library/Receipts. In 10.5.x, the receipt database was an Sqlite3 database, stored in /Library/Receipts/db/ or ~/Library/Receipts/db/ for packages installed inside your home directory. In 10.6.x, the receipt files and BOM files are now stored as files (not in a database) at /var/db/receipts. This is when the installer package is the newer flat format. For the older bundle format, the receipt bundles are still stored in /Library/Receipts.
One change in 10.6.x was that Apple added new behavior to the Dock’s contextual menu. In 10.5.x and earlier, when you clicked on a program’s icon, you’d get a contextual menu with that program’s Dock commands, along with the OS X system commands (Hide/Show, Quit, and Options).
In 10.6.x, clicking and holding on an application icon in the 10.6 Dock invokes Exposé for that application. This is the same effect you see when pressing the F10 key in 10.4.x and later.
I personally found the new behavior aggravating, especially since my long-established habit is to use the Mail dock contextual menu to select “Get New Mail”. In 10.6, I found that I was launching Exposé instead. I could get the old contextual menus back by doing a Control-click on the dock icon, but I kept looking for a way to get the old behavior back.
Fortunately, somebody has found it. Here’s how you tell the Dock to use the 10.5.x-style dock contextual menu:
1. Open Terminal
2. Enter defaults write com.apple.Dock show-expose-menus -bool no and hit Return.
This change will take effect the next time that the Dock starts up, so if you want to automatically restart the Dock after applying the command, here’s the command you enter into Terminal:
defaults write com.apple.Dock show-expose-menus -bool no; killall Dock