2012-07-04 11 views
35
Adams-MacBook-Pro% brew doctor         

Error: /usr/bin occurs before /usr/local/bin 
This means that system-provided programs will be used instead of those 
provided by Homebrew. The following tools exist at both paths: 

    clusterdb 
    createdb 
    createlang 
    createuser 
    dropdb 
    droplang 
    dropuser 
    ecpg 
    git 
    git-cvsserver 
    git-receive-pack 
    git-shell 
    git-upload-archive 
    git-upload-pack 
    gitk 
    pg_config 
    pg_dump 
    pg_dumpall 
    pg_restore 
    pg_upgrade 
    psql 
    reindexdb 
    vacuumdb 

Consider amending your PATH so that /usr/local/bin 
is ahead of /usr/bin in your PATH. 

Aquí es mi camino:brew doctor dice "Error:/usr/bin ocurre antes de/usr/local/bin" cómo solucionarlo?

Adams-MacBook-Pro% echo $PATH         
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

pensé que era peligroso para mover las cosas en la parte delantera? ¿Cómo resuelvo este problema? Además, ni siquiera estoy seguro de dónde encontrar el/user/bin declarado en la ruta.

Gracias

+2

Todo el que tiene este problema, por favor haz lo que dice Homebrew y ejecuta 'echo export PATH = '/ usr/local/bin: $ PATH' >> ~/.bash_profile' Y NO OLVIDES reiniciar Terminal (o la herramienta de línea de comandos que estés usando) y tratar de ejecutar 'brew doctor' de nuevo. –

+0

Para aquellos que ya tienen '/ usr/local/bin' en su PATH pero no antes de'/usr/bin', ver [respuesta de Lelouchcr] (https://stackoverflow.com/a/24219682/3391108) sobre edición '/ etc/paths' (para mantener su PATH más ordenado al no tener entradas duplicadas). – tscizzle

Respuesta

47

$ PATH es simplemente una variable que contiene una cadena. Para poner algo delante:

% PATH=/usr/local/bin:$PATH 
% echo $PATH 
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

Esto no es peligroso, ya que sólo se aplica a la capa actual que tiene abierta (que no afectará a la trayectoria de su sistema o otras conchas).

Para cambiar automáticamente la ruta de todos los proyectiles que abra, colóquelo en ~/.profile. Puede crear este archivo si aún no existe.

En ~/.profile:

homebrew=/usr/local/bin:/usr/local/sbin 
export PATH=$homebrew:$PATH 

export hace que la variable disponible para cualquier proceso secundario de la cáscara.

+0

lo hice, creé ~/.profile y luego echo $ PATH pero la ruta no cambió. Cerré la terminal y volví a abrir, pero seguía siendo el mismo camino. brew doctor todavía se queja. – AdamT

+2

Para que los cambios en ~/.profile surtan efecto, debe volver a abrir su terminal o escribir '% source ~/.profile'. En cuanto a por qué no funciona, primero asegúrese de que el archivo se esté ejecutando como se esperaba. Agregue otra línea a '~/.profile'' echo 'profile works!' 'Luego ejecute'% source ~/.profile'. Avísame si ves eso impreso en la pantalla. – Dean

+0

También debería tener en cuenta que el espacio en blanco es importante aquí. No puede haber espacios en ninguno de los lados del signo igual. – Dean

4

acabo de crear un archivo .bashrc y ha añadido

homebrew=/usr/local/bin:/usr/local/sbin
export PATH=$homebrew:$PATH

que parecía haber hecho el truco!

+0

debe ser/usr/local/bin (no sbin)? – pbreitenbach

+2

Esto lo resolvió para mí: estaba usando el zsh así que simplemente editar .profile o .bash_profile no funcionaría, pero agregar esas líneas a .zshrc hizo el truco. –

0

En OS X Mountain Lion que necesitaba ediciones fue ~/.bash_profile

2

Si realmente desea hacerlo permanente y por defecto, editar el archivo/etc/paths (usando sudo) y mover/usr/local/bin a la parte superior de la lista.

En mi propio .bash_profile utilizo un script llamado "pathadd" que evita que mi PATH se vuelva difícil de manejar y esté llena de duplicados cuando se bifurcan los shells. Así que tomé la acción/etc/paths específicamente para evitar tener directorios duplicados en el PATH añadiendo/usr/local/bin al frente una y otra vez.

10

basta con ejecutar la siguiente línea en la aplicación de terminal favorita:

echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile 

Reinicie el terminal y ejecutar

brew doctor 

la cuestión debe ser resuelta

3

Tal OP de usar zsh.
La manera de resolverlo es edite el ~/.zshrc cada vez que abra iterm cargará este archivo.
Cambie las palabras sobre RUTA.

1

Debe reiniciar su Terminal después de cualquier cambio con $ PATH.

18

Encontré otra manera de resolver esto.

sudo vim /etc/paths 

y añadir/usr/local/bin y/usr/local/sbin como esto

/usr/local/bin 
/usr/local/sbin 
/usr/bin 
/bin 
/usr/sbin 
/sbin 

abrir una pestaña nueva terminal, y luego se verá

~ $ env|grep PATH 
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin 
+3

IMO esta es la forma más limpia de resolverlo. En realidad, soluciona el problema subyacente y no coloca entradas en el PATH dos veces. –

+1

Esta debería ser la respuesta correcta. –

+0

Esto funcionó para mí. Probé qué brew me sugirió, creando .profile, e incluso modificando .bash manualmente. Por supuesto, reinicié la computadora para asegurarme de que ese no era el problema. Nada funcionó excepto esta respuesta. ¡Gracias! –

Cuestiones relacionadas