OS X Package does not install on 10.11

Started by ExifFan, July 07, 2015, 08:22:22 PM

Previous topic - Next topic

ExifFan

Quote from your website:
QuoteThe OS X package installs the ExifTool command-line application and libraries in /usr/bin.

This seems to cause the package to fail to install on the 10.11 Developer Preview because of a feature they call System Integrity Protection. I think you might need to change your package to install to /usr/local/bin for it to work.

Phil Harvey

Thanks for this report.

Well, isn't that just lovely.

Unfortunately, /usr/local/bin is not in the default path, so I must tamper with the system-wide path settings if I want to do this, which to me is more evil than installing into /usr/bin.

Right now, installing ExifTool doesn't change any of your system settings, which is the way I like it.  But perhaps there is no way around this with 10.11.

If you have any suggestions, I'd be happy to hear them.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

ExifFan

/usr/local/bin appears to be in the user's path on the developer preview I'm using:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

I think you could also do something like install to /usr/local/exiftool/bin

Then you can create a file at /etc/paths.d/exiftool that looks like:
$ cat /etc/paths.d/exiftool
/usr/local/exiftool/bin
$


Phil Harvey

#3
Thanks.

Your paths.d suggestion is very useful.  The installer will be able to create a file in this directory in 10.11?

If /etc/paths.d works for older systems (at least back to 10.3), then maybe I could just change the install location to /usr/local/bin for all system versions, but then I would need to figure out how to delete exiftool from /usr/bin when upgrading.

Otherwise I would somehow need to install in different locations for different systems.  I'll have to figure out if this is possible.  I'm using a very old version of the package maker to be backward compatible with old versions of OS X.

- Phil

Edit:  I ran some tests.  The OS X installer automatically removes the old version from /usr/bin when upgrading.  Cool.  I have also figured out a way to write the /etc/paths.d/exiftool file.  So now I'm all set as long as /etc/paths.d works for older OS X versions.

Edit2:  Not so fast.  The standard Perl install puts exiftool in /opt/local/bin.  Will this break with 10.11 too?  Or if this is OK and /opt/local/bin is writable, then maybe I should install there instead of /usr/local/bin.  What do you think?

Edit3:  I checked, and OS X 10.3 doesn't have /etc/paths.d, so I'll have to figure out what to do about older versions.
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

ExifFan

Looks like /opt is good. I think they're just protecting locations where they put things:

$ sudo mkdir -p /opt/local/bin
$ sudo touch /opt/local/bin/foo
$

I think both /opt/local/bin and /usr/local/bin are both fine locations. /opt/local/bin isn't in the PATH by default though.

I'm not sure on the history of /etc/paths.d.

Hayo Baan

Hi Phil,

To give my two cents here, I think I would advise against /opt. I don't think this is a recommended path any longer; on my Mac system at least, it does not exist and as far as I have seen, command-line tools all choose somewhere in /usr/local. So perhaps you should do too? The full perl install of exiftool already does this, so why not install the version that installs as a Mac package there too?
Hayo Baan – Photography
Web: www.hayobaan.nl

Phil Harvey

Thanks for the comments.

On my 10.10 system here, for some reason the full install used /opt/local (I'm 98% sure), and that is why I was wondering about this.  But if Hayo's doesn't, it must be something different on my system (I have a zillion other packages installed in /opt/local, which may be the reason).

I like /usr/local better anyway.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

Please let me know if ExifTool-9.99.dmg installs OK for you on OS X 10.11.  With this version I have changed the install location to /usr/local/bin

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Hubert

Hi,

For me, ExifTool-10.00 installs ok in /usr/local/bin/ on OSX 10.11 and runs from the command line.

But AppleScripts don't find it there.

For example

do shell script "ExifTool"

returns

"sh: ExifTool: command not found"

I fixed this by modifying the relevant line in my Folder Action script to

do shell script "/usr/local/bin/ExifTool"

(followed by a whole load of parameters).

Hope this helps someone!