2008-12-07 9 views
6

Tengo un problema de ruta en OS X Leopard. Parece que OS X está agregando otras rutas que no estoy diciendo y está jugando con mi prioridad de ruta. Solo tengo un archivo .bash_login, no tengo un archivo .bashrc ni un archivo .profile. Mi archivo .bash_login es como tal:¿Cuáles son los diversos archivos que podrían tener declaraciones PATH para OS X Terminal en ellos?

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" 

Cuando corro de exportación este es el camino que vuelve:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin" 

¿Alguna idea sobre lo que podría poner/usr/bin allí y cómo podría conseguir /usr/local/bin para ser una prioridad más alta.

Etiquetar esto también para Rails porque eso es lo que estoy trabajando ahora ... parece que el Mac incorporado Ruby, Rails y Gems tienen prioridad sobre el que tengo instalado en /usr/local/bin, pensé que tal vez ustedes compañeros Rubyists podrían ayudar también.

Respuesta

17

¿Has mirado en el interior de estos dos directorios:

/etc/paths.d/ 
/etc/manpaths.d 

Cualquier rutas definidas en archivos en esos directorios conseguir añade automáticamente a la variable PATH - Yo sobre todo utilizar esos dos directorios para poner las aplicaciones instaladas de terceros en el CAMINO. Además, tienen un vistazo a la página del manual de path_helper en OS X.

EDITAR: En cuanto a los contenidos de /etc/profile, puedo ver que path_helper se ejecuta en primer lugar. La página man para path_helper dice que antes de leer archivos en los directorios /etc/paths.d/ y /etc/manpaths.d/, path_helper lee y configura las rutas definidas en los archivos /etc/paths y /etc/manpaths. Una mirada a /etc/paths revela esto:

$ cat /etc/paths 
/usr/bin 
/bin 
/usr/sbin 
/sbin 
/usr/local/bin 

Y, creo, los que representan la mitad de lo que están viendo como se establece en el PATH.

+0

Gracias ayaz, que al menos me dijo cómo las rutas X11 y git se estaban agregando allí. Todavía estoy a la caza de otros artículos. –

+0

@Tim K: La edición de mi respuesta lo que debo creer cuenta para los otros artículos. – ayaz

+0

¡increíble! ¡Muchas gracias! –

4

Parece que sus cambios no se están aplicando. Tenga en cuenta que no/usr/local/mysql/bin

Lea la sección de la página de manual de bash en INVOCATION, .bash_login solo se lee si se trata de un shell de inicio de sesión, que no es el shell del terminal. Tienes que ponerlo en ~/.bashrc en su lugar. Se leerá para inicios de sesión y shells que no sean de inicio de sesión.

+0

1 no tienen que trabajar bastante todavía - pero la página hombre me da un comienzo gracias a Brian. Me pregunto si es necesario completar el cierre de sesión para que bashrc cargue. –

+0

has probado "source .bashrc" ya que este comando ejecutará ese archivo – Lodle

0

También he encontrado un interesante artículo sobre los foros de soporte de Apple:

.bash_login no longer executed

Con esa información me encontré con un archivo .bash_profile pasado por alto en blanco que tenía que era de carga - y matando a todos los información que estaba tratando de establecer en mi camino.

Así que supongo que parece que podríamos tener varias respuestas "correctas" según la situación.

+0

Lo que hago es lanzar todas las cosas de inicialización de BASH específicas del usuario en ~/.bashrc, y colocar una línea en ~/.bash_profile para source ~/.bashrc. – ayaz

0

sólo hay que poner en .bashrc o .login y se le multa

Cuestiones relacionadas