Warning: The contents of this post may not be up to date!
Sorry, but if you’re searching for answers about why you can’t reliably set environment variables in OS X (particularly
PATH), the information below may be out of date.
Apple has changed the system so many times in so many different ways it’s difficult to find anything on the internet about this that is correct and up-to-date, so I’ve placed this warning on the top of every post I’ve written about it.
As of 2017-03-02 it appears that the best collection of information is the osx-env-sync project on GitHub and its associated issues.
Be wary of anything that you find on StackOverflow: the answers there may well have been correct at the time but incorrect now.
For reference, my own posts on this problem (newest first) are:
One thing that I didn’t but meant to mention in my post about setting the locale correctly in OS X is a recent post by Python core developer Nick Coghlan, where he talks generally about locales and languages.
One of the points he makes is about getting OS vendors to transition to using Unicode. Nick writes:
For POSIX systems, there are still a lot of systems that don’t use UTF-8 as the preferred encoding and the assumption of ASCII as the preferred encoding in the default
Clocale is positively archaic.
Mac OS X is the platform most tightly controlled by any one entity (Apple), and they’re actually in the best position out of all of the current major platforms when it comes to handling multilingual computing correctly.
They’ve been one of the major drivers of Unicode since the beginning … and were able to force the necessary configuration changes on all their systems
Which brings me back to something I noted in my last post: I don’t have a clean install of OS X. It’s been upgraded from 10.7 up through 10.10. Same story with the machines at work (which are even older).
So is Apple correctly setting the locale now? If any readers have a new machine or a clean install of OS X, could you please check and let me know? (A quick way to test would be to open Script Editor and run
do shell script "locale".)