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.dEs ú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/pathsEs una mejor opción.Respuestas:
Cuando
bashcomienza 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 nuevoTerminalventana.Cuando comienzas un nuevo shell escribiendo
bashen la línea de comandos, se lee.bashrcOS X también usa
~/.MacOSX/environment.plistpara establecer más variables de entorno, incluyendo rutas si es necesario.Finalmente,
/etc/pathsy/etc/paths.dson leídos por el shell también./opt/local/binse agregan en~/.tcshrcpor MacPorts. También asegúrese de mirar en~/.cshrc.fuente
~/.MacOSX/environment.plistNo funciona para algunas personas. En Cambiar ruta para OS X una alternativa utilizando la carpeta/etc/paths.des descrito. No he probado eso.~/.cshrc. Fui loco tratando de averiguar por qué~/.profileno estaba funcionando.bashrcSe lee independientemente si escribesbasho 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/biny 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_profileno~/.bash_login.fuente
También está el camino determinado por ssh .
Comparar
echo $PATHassh 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/profilea tu .bashrc.fuente
Se podría definir en:
/etc/pathsfuente
En realidad se almacena en su
.profilearchivo en lugar de.bash_loginy es común que MacPorts use esto en lugar de.bash_loginexpediente.También el
/optEl directorio generalmente lo crea MacPorts y almacena sus archivos en esta carpeta.fuente
Respecto a docs para
/usr/libexec/path_helperutilidad, componentes iniciales para $ PATH se tomó de/etc/pathsy por defecto se ve comopara OS-X Snow Leopard
fuente