¿Tengo que actualizar manualmente mi RUTA en los shells de Cygwin?

¿Tengo que actualizar manualmente mi RUTA en los shells de Cygwin?

Utilizo Cygwin en Windows 7. Realmente no soy un usuario de Windows, por lo que ya es un poco inconveniente para mí tener esta capa adicional entre mi sistema operativo y Zsh, mi shell preferido.

Ahora, con frecuencia tengo que cambiar mi RUTA en Windows. El que cambias a través de las preferencias avanzadas del sistema. Sin embargo, he notado que este cambio de RUTA no se propaga a Zsh en Cygwin.

Muy bien, miro .zshrcy encuentro:

# User configuration

export PATH="/usr/local/bin:/usr/bin:/cygdrive/c/Program Files (x86)/Intel/iCLS Client:/cygdrive/c/Program Files/Intel/iCLS Client:/cygdrive/c/Program Files/Common Files/Microsoft Shared/Windows Live:/cygdrive/c/Program Files (x86)/Common Files/Microsoft Shared/Windows Live:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files (x86)/Windows Live/Shared:/cygdrive/c/Program Files (x86)/Intel/OpenCL SDK/3.0/bin/x86:/cygdrive/c/Program Files (x86)/Intel/OpenCL SDK/3.0/bin/x64:/cygdrive/c/Program Files/Intel/Intel(R) Management Engine Components/DAL:/cygdrive/c/Program Files/Intel/Intel(R) Management Engine Components/IPT:/cygdrive/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/cygdrive/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/IPT:/cygdrive/c/Program Files/ffmpeg/bin"
# export MANPATH="/usr/local/man:$MANPATH"

No agregué eso (bueno, tal vez lo ffmpegdel final). ¿De dónde viene? ¿Cygwin configura esto inicialmente cuando instala Zsh? ¿Oh-my-zsh se da cuenta de esto de alguna manera? De alguna manera debe haber conocido mi RUTA en algún momento y haberla agregado a mi archivo .zshrc.

ElPreguntas frecuentes sobre Cygwindice,

Todas las variables de entorno de Windows se importan cuando se inicia Cygwin

Pero ese no parece ser el caso, o la export PATHdeclaración en el .zshrcsobrescribe todo lo que hace Cygwin.

No hace falta decir que estoy muy confundido. Entonces aquí está la pregunta:

Cuando edito mi RUTA de Windows, ¿cuál es la forma recomendada de decirle a un shell Cygwin que ha cambiado? ¿Necesito editar siempre mi perfil de shell manualmente? ¿O se puede generar automáticamente?

Respuesta1

Sobre elinstalar.shscript para oh-my-zsh puedes ver esto:

echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m"
sed -i -e "/export PATH=/ c\\
export PATH=\"$PATH\"
" ~/.zshrc

La RUTA que tenía en su shell Cygwin (que a su vez fue copiada de Windows cuando inició Cygwin) se agregó durante la instalación al .zshrc, bloqueándolo efectivamente.

Cygwin recoge estas variables de entorno al inicio, luego se ejecuta .zshrc (y otros archivos como .zshenv), anulando cualquier variable de entorno exportada.

Si eliminó la declaración de exportación del .zshrc, Zsh simplemente tomaría la RUTA de su proceso principal, que debería ser la RUTA de Windows.

información relacionada