I'm wondering how PATH variable is set by Mac Installers on Mac OSX.
For example:
Look at golang Mac OSX Installer. From the link https://golang.org/doc/install:
Mac OS X package installer
Download the package file, open it, and follow the prompts to install the Go tools. The package installs the Go distribution to /usr/local/go.
The package should put the /usr/local/go/bin directory in your PATH environment variable. You may need to restart any open Terminal sessions for the change to take effect.
So, the I can see /usr/local/go/bin in $PATH but it's not being set in .profile, .bashrc or launchd.conf.
Can anybody please help me to understand?
There are a couple methods of setting environment variables in Mac OS X (lots of discussion here). In the case the Go package, it is adding a file in /etc/paths.d
named go
that contains /usr/local/go/bin
. Here's an answer to another question explaining that a utility called path_helper is being launched and it's inspecting the /etc/paths.d
directory.
You can verify this yourself by using an application called Pacifist to inspect the contents of the Go package and looking at the files it's installing.