Since Mac OS X Server 10.4, apple has included a software update service that allows you to mirror their software updates to your local server, and configure your clients to check the local server for updates instead of the Apple servers. This has a few benefits — it can save you a lot of bandwidth when updating lots of clients, you can choose which updates are pushed to your clients and when, and so on. However, when a new major release of Mac OS X comes along, like this past August’s release of Mac OS X 10.6, they want you to upgrade your server OS to the new release for their software update service to grab the updates for the new client OS.
In other words, if you have a server running Mac OS X Server 10.5, you can’t use it to serve updates to client machines running Mac OS X 10.6, unless you upgrade the server to 10.6 as well. This limitation seems a little silly, surely Apple could push an update for Mac OS X Server 10.5 that told it where to look for 10.6 updates. The update service itself doesn’t seem to have really changed — you can tell your 10.6 clients to check your 10.5 server for updates, and it will work fine, you’ll just miss out on updates specific to Mac OS X 10.6.
…or is there a way around this limitation?
Here is how to configure Mac OS X Server 10.5 to serve updates to 10.6 clients. A disclaimer: I am sure this method is not supported (or maybe even frowned upon) by Apple. But, it’s working for me. Also, I am assuming that you are an experienced OS X admin, and I am not responsible if your server blows up or otherwise exhibits unexpected behavior as a result of you following these directions.
- Stop Software Update Services on the server.
- Create a file with the following content and save it to /usr/share/swupd/html/content/meta/mirror-config-1.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">PrimaryCatalog
http://swscan.apple.com/content/catalogs/index.sucatalog
CatalogsList
http://swscan.apple.com/content/catalogs/index.sucatalog
http://swscan.apple.com/content/catalogs/others/index-leopard.merged-1.sucatalog
http://swscan.apple.com/content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog
- Change the metaIndexURL in /etc/swupd/swupd.plist as follows:
metaIndexURL
http://myserver.com:8088/content/meta/mirror-config-1.plist
- Start Software Update Services and wait for it to download the catalog files.
- Generate symbolic links to expose the new catalogs on the local web server:
cd /usr/share/swupd/html
ln -s /usr/share/swupd/html/content/catalogs/index.sucatalog . # this one is probably already present
ln -s /usr/share/swupd/html/content/catalogs/others/index-leopard.merged-1.sucatalog .
ln -s /usr/share/swupd/html/content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog . - Restart Software Update Services again, just to be sure. (After a while, you should notice that it has downloaded some 10.6 updates.)
- Change the URL that the 10.6 clients use to check for updates. Normally, you would use this command:
defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL http://myserver.com:8088/
But now, we’ll use this:
defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL http://myserver.com:8088/index-leopard-snowleopard.merged-1.sucatalog
- Now, the 10.6 clients should be able to get their updates from your 10.5 server.
Now, this wasn’t my idea, I found it in response to a query someone made at Apple’s support web site, back when Mac OS X 10.6 was still pretty new. I am posting it here in hopes that it will help someone else down the line.
Tags: Mac OS X, Mac OS X Server
pantaloni più everyday, stile deep blue tendenza è ancora senza sosta, lo spessore del layout striscia mosaico, livello di anxiety salti senso visivo.
Thanks very much for the post. Just what the doctor ordered. I noticed the problem on one of my servers and it really pissed me off. Glad to finally have a solution in hand.