2

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.

1
  • There are various places where such changes can occur. As you seem to focus on Go installation right now, I've changed the question title accordingly. Commented Aug 4, 2019 at 12:41

1 Answer 1

6

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 

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.