4 votos

Los ejecutables en /bin y /usr/bin no se encuentran en la ruta

De alguna manera no puedo ejecutar archivos en /bin o /usr/bin sin proporcionar la ruta completa.

Esto no ocurre cuando se ejecuta desde Terminal, pero, por ejemplo, iTerm no puede ejecutar bash (sólo /bin/bash ), OnyX no puede ejecutar sw_vers .

.profile: export PATH=/opt/local/bin:/opt/local/sbin:/bin:/usr/bin:$PATH 
.profile: export PATH=$PATH 
.bash_history: export PATH="$PATH:"'/Users/gilstrauss/Applications/CrossOver.app/Contents/SharedSupport/CrossOver/bin' 
.bash_history: export PATH=/opt/local/bin:/opt/local/sbin:$PATH 
.bash_history: export PATH=${PATH}:/bin 
.bash_profile: export PATH=/bin:$PATH 
.bashrc: export PATH=${PATH}:/bin:/usr/bin

3voto

Ryan Spears Puntos 1524

Terminal.app iniciar correctamente el intérprete de comandos no significa mucho: se ejecuta /usr/bin/login (con la ruta completa) por defecto, que invoca su shell por defecto (de nuevo: definido con una ruta completa) como un shell de inicio de sesión interactivo (que a su vez leerá tanto .profile y .bashrc y dejarte con un $PATH ). Su problema es conchas no interactivas que no hacen ni lo uno ni lo otro, no reciben $PATH ajustes. Eso parece apuntar a que la configuración de ruta por defecto de OS X ha sido estropeada de alguna manera.

Para comprobarlo, ejecute cat /etc/paths . La salida debería ser (como mínimo)

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

(estos son los valores por defecto en una instalación prístina de OS X). Si faltan los dos primeros, ya tienes la causa y una solución fácil:

mv /etc/paths /etc/paths.old # if you want to keep the current contents
def_paths=(/usr/bin /bin /usr/sbin /sbin)
for p in ${def_paths[@]}; do echo $p >> /etc/paths; done
cat /etc/paths.old >> /etc/paths # append previous contents

Tenga en cuenta que /etc/paths es propiedad de root tendrá que sudo su para que esto funcione.

1voto

user4416 Puntos 41

No sé cómo ha ocurrido, pero su PATH se estropeó, por suerte tiene fácil arreglo. Ejecute lo siguiente en Terminal (o iTerm) para solucionar el problema:

echo "export PATH=$PATH:/bin:/usr/bin" >> ~/.bashrc
source ~/.bashrc

Esto añadirá /bin y /usr/bin al final de su PATH para esta y todas las futuras sesiones de terminal.

1voto

Paul Puntos 170

En OS X es launchd quien establece la ruta inicial para todo, no tus archivos de terminal.

Ahora, en una nota no relacionada, acabo de descubrir que en OS X

ps -E 

mostrará el entorno que se le ha dado al proceso. Estoy seguro de que todo el mundo lo sabía menos yo, ¡pero estoy muy emocionado! ¿Por qué?

Porque ahora puedo dar una respuesta parcial.

ps -EA

Te mostrará el entorno en el que se inició cada proceso, tanto si dicho proceso tiene un terminal de control como si no. Debería ver

/usr/bin:/bin:/usr/sbin:/sbin

Que es lo que también debería obtener al teclear

/bin/launchctl getenv PATH

ya que launchd establece la ruta. Es aquí donde radica tu problema, creo, no en tus dotfiles. Usted puede encontrar la lectura de la página de manual para environ(7) así como path_helper(8) útil. Cuando el sistema funciona correctamente, todas las aplicaciones que ejecutas deberían tener el mismo entorno que launchd. El hecho de que Onyx esté funcionando mal significa que no es un problema del shell, sino del sistema.

Es muy importante que launchctl/launchd establezca la ruta correctamente.

0voto

Sheehan Alam Puntos 13754

¿tienes un .bash_profile ? en la mía

$ cat bash_profile 

source ~/.bashrc
export PATH=$PATH:/opt/local/bin:/opt/local/sbin

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/julia:/usr/local/MacGPG2/bin:/usr/texbin:/opt/local/bin:/opt/local/sbin

(para macports a la ruta). Es lógico que usted podría tener en .bash_profile la línea

export PATH=$PATH:/bin:/usr/bin

Y a ver cómo va. Mi conjetura es que usted debe haber hecho algo muy grave a su máquina, por lo que hacer una copia de seguridad de sus archivos, y la prueba de software y también la solidez de hardware.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X