У меня уже установлен NVM, затем я открыл oh-my-zsh и установил это. Кажется, у него есть nvm-плагин, который я включил в .zshrc.
Также я помещал это в мой .zprofile
export NVM_DIR="/Users/me/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
Теперь я могу использовать nvm, но всякий раз, когда я устанавливаю псевдоним по-умолчанию для другой версии, nvm переключается обратно при следующем открытии оболочки.
$ iojs -v
v1.2.0
$ which iojs
/Users/me/.nvm/versions/io.js/v1.2.0/bin/iojs
$ nvm use 1.5.1
Now using io.js v1.5.1
$ nvm alias default iojs v1.5.1
default -> iojs (-> iojs-v1.5.1)
$ which iojs
/Users/me/.nvm/versions/io.js/v1.5.1/bin/iojs
Затем после открытия новой оболочки:
$ which iojs
/Users/me/.nvm/versions/io.js/v1.2.0/bin/iojs
Может ли моя старая установка bash как-то повредить вещи? Я на OSX, но думаю, это не имеет значения.
--------- edit ------ Больше результата по запросу
➜ ~ nvm version
iojs-v1.2.0
➜ ~ ls $NVM_DIR/alias
default
➜ ~ cat $NVM_DIR/alias/default
iojs
➜ ~ nvm alias iojs
iojs -> iojs-v1.5 (-> iojs-v1.5.1) (default)
➜ ~ nvm alias $(cat $NVM_DIR/alias/default)
iojs -> iojs-v1.5 (-> iojs-v1.5.1) (default)
Я только выяснил, почему он возвращается к 1.2.0, я думаю. Во время установки oh-my-zsh, похоже, он взял активную PATH из моей оболочки bash и скопировал ее в файл .zshrc, включая активный путь nvm в то время:
/Users/me/.nvm/versions/io.js/v1.2.0/bin
Но после удаления этого из PATH, теперь мой zsh не может найти двоичный файл Node после запуска новой оболочки. Итак, все-таки вопрос в том, что я не знаю, почему не помню настройки NVM? Я все еще могу установить его в активную оболочку, как раньше, она просто не прилипает.
Теперь я думаю, что может быть что-то принципиально неправильное с моей установкой oh-my-zsh. У меня включен плагин git, например, в zshrc, но команда gst не является допустимым псевдонимом.
plugins = (git, gitflow, nvm, brew, tmux)
➜ ~ gst
zsh: command not found: gst