At work, I’ve been working on a solution for handling Apple Software Updates for non-administrative users. Each approach I’ve tried has serious obstacles. Here’s a brief history of what I’ve tried and what worked and what didn’t.
Read the rest of this post »
Apple Software Update options
Posted October 12, 2009 by GregNCategories: Deployment, General, OS X
Adobe Product Codes
Posted October 8, 2009 by GregNCategories: Deployment, OS X
While digging into the Adobe install process, I needed to be able to translate from “AdobeCodes” like “{27B54140-8302-4B5D-83DD-AEE4B18BC7A4}” to product names like “Adobe Encore CS4″ and the installer payload name like “AdobeEncore4All”.
I ended up writing a Python script to crawl through the payloads directory of Adobe install media to generate a table. The script is below, and called like:
python adobeparser.py /path/to/payloads
It’s probably not generally useful, though I include it just for completeness…
#!/usr/bin/env python
# encoding: utf-8
"""
adobeparser.py
Created by Greg Neagle on 2009-10-07.
"""
import sys
import os
import optparse
from xml.dom import minidom
def parseAdobeProxyXML(filename):
payloadinfo = {}
dom = minidom.parse(filename)
installer_properties = dom.getElementsByTagName("InstallerProperties")
if installer_properties:
properties = installer_properties[0].getElementsByTagName("Property")
if properties:
for prop in properties:
if 'name' in prop.attributes.keys():
propertyname = prop.attributes['name'].value
propertyvalue = ""
for node in prop.childNodes:
propertyvalue += node.nodeValue
payloadinfo[propertyname] = propertyvalue
return payloadinfo
def analyzePayloads(dirname):
payloads = []
dirname = dirname.rstrip("/")
if dirname.endswith('payloads'):
for payloaditem in os.listdir(dirname):
payloaditempath = os.path.join(dirname, payloaditem)
if os.path.isdir(payloaditempath):
for item in os.listdir(payloaditempath):
if item.endswith(".proxy.xml"):
proxyxmlfile = os.path.join(payloaditempath, item)
payloadinfo = parseAdobeProxyXML(proxyxmlfile)
payloadinfo['ComponentName'] = payloaditem
if payloadinfo:
payloads.append(payloadinfo)
break
return payloads
def main():
p = optparse.OptionParser()
options, arguments = p.parse_args()
if arguments:
payloads = analyzePayloads(arguments[0])
print "Adobe Code\tName\tVersion"
for payload in payloads:
print "%s\t%s\t%s\t%s" % (payload['AdobeCode'], payload['ProductName'], payload['ProductVersion'], payload['ComponentName'])
if __name__ == '__main__':
main()
I ran this script against the payloads folder on the Adobe CS4 Master Collection installation media. I then sorted the output by AdobeCode and added a header line, and here is the result: a tab-delimited list of AdobeCodes, ProductNames, ProductVersions, and PayloadNames.
I hope this list is useful to someone other than me! Combine this with the info here and you can get a pretty good idea of everything that’s installed.
More Adobe Enterprise Deployment Toolkit FAIL
Posted October 7, 2009 by GregNCategories: Deployment, General, OS X
This post will act as a running log of today’s struggles with the CS4 Deployment Toolkit. This post was updated several times today, so if you read it earlier today, there may be new stuff added….
- Start with the install media for Adobe CS4 Master Collection.
- Run the CS4 Deployment Toolkit app and create a “package” that installs only Flash, Dreamweaver, Fireworks, and Contribute.
- Move the package and install media files to the test machine
- Run the AdobeUberInstaller
Result?
Flash, Dreamweaver, Fireworks and Contribute are installed. But…
So are:
After Effects, Encore, Premiere Pro, and Soundbooth. Or are they?
The application folders are there, but inside: broken apps.
Sheesh.
Read the rest of this post »
Adobe Enterprise Deployment Toolkit versus disk images…
Posted October 6, 2009 by GregNCategories: Deployment, OS X
After getting lots of suggestions, and spending a few days tearing apart the JavaScript files that are part of the Adobe setup/install process, I have some progress to report on the task of getting Adobe Enterprise Deployment Toolkit “packages” to work from disk images.
Read the rest of this post »
Adobe Enterprise Deployment Toolkit FAIL
Posted October 1, 2009 by GregNCategories: Deployment, OS X
So I know I’m late to the party here. I’ve just recently started playing with the Adobe Enterprise Deployment Toolkit for deploying CS4 applications. I’ve found all sorts of annoyances and oddities that I wanted to do a sanity check and see if I’m missing anything…
Read the rest of this post »
Adobe Lightroom Installer
Posted April 3, 2009 by GregNCategories: Commentary, OS X
John Welch has written passionately about Adobe installers many times over the years. Here’s another to add to the list, though not as colorfully as Mr. Welch might have done… Read the rest of this post »
Energy Saver scripting
Posted March 31, 2009 by GregNCategories: OS X
Here’s a version of a script we use on all our machines in an attempt to reduce energy usage with a minimum of visible impact on users. Our machines are set to not sleep during the day. This script runs hourly, and if it’s after 7pm and the machine has been idle for 20 minutes or more, it tries to sleep the machine if someone is logged in, or shut it down if no-one is logged in.
The machine is also set to automatically startup or wake at 6am M-F. The net result is that most of our desktop machines go to sleep or shutdown a little after 7pm each weeknight and wake up at 6am each week morning, and our users are none the wiser. Read the rest of this post »
Leopard, MobileAccounts, and NFS homes
Posted February 19, 2009 by GregNCategories: DirectoryService, Leopard, OS X
On the MacEnterprise maillist, Arjen van Bochoven wrote of problems with automatic HomeSyncs under Leopard with NFS home directories. Manual syncs worked fine, but the automatic background syncs would fail with errors that looked like this:
1:: [228] Peer "network" is unable to sync. (-[SPeer_FS_PHD mountPeerVolume] (Peer-FS-PHD.m:140): "'((homePath))' is nil") 0:: [228] [2009/02/19 10:45:10.640] Peer "network" is unable to sync. Not enough peers will be available to continue syncing. 0:: [228] [2009/02/19 10:45:10.640] Aborting sync of "HomeSync_Mirror".
I saw the exact same problem in my environment. This also affected login and logout syncs. Here’s the (ugly) fix. Read the rest of this post »
Image cleanup script
Posted January 23, 2009 by GregNCategories: General, OS X
UPDATE 1/23/09: some commenters asked about cleanup of the LKDC (new in Leopard) – I’ve added that to the script.
At the Macworld Expo 2009 Power Tools System Imaging and Deployment session today, I was asked to share a “checklist” of cleanup steps I use when building images the “classic” way. (The InstaDMG methodology of image building makes cleanup steps unneeded.)
Here’s a cleaned-up version of the script I use, with site-specific stuff removed for the most part.
Read the rest of this post »
Apple Software Update wishes
Posted October 13, 2009 by GregNCategories: Commentary, Deployment, MCX, OS X
Read the rest of this post »
Comments: 4 Comments