Well, I learned the minimal amount of shell scripting needed to duplicate my test-case postflight, and the /bin/sh version worked.
This is very, very odd. Why shouldn't the installer work with just any UNIX executable?
I'm tempted to say there's some residual bug, other than the use of Ruby, that prevented the Ruby postflight from working.
— F On May 2, 2007, at 6:00 PM, Bill Coderre wrote: I was under the impression that any unix executable can work, and that includes binaries and text files with the usual Unix "magic cookies" at the top. Here at Apple, we use a LOT of perl with this "magic cookie": #!/usr/bin/perl
Personally, I've never tried ruby and I'm no expert on magic cookies.
Maybe the guy who thinks the magic cookie is wrong is barking up the right tree. On May 2, 2007, at 3:24 PM, Mike wrote: Fritz Anderson wrote: On May 2, 2007, at 4:45 PM, Mike wrote: Did you remove any extension from the script's filename?
The script needs to be named "postflight", not "postflight.sh" for example.
Yes, indeed I did. In fact, the script in question has always been named "postflight," and has never had any extension. (And I just now checked in a Finder Info window to verify this.) Anyway, if the script had the wrong name, surely Installer.app would never notice it at all, rather than log a message about failing to run it? An off-list correspondent suggests that a Ruby script — even in the form of an executable beginning with "#! /usr/bin/env ruby" — might be illegal in a postflight role. I doubt this, but is it possible? — F
Fritz Anderson wrote: I have in my package a script named 'postflight'. It appears in the Contents/Resources directory of the package. It has the executable bits set. It is a Ruby script, with the first line being #! /usr/bin/env ruby . Whenever I try the installer, the only error appearing in the log is this: <date> <hostname> : Install failed: The following install step failed: run postflight script for <myPackageName>
...
|