Apple - How is my $PATH variable built on macOS?
The INVOCATION section of the bash man page says
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.
Of particular interest is /etc/profile
, which uses path_helper
to build a path from what it finds in /etc/paths
and /etc/paths.d/*
.
If you fix the typo in your PATH assignment and replace usr/local/bin
with /usr/local/bin
Homebrew should stop complaining.
The other stuff (/opt/local/...
) is definitively added somewhere later during shell initialization (meaning after source ~/.bashrc
or after . ~/bin/dotfiles/bash/env
). You will have to look through the different files (or grep for /opt/local
or PATH.*PATH
) to see where it happens (and why).