Переменная PATH в .zshenv или .zshrc
Моя настройка - zsh 5.0.5 в arch linux
Я установил переменную PATH, как показано ниже .zshenv
typeset -U path
path=(~/bin $path)
DW=$HOME/Downloads
но это не сработало. print $PATH показывает только
/usr/local/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl
.zshenv был прочитан, потому что я видел, что переменная DW установлена. Переменная PATH не установлена. И я не понимаю, что после переименования .zshenv в .zshrc переменная PATH работает по назначению.
Нужны ли какие-либо специальные параметры среды настройки настройки в .zshenv?
Ответы
Ответ 1
Я сам столкнулся с этой проблемой, и реальным ответом является то, что Zsh on Arch sources /etc/profile
- который перезаписывает и экспортирует PATH
- после, используя ~/.zshenv
.
Смотрите: https://wiki.archlinux.org/index.php/Zsh#Configuration_files
Ответ 2
Похоже, что когда у вас есть макросы или некоторые дистрибутивы Linux, существует каноническое решение проблемы, которое включает /etc/paths
или /etc/paths.d
. Вы должны позволить /usr/libexec/path_helper
создать свой путь для вас с помощью файлов конфигурации.
Это сразу решило проблему во всех местах для меня.
Ответ 3
У меня такая же проблема. Причина в том, что моя .zshrc(новая установка oh-my-zsh) переопределяет PATH (игнорируя существующее значение):
export PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/core_perl"
Чтобы исправить, я прокомментирую строку.