Fixing Time Machine Skippage

Time Machine has been skipping some folders on my work machine, and every simple trick I tried failed to make it back them up. Finally, I dug deep and found the problem: the OS X Extended Attributes for those folders contained this attribute:com.apple.metadata:com_apple_backup_excludeItem
The problem here is that these folders are part of an Xcode project, and it seems that Xcode is tagging them for exclusion. Not nice.
The “how to remove this” instructions came from stackoverflow.com.
The salient bit from that article is this:

Use the xattr command. You can inspect the extended attributes:

$ xattr s.7z
com.apple.metadata:kMDItemWhereFroms
com.apple.quarantine

and use the -d option to delete one extended attribute:

$ xattr -d com.apple.quarantine s.7z
$ xattr s.7z
com.apple.metadata:kMDItemWhereFroms
google_pluslinkedingoogle_pluslinkedinby feather

Setting Up Ruby on Snow Leopard Server

I had the opportunity to configure a new Snow Leopard Server for a customer who is running a Ruby application. Despite Apple’s claim that Snow Leopard Server is ready “out of the box” it turns out it isn’t quite “all” ready. Below are the extra things I had to do. Special thanks to Ryan Wilcox (Wilcox Development) who found the pertinent Apple KnowledgeBase page.

  1. Visit http://support.apple.com/kb/TA25017 (MySQL header files available for download)
  2. Follow the link to the current header files
  3. Download the MySQL binary. Here the instructions on Apple’s page (for Leopard) fall apart. Since Snow Leopard automatically un-zips the download, all you have to do now is:
  4. sudo tar -zxvf <downloaded_file> -C /

That did it.

Not quite. Later on I got word that a ‘migrate.db’ failed. Searching about found this page from TechLiberty and this page from rubyonrails.org — both provide useful information buried in stuff I didn’t need, as they are dealing with the ‘regular’ version of Snow Leopard.

Bottom line: MySQL has to be installed as a 64-bit application. On Snow Leopard Server, the magic incantation is:

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

(Note the path to mysql_config is different than those pages; this is the ‘server’ difference.)


Another very nice thing Ryan showed me was the Unix “Locate” command. But first you have to build the locate database by issuing this command:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

The complete archive of the iChat between Ryan and myself is found in the iChat transcripts and in the “Internet related” folder on my main machine.

And the ‘locate’ database is rebuilt nightly, so don’t expect real-time updates.

May 27, 2010 12:52 PM

google_pluslinkedingoogle_pluslinkedinby feather

OS X Server Software Updates

After a few miserable attempts at getting OS X Server to handle Software Updates for local machines, I finally figured out what the problem is: Apple’s documentation.

In the System Imaging and SW Update Admin guide it says:

Pointing Unmanaged Clients to a Software Update Server
Use the defaults command in Terminal to point unmanaged client computers to a specific Software Update server. To point unmanaged clients to a specific software update server:

  1. Open Terminal on the unmanaged client.
  2. Enter the following command:

defaults write com.apple.SoftwareUpdate CatalogURL http://host.domain.com:8088/

(Replace the sample URL with the URL of your Software Update server.)

This is wrong!

You can’t simply point at your user’s SoftwareUpdate plist, you have to point at the system’s plist! The correct example then, is:

defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL http://host.domain.com:8088/

That works for OS X 10.4. For 10.5 and 10.6 there is more to do. See a later entry for the rest of the story.

You can check your work with this line:

defaults read /Library/Preferences/com.apple.SoftwareUpdate

Jul 29, 2008 6:22 PM

google_pluslinkedingoogle_pluslinkedinby feather