yo tecleo echo $PATH
en la línea de comandos y obtener
/opt/local/bin:/opt/local/sbin:/Users/andrew/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin
Me pregunto dónde se está arreglando esto desde mi .bash_login
archivo está vacío.
Estoy particularmente preocupado de que, después de instalar MacPorts, instaló un montón de basura en /opt
. No creo que ese directorio exista en una instalación normal de Mac OS X.
Actualizar: Gracias a Jtimberman para corregir mi echo $PATH
declaración
macos
command-line
osx-snow-leopard
bash
path
Andrew
fuente
fuente
easiest solution when you want to make a site-wide path change (e.g. to include /usr/libexec or whatever) is to edit
/etc/paths
. While the new
/etc/paths.d/
thing is functional, it's actually more hassle than maintaining a single file. As others have hinted but not spelled out, if the path changes you want would be useful only for one user, it's best to make that change in the bash and/or tcsh config files in that user's home directory instead of system-wide.
/etc/paths.d
Es útil para la instalación de scripts. Si quiero que mi script de instalación agregue el programa instalado a la ruta, puedo colocar un archivo en/etc/paths.d
. Si quiero editar la ruta manualmente,/etc/paths
Es una mejor opción.Respuestas:
Cuando
bash
comienza a leer los siguientes archivos cada vez que inicie sesión. Para los fines de OS X, esto significa que cada vez que abra un nuevoTerminal
ventana.Cuando comienzas un nuevo shell escribiendo
bash
en la línea de comandos, se lee.bashrc
OS X también usa
~/.MacOSX/environment.plist
para establecer más variables de entorno, incluyendo rutas si es necesario.Finalmente,
/etc/paths
y/etc/paths.d
son leídos por el shell también./opt/local/bin
se agregan en~/.tcshrc
por MacPorts. También asegúrese de mirar en~/.cshrc
.fuente
~/.MacOSX/environment.plist
No funciona para algunas personas. En Cambiar ruta para OS X una alternativa utilizando la carpeta/etc/paths.d
es descrito. No he probado eso.~/.cshrc
. Fui loco tratando de averiguar por qué~/.profile
no estaba funcionando.bashrc
Se lee independientemente si escribesbash
o no.Echa un vistazo al archivo
/etc/paths
, que es utilizado por/usr/libexec/path_helper
, que es utilizado por/etc/profile
.Para MacPorts, use
sudo /etc/paths/opt/local/bin
y vuelva a abrir la ventana de terminal.fuente
En serio, Leopard nos dio una nueva forma de agregar ruta. Simplemente cree un archivo que contenga la parte de la ruta que desea agregar y colóquelo en /etc/paths.d
Un ejemplo rápido de hacer esto en un solo paso es:
De lo contrario, puede ir a /etc/paths.d y colocar el archivo directamente allí. De cualquier manera, cualquier parte de la ruta en los archivos de ese directorio se agregará a la ruta predeterminada.
Esto también funciona para manpath.
Aquí hay un enlace a más detalles:
ars technica: ¿Cómo agrego algo a PATH en el leopardo de las nieves?
En una segunda nota: MacPorts pone todo en el directorio opt precisamente porque no es usado por las cosas de Apple. De esa manera no entrará en conflicto. Su guía (excelentemente escrita, BTW) tiene una explicación de por qué usa opt y cómo cambiar ese valor predeterminado si lo desea.
Guia de MacPorts
fuente
I have to concur that there's nothing weird or bad about MacPorts using
/opt
(likewise Fink uses /sw); trying to replace stock Mac BSD parts with bleeding-edge builds from external projects like these is a recipe for an unusable system that requires an OS reinstallation.
Para mostrar tu camino, echo $ PATH.
Para configurar su camino, edite
~/.bash_profile
no~/.bash_login
.fuente
También está el camino determinado por ssh .
Comparar
echo $PATH
assh localhost 'echo $PATH'
. Como ssh no lee / etc / profile, / usr / libexec / path_helper no se ejecuta y, por lo tanto, / etc / paths se omite. Ahora intentassh localhost 'source /etc/profile; echo $PATH'
. Los caminos deberían estar más cerca. Es probable que las diferencias restantes se deban a la modificación de la ruta en su .bash_profile (que también se omite con ssh) y .bashrc (que se lee con ssh).Si desea que su ruta ssh sea similar a su ruta de terminal normal, puede agregar
source /etc/profile
a tu .bashrc.fuente
Se podría definir en:
/etc/paths
fuente
En realidad se almacena en su
.profile
archivo en lugar de.bash_login
y es común que MacPorts use esto en lugar de.bash_login
expediente.También el
/opt
El directorio generalmente lo crea MacPorts y almacena sus archivos en esta carpeta.fuente
Respecto a docs para
/usr/libexec/path_helper
utilidad, componentes iniciales para $ PATH se tomó de/etc/paths
y por defecto se ve comopara OS-X Snow Leopard
fuente