MacOS – see modifications made to the PATH environment variable by the Go installer

bashenvironment-variablesmacosmojave

I've identified several changes to the PATH variable in Bash that aren't listed in e.g. /etc/profile, ~/.profile, .bash_profile, ~/.bashrc.

The following snippet from the Go installation page mentions that packages may change the environment.

How can I see changes to the environment made by packages?

https://golang.org/doc/install

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.

Best Answer

The /etc/profile file, which Bash executes for login shells, includes the following content:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

It's the path_helper program that sets up the PATH environment variable.

man path_helper:

The path_helper utility reads the contents of the files in the directories /etc/paths.d and /etc/manpaths.d and appends their contents to the PATH and MANPATH environment variables respectively. ...

In particular, the Go installer creates a file called go in /etc/paths.d with the following content:

cat /etc/paths.d/go 
/usr/local/go/bin