Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Now that I have started the Software Update service on my Leopard Server, how do I change my client Macs to check for updates on it?

share|improve this question

7 Answers 7

up vote 22 down vote accepted

Defaults

The simplest method is to run a defaults command on the client Macs (easily pushed via Apple Remote Desktop):

defaults write com.apple.SoftwareUpdate CatalogURL 'HTTP_URL_FOR_CATALOG'

for a user. If you run it via sudo it will set it for whenever you use softwareupdate as root.

The HTTP_URL_FOR_CATALOG has been changed with Mac OS X 10.6. If you use MCX it will automatically pick the new catalog - however if doing it manually the following URLs need to be used for whichever client version is in question:

  • Mac OS X 10.4: http://mysus.example.com:8088/index.sucatalog
  • Mac OS X 10.5: http://mysus.example.com:8088/index-leopard.merged-1.sucatalog.sucatalog
  • Mac OS X 10.6: http://mysus.example.com:8088/index-leopard-snowleopard.merged-1.sucatalog
  • Mac OS X 10.7: http://mysus.example.com:8088/index-lion-snowleopard-leopard.merged-1.sucatalog
  • Mac OS X 10.8: index-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog

To double check this applied you can run the following command:

/usr/libexec/PlistBuddy -c Print /Library/Preferences/com.apple.SoftwareUpdate.plist
and /usr/libexec/PlistBuddy -c Print ~/Library/Preferences/com.apple.SoftwareUpdate.plist
to see what settings are for the computer and user appropriately.

If this is working correctly when running Software Update (GUI) you should see the server address appear in parenthesis in the title of the window.

MCX

Another alternative is to use Workgroup Manager to manage the preferences via MCX from your server. This can be done for users, or for computers if they are bound to your Open Directory.

If you are using 10.5 Server or newer: you can simply use the Software Update section under Preferences.

Manually:

  1. Choose the accounts, computers, or groups to have the preference applied to.
  2. Click on Preferences, and then the Details tab
  3. Press the Add... button and navigate to /Library/Preferences/com.apple.SoftwareUpdate.plist
  4. Press Edit...
  5. Under Often, add a New Key and enter the name CatalogURL
  6. Make sure the type is string and then enter your SUS URL (eg. http://mysus.example.com:8088/index.sucatalog or if using 10.6: http://mysus.examle.com:8088/ - see above from the defaults section)
  7. Press Apply Now, then Done. Once users/computers have refreshed their MCX settings (usually the next login or restart) the new settings will take over.

If this is working correctly when running Software Update (GUI) you should see the server address appear in parenthesis in the title of the window.

share|improve this answer
    
I tried it on my Snow Leopard client, both as user and via sudo. netstats shows that softwareupdates is still contacting apple.com ! –  AlberT Oct 1 '09 at 11:25
    
@AlberT: I've updated the post, this should help with the 10.6 issue. If you use PlistBuddy what server does it say it is attempting to connect to? –  Chealion Oct 1 '09 at 16:12
    
I found my own solution and posted it yesterday –  AlberT Oct 2 '09 at 9:07
    
It looks like the filename for 10.7 is index-lion-snowleopard-leopard.merged-1.sucatalog. Found it at support.apple.com/kb/HT4771 –  Chris R. Donnelly Jun 13 '12 at 0:34

In order to have a system-wide configuration one has to run the following:

sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL "http://your.updates-server.lan:8088/index.sucatalog"

In order to correctly work both on Leopard and Snow Leopard the right command to issue is:

defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL "http://your.updates-server.lan:8088/index-leopard-snowleopard.merged-1.sucatalog"

Happily used and tested on my network :)

share|improve this answer

The DNS trick that Chealion points out is fantastic. I use it at our office, and every computer on our LAN will automatically pull the updates from the local repository at high speed without any configuration.

Create the swscan.apple.com DNS zone on your internal DNS server, and have it resolve via an A record to your Mac OS X Server. On the Mac OS X Server itself, edit the /etc/hosts file and add the actual IP address for swscan.apple.com so that it doesn't resolve back to itself.

One thing to point out - you will need a Snow Leopard server for it to work with Snow Leopard clients - otherwise it breaks.

Note - 10.5 SU Repository is in /usr/share/swupd, 10.6 SU Repository is moved to /private/var/db/swupd.

You also need to enable the Web Service and add the following Web Aliases on port 80 in Server Admin, for 10.4, 10.5, and 10.6 clients to get the updates:

Pattern: index.sucatalog
Path: /private/var/db/swupd/html/content/catalogs/index.sucatalog

Pattern: /content/catalogs/others/index-leopard.merged-1.sucatalog
Path: /private/var/db/swupd/html/content/catalogs/others/index-leopard.merged-1.sucatalog

Pattern: /content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog
Path: /private/var/db/swupd/html/content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog

Pattern: /content/catalogs/index-1.sucatalog
Path: /private/var/db/swupd/html/content/catalogs/index.sucatalog
share|improve this answer

Software Update Enabler is an excellent free application for configuring clients.

share|improve this answer

I came up with a really simple method for delivering software updates to all unmanaged macs on the network, with a minimal amount of hackery on a 10.7 lion server.

  1. make an A record in DNS as stated above, make sure swscan.apple.com is pointed at the IP for your server.

  2. add the correct entries for swcan.apple.com and swquery.apple.com to your servers /etc/hosts file, to ensure that it will still get updates from apple.

  3. enable the web service, and leave everything at defaults - note the path that the web service is using.

  4. create a symlink, replacing the web service's path with the location of your software update catalogs:

ln -Ffs /private/var/db/swupd/html /Library/Server/Web/Data/Sites/Default

that pretty much got me sorted with a minimum effort.

share|improve this answer

I have made an app that will set the Software Update Server on Snow Leopard, Leopard or Tiger. It will set the Software Update Server by checking the Server's version to see if it is compatible with your OS version. If you try to use a Leopard (no Snow Leopard Hack) or Tiger Server with Snow Leopard it will say it is not compatible. If it is it will set it. If you are trying to use a Tiger Server with Leopard it will set it but you will only get Tiger updates.

Download: http://iwczone.co.uk/projects/iSetSU/

MacUpdate: http://www.macupdate.com/info.php/id/33740/iset-sus

share|improve this answer

To use Leopard Server Software Update Server with Snow Leopard Clients see Jan Uschok's answer to "Can 10.5.8 Server serve 10.6 updates using Software Update Services?".

share|improve this answer
    
And, to serve Lion updates from a Snow Leopard Server, use this technote: support.apple.com/kb/HT4771?viewlocale=en_US&locale=en_US –  Dennis Wurster Jun 26 '12 at 21:27

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.