Я использую zsh в качестве моей оболочки, и я пытаюсь настроить свою среду.
Обычно я определяю свою переменную $JAVA_HOME, создавая файл:
со следующим содержимым
export JAVA_HOME=/path/to/jdk
export PATH=$JAVA_HOME/bin:$PATH
, затем я выхожу из системы и обратно, и все работает, но по какой-то причине переменная PATH не задана. Он распознает JAVA_HOME, но не новый PATH, см. Этот фрагмент терминала:
~ 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
, и я подтвердил это, пытаясь запустить командную форму jvm
~ java -version
zsh: command not found: java
PATH не включает $JAVA_HOME, как следует. есть ли что-то еще, что я должен проверить?
Я проверил, что если я запустил:
source /etc/profile.d/java.sh
все работает правильно, и мои переменные устанавливаются так, как должны, но не должны скрипты в /etc/profile.d запускаются автоматически?
Я считаю, что быстро помещать все в один файл .zshenv становится сложно. Я рекомендую установить oh-my-sh и затем поместить различные настройки (env vars, functions) в каталог .oh-my-sh/custom/ в виде отдельных файлов .zsh.
Я также обнаружил, что этот подход работает безупречно, когда ssh ' в машину при изменении переменных env, таких как PATH. Также он отлично работает вместе с oh-my-sh для сохранения резервных копий и синхронизации.
Поскольку JAVA_HOME установлен, вы подтвердили, что эти сценарии получены автоматически, не так ли?
Единственное логическое объяснение заключается в том, что PATH устанавливается позже каким-то образом. Он должен быть первоначально установлен PAM, который читает /etc/environment, и насколько я знаю, что происходит до того, как будут получены файлы /etc/profile.d/*.sh. Возможно, zsh работает по-разному по сравнению с bash в этом отношении.
Только что запутался в этой проблеме локально после запуска обновлений. Похоже, проблема с корнем - Drush не знает, где найти законную копию php, которая включает pdo. К счастью, он поддерживает этот путь в переменной среды, поэтому я сделал это в командной строке:
export DRUSH_PHP="/Applications/MAMP/bin/php/php5.4.39/bin/php"
Это исправило проблему, поэтому я редактировал .zshrc и добавил, что в файл проблема решена.