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.
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
/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
$
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.
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.
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?
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
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
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!