#asdf-vm
#asdf-vm
Вопрос:
Как объясняется в terminal, я установил версию nodejs с использованием asdf, но терминал видит только другую версию:
> asdf list
nodejs
12.18.3
> nodejs --version
v8.10.0
> asdf global nodejs 12.18.3
> nodejs --version
v8.10.0
Добавили следующее в начало файла .zshrc
. $HOME/.asdf/asdf.sh
export PATH=$HOME/.asdf/asdf.sh:$PATH
Перезагрузили .zshrc
> source ~/.zshrc
Нет локальных файлов, для которых установлена локальная версия 8.10.0.
Как мне получить nodejs --version
версию, которую asdf признает глобальной версией?
Комментарии:
1. вы устанавливали узел, используя интерфейс командной строки asdf, как в
asdf install nodejs 12.18.3
?2. Нет, я использовал
asdf install
, и в.tool-versions
файле есть версия nodejs. Имеет ли это значение?3. Это может быть и так — я слепо придерживаюсь того, что вы изложили в OQ. И
.tool-versions
файл находится в этом каталоге с глобальными значениями по умолчанию, установленными как$HOME/.tool-versions
?4. Что
type -a nodejs
возвращается для вас? Похоже, у вас есть системный узел, имеющий приоритет над всем, что управляется asdf. Каталоги asdf должны быть первыми в вашем$PATH
.5. он говорит
nodejs is /usr/bin/nodejs
три раза. Когда я это делаюecho $PATH
, я получаю/usr/local/opt/qt@5.5/bin:/home/joe/.asdf/shims:/home/joe/.asdf/bin:
etc, поэтому asdf является первым
Ответ №1:
У меня была эта проблема как на Ubuntu 18.04, так и на Mac 10.15.7. Было несколько проблем.
Установка asdf с помощью brew (mac) не устанавливает его должным образом — asdf.sh
отсутствует. В документах предлагается установить с помощью git, который работает.
Как указано в документах, запуск asdf.sh
(серое поле ниже) должен быть ВНИЗУ .zshrc (или эквивалентного файла настроек профиля, такого как .bash_profile и т. Д.). Это добавляет вещи в начало $PATH .
. $HOME/.asdf/asdf.sh
Естественно, вам нужно запустить source .zshrc
после ее изменения, чтобы терминал перезагрузил изменения. Это должно привести к изменению вашего $PATH, поэтому при запуске echo $PATH
у вас должно быть что-то, начинающееся с:
/Users/homersimpson/.asdf/shims:/Users/homersimpson/.asdf/bin:/usr/local/opt/qt@5.5/bin: ...other things separated by ':'
which node
должно дать что-то вроде /Users/homersimpson/.asdf/shims/node
. Это прокладки для asdf, находящиеся в начале вашего пути, которые делают версию asdf версией, используемой вашей системой.
Ответ №2:
Если вы хотите установить asdf с помощью homebrew и zsh, используйте это:
echo -e "n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
Это добавляет asdf.sh правильно в файл .zshrc.
Ответ №3:
У меня такая же проблема, и я заметил, что, похоже, это происходит потому, что asdf, похоже, не знает о версии Ruby (2.6.3), которую я установил через asdf сегодня. Он рекомендует мне использовать одну из трех моих предыдущих версий Ruby:
джеймс@Джеймс-Точность-5520:~/Git/elixirschool $ asdf текущий elixir 1.9.0-otp-22 (установлен /home/james/.tool-versions) erlang 22.0.7 (установлен /home/james/.tool-versions) ruby 2.6.3 (установлен /home/james/.tool-versions) джеймс@James-Precision-5520:~/Git/elixirschool$ jekyll asdf: для command jekyll не установлена версия. возможно, вы захотите добавить одну из следующих версий в свой файл .tool-versions:
ruby 2.3.7 ruby 2.4.3 ruby 2.5.1 james@James-Precision-5520:~/Git/elixirschool $ ls ~/.asdf/installs/ruby 2.3.7 2.4.3 2.5.1 2.6.3 james@James-Precision-5520:~/Git/elixirschool $ список asdf ruby 2.3.7 2.4.3 2.5.1 2.6.3 Когда я изменил свой .tool-версии, указывающие на одну из трех других (более старых) установок Ruby, начали работать.