4 votos

¿Cómo se puede utilizar /etc/paths.d para añadir una ruta con espacios a $PATH?

Recientemente he instalado VMware Fusion 10 en un Mac con MacOS 10.12.6. Después de hacerlo, mi PATH de bash está roto. Rastreé el problema a un archivo de ruta /etc/paths.d que Fusion instaló; contiene la siguiente entrada (sin nueva línea):

/Applications/VMware Fusion.app/Contents/Public

Tenga en cuenta el espacio en el nombre de la ruta. Con esto presente, al iniciar un shell obtengo un error:

-bash: export: `Fusion.app/Contents/Public:/Library/TeX/texbin': not a valid identifier

Y mi PATH resultante está corrupto. He probado a añadir una nueva línea, a poner la ruta entre comillas dobles y a poner una barra invertida antes del espacio; todo ello produce un error (a veces errores diferentes). Por ejemplo, añadir la barra invertida o envolver con comillas dobles da el mismo error. Ambos cambios juntos dan:

-bash: test: /Users/loredo/Library/Commands:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/VMware: binary operator expected
-bash: test: /Users/loredo/Library/Commands:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/VMware: binary operator expected
-bash: test: /usr/local/var/rbenv/shims:/Users/loredo/Library/Commands:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/VMware: binary operator expected
-bash: export: `Fusion.app/Contents/Public:/Library/TeX/texbin:.:/usr/texbin:/usr/local/cuda/bin': not a valid identifier

Estoy empezando a preguntarme si path_helper puede ser incapaz de manejar tal caso de uso. ¿Hay alguna manera de manejar esto?

3voto

user3439894 Puntos 5883

Mi /etc/paths.d/com.vmware.fusion.public contiene:

 /Applications/VMware Fusion.app/Contents/Public

En la terminal, echo $PATH salidas:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public

No tengo ningún problema con mi PATH o ejecutando, por ejemplo vmrun que se encuentra en el /Applications/VMware Fusion.app/Contents/Public por lo que tener el directorio espacio no es un problema. Su PATH ¡está siendo desordenado en otro lugar!

¿Ha modificado /etc/paths o ha añadido un ~/.bash_profile o ~/.profile y si es así, ¿está modificando el PATH en alguno de estos archivos?

2voto

user43460 Puntos 6

Así que voy a tratar de dar a este un intento de la universidad ol. Así que después de jugar con esto durante una hora llegué a la conclusión de que path_helper - la aplicación nativa que construye un PATH variable de entorno de /etc/paths y /etc/paths.d no juega bien con los caminos que tienen espacios en ellos, es decir, por lo que está experimentando su situación actual.

Así que mi solución hacky para conseguir que esto funcione, es crear un enlace simbólico de,

/Applications/VMware Fusion.app

a

/Applications/VMwareFusion.app

utilizando el siguiente comando,

ln -sf /Applications/Vmware Fusion.app /Applications/VmwareFusion.app

A continuación, edite /etc/paths.d/com.vmware.fusion.public y cambiar la única línea en ese archivo para que se vea como la siguiente,

/Applications/VMwareFusion.app/Contents/Public/

Luego, obviamente, inicie una nueva sesión de shell o reinítelo.

Esta solución me funciona muy bien usando la cáscara de pescado.

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