Estoy usando zshmi shell e intento configurar mi entorno.
Normalmente defino mi $JAVA_HOMEvariable creando un archivo:
/etc/profile.d/java.sh
con el siguiente contenido
export JAVA_HOME=/path/to/jdk
export PATH=$JAVA_HOME/bin:$PATH
luego me desconecto y vuelvo, y todo funciona, pero por alguna razón la PATHvariable no está configurada. Reconoce JAVA_HOME, pero no el nuevo PATH, vea este fragmento de terminal:
~ echo $JAVA_HOME
/usr/lib/jvm/jdk1.8.0_05
~ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
y lo confirmé al intentar ejecutar un comando desde el jvm
~ java -version
zsh: command not found: java
el PATHno incluye el $JAVA_HOMEcomo debería. ¿Hay algo más que deba verificar?
Lo he comprobado si ejecuto:
source /etc/profile.d/java.sh
todo se ejecuta correctamente y mis variables se configuran como deberían, pero ¿no deberían /etc/profile.dejecutarse los scripts automáticamente?
environment-variables
zsh
Rodrigo Sasaki
fuente
fuente

~/.profiley colocar las variables allí? Puede ser quePATHse esté sobrescribiendo en otra parte de/etc/profile.d/.Respuestas:
Desde mi punto de vista, la mejor manera es agregar las siguientes líneas en el
~/.zshrcarchivo (si aún no lo tiene, entonces créelo):Luego reinicie su
zsh, o simplemente ejecutesource ~/.zshrcy luego su RUTA debe ser exactamente como lo desee.O, si desea que el cambio sea para todo el sistema, agregue el código anterior al final del
/etc/zsh/zshenvarchivo.Pero en cualquier caso, no lo use
/etc/profile.dpara ejecutar scripts automáticamentezsh. Este directorio es útil solo para elbashshell, nozshcomo en su caso. Para entender esto, abra el/etc/profilearchivo, que es un archivo de inicialización bash y en ningún caso un archivo de inicialización zsh , y verá en algún lugar al final del archivo:Por lo tanto, sus scripts del
/etc/profile.ddirectorio se ejecutarán automáticamentezshsolo si agrega el código anterior en un archivo de inicialización zsh, como/etc/zsh/zprofilepor ejemplo, o fuente/etc/profileen el/etc/zsh/zprofilearchivo.fuente
~/.zprofilepodría ser mejor que~/.zshrc.Me parece que colocar todo en un
.zshenvarchivo rápidamente se vuelve difícil de administrar. Recomiendo instalar oh-my-sh y luego colocar varias personalizaciones (env vars, funciones) en el.oh-my-sh/custom/directorio como.zsharchivos separados .También descubrí que este enfoque funciona a la perfección cuando ssh'ing en la máquina al modificar variables env como
PATH. También funciona muy bien junto con vcsh para mantener las personalizaciones respaldadas y sincronizadas.fuente
~/.ssh/configComo
JAVA_HOMEestá configurado, ha confirmado que esos scripts se obtienen automáticamente, ¿no es así?La única explicación lógica es que
PATHse establece más adelante de alguna manera. Originalmente debería ser configurado por PAM que lee/etc/environment, y que yo sepa, eso sucede antes de/etc/profile.d/*.shque se obtengan los archivos. Posiblemente zsh funciona diferente en comparación con bash en ese sentido.fuente
Acabo de encontrar este problema localmente después de ejecutar actualizaciones. Parece que el problema raíz es que Drush no sabe dónde encontrar una copia legítima de php que incluya pdo. Afortunadamente, admite ocultar esta ruta en una variable de entorno, así que hice esto en la línea de comandos:
Eso solucionó el problema, así que edité .zshrc y agregué eso al archivo, problema resuelto.
fuente
.zshrcse use, lo mismo que la respuesta principal ?