Tengo una comprensión básica de cómo se puede establecer $ PATH, pero ¿hay una documentación que describa completamente dónde Mac OS obtiene todas las rutas que se agregan a $ PATH? Soy consciente de cosas como /etc/profile
, /etc/paths
y /etc/profile.d
, pero ¿hay otros scripts que finalmente afectan el valor de $ PATH? Tampoco estoy muy familiarizado entre el no inicio de sesión y los shells de inicio de sesión ( .bashrc
, .bash_profile
), pero soy consciente de las diferencias básicas.
/etc/profile
es un script utilizado principalmente por bash? No tengo experiencias con otros proyectiles, pero supongo que siguen una estructura diferente./etc/profile
es utilizado por la mayoría (¿todo? No está 100% seguro). Es por eso que es una buena opción poner las cosas que desea en todas partes, como PATHs. Bash lee.bash_
archivos mientras que Zsh, por ejemplo, lee.zshrc
además de otros. Depende de la cáscara.path_helper
es que no pidió conchas interactivo de no ingreso (ni conchas no interactivas). Se llama para shells de inicio de sesión interactivos, de/etc/profile
hecho.Las rutas
/etc/paths
y/etc/paths.d/*
típicamente son agregadasPATH
por path_helper .path_helper
se ejecuta desde/etc/profile
, por lo que se ejecuta cuando se invoca bash como un shell de inicio de sesión interactivo, pero no cuando se invoca bash como un shell sin inicio de sesión o un shell no interactivo./etc/paths
contiene/usr/local/bin
al final de forma predeterminada y/etc/paths.d/
está vacío de forma predeterminada.Terminal e iTerm 2 abren nuevos shells como shells de inicio de sesión por defecto, y el shell abierto cuando ssh a su computadora también es un shell de inicio de sesión. Sin
tmux
embargo, muchos emuladores de terminal en otras plataformas y el modo de shell en Emacs abren nuevos shells como shells sin inicio de sesión.He agregado esta línea a
/etc/launchd.conf
:setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
Cambia el valor del
PATH
proceso de lanzamiento raíz. El valor es heredado por todos los demás procesos, incluidos los procesos lanzados por usuario. Puede aplicar cambios/etc/launchd.conf
reiniciando o ejecutandolaunchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf
y relanzando procesos.En OS X,
~/.profile
no se lee cuando inicia sesión gráficamente. Si ambos~/.bash_profile
y~/.profile
existen, bash tampoco lee~/.profile
.~/.MacOSX/environment.plist
dejó de funcionar en 10.8.fuente