Homebrew устанавливает nvm, но потом nvm не может быть найден?


98

Я использую homebrewи oh-my-zshна новую установку OSX 10.10.1. Я получил nvmчерез, homebrewа затем попытался запустить его, но говорит - zsh: command not found: nvm

Есть идеи, в чем проблема? Я смог установить и использовать git просто отлично ...

введите описание изображения здесь

введите описание изображения здесь


ОБНОВЛЕНО 20.09.2019

Как указано в более поздних ответах DarkPurple141 и Elise van Looij . nvmне кажется совместимым с homebrew. Об этом также говорится в официальном репозитории nvm-sh, расположенном здесь .

Установка Homebrew не поддерживается. Если у вас есть проблемы с nvm, установленным homebrew, пожалуйста, удалите его и установите, следуя приведенным ниже инструкциям, прежде чем регистрировать проблему.

Примечание. Если вы используете zsh, вы можете легко установить nvm как плагин для zsh. Установите zsh-nvm и запустите nvm upgrade для обновления.

Следующие шаги должны помочь:

  1. $ brew uninstall nvm
  2. $ brew cleanup(на всякий случай)
  3. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. Убедитесь, что nvm был установлен правильно, запустив $ command -v nvm.

    4.a Если ответ отличается от $ nvm, добавьте следующие две строки в файл ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Перезагрузите компьютер (вы можете сначала попробовать закрыть Терминал и перезапустить его) 4.c ​​$ command -v nvm should now returnnvm`

  5. Теперь обновите Node.js с помощью $ nvm install --lts

  6. Обновить npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Наконец-то успех! Что ж, я надеюсь и на тебя.

3
Сохраняется ли оно после перезапуска Терминала?
Аарон Брагер

Попробуйте ввести rehash или открыть новую оболочку. Иногда zsh не подхватывает дополнения.
Doon

Я закрыл оболочку, перезагрузил систему и ничего. Сделал перепрошивку и не повезло.
Даян

Как насчет brew link nvm что-нибудь делает?
Doon

Предупреждение: уже связано: /usr/local/Cellar/nvm/0.20.0 Для повторного подключения: brew unlink nvm && brew link nvm
Dayan

Ответы:


129

Вы следовали инструкциям, указанным в предупреждениях?

[~] brew info nvm
nvm: stable 0.20.0, HEAD
https://github.com/creationix/nvm
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nvm.rb
==> Caveats
Add the following to $HOME/.bashrc, $HOME/.zshrc, or your shell's
equivalent configuration file:

  source $(brew --prefix nvm)/nvm.sh

Node installs will be lost upon upgrading nvm. Add the following above
the source line to move install location and prevent this:

  export NVM_DIR=~/.nvm

Без дополнительной конфигурации не похоже, что он найдет NVM по умолчанию.


3
Спасибо за внимание, Doon, о котором я не знал brew info, все еще новичок homebrew:) Теперь он работает хорошо после выполнения этих шагов.
Даян

Они также должны отображаться после завершения установки. Но если вы их не ищете, их можно упустить.
Doon

4
Мне пришлось добавить это к by, ~/.bash_profileчтобы он заработал: /
Джанака

1
хм. Я не использую bash (предпочитаю zsh), но он выглядит как OSX terminal.app (я тоже не использую терминал, предпочитаю Iterm2), открывает каждую оболочку как оболочку входа в систему, так что да .bash_profile будет правильным в этом случае. .. также инфо изменилась. так что вам следует обратиться к последней версии ..
Doon

Благодарность! Мне не хватало этой строки source $(brew --prefix nvm)/nvm.sh. Добавил его в мой .zshrh
Джон Оттенлипс

43

Вам нужно сделать ДВЕ вещи. Следуйте предостережениям, показанным после установки nvm через brew, и ЗАТЕМ вам нужно активировать / перезагрузить изменения .bash_profile.

  1. Бегать brew install nvm
  2. Следуйте предостережениям, показанным в консоли, мои были следующими, ваше МОЖЕТ быть другим !:

Добавьте следующее в ~ / .bash_profile или в желаемый файл конфигурации оболочки:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. Запустите, . ~/.bash_profileчтобы применить изменения, внесенные в файл .bash_profile.

Это полезно для пользователей Bash, но OP находится на zsh. Думаю, то же самое относится и к .zshrcнеобходимым изменениям.
Tripleee

5

Хотя принятый ответ технически работает, стоит отметить, что установка Homebrew официально не поддерживается nvmпакетом. Рекомендуемый способ избежать проблем, подобных тем, которые были подняты выше, - это применить любой из следующих способов установки.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

# or wget:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

источник: https://github.com/creationix/nvm


3

Я потратил пару часов на обсуждение этой проблемы, но пришел к выводу, что DarkPurple141 прав: nvm просто несовместима с Homebrew, как они заявляют на своем узле Github nvm-sh / nvm. Диспетчер версий . Homebrew установит nvm, и все будет в порядке, пока кто-то не попытается заставить npm установить модуль, в моем случае Mocha. Это вернуло меня к ужасной ошибке:

ERR! Ошибка: EACCES: доступ запрещен, доступ '/ usr / local / lib / node_modules'

ПРИМЕЧАНИЕ. На шаге 3 обязательно замените версию на правильный выпуск.

Решение в MacOS 10.14 Mojave было:

  1. $ brew uninstall nvm
  2. $ brew cleanup(на всякий случай)
  3. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. Убедитесь, что nvm был установлен правильно, запустив $ command -v nvm.

    4.a Если ответ отличается от $ nvm, добавьте следующие две строки в файл ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Перезагрузите компьютер (вы можете сначала попробовать закрыть Терминал и перезапустить его) 4.c ​​$ command -v nvm should now returnnvm`

  5. Теперь обновите Node.js с помощью $ nvm install --lts

  6. Обновить npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Наконец-то успех! Что ж, я надеюсь и на тебя.

1

Чтобы установить nvm, brew install nvm

Чтобы запустить nvm после установки или только один раз, $(brew --prefix nvm)/nvm.sh

Для запуска nvm каждый раз zshоткрывается

  1. nano ~/.zshrc
  2. Добавить эту строку source $(brew --prefix nvm)/nvm.sh

1

Я хотел бы добавить, что расположение nvm на github изменилось, а версия поднялась. Теперь команда curl должна быть такой:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash

0

Причина, по которой вам может потребоваться перезагрузка ваших профилей bash или любых других файлов bash, может заключаться в том, что команда nvm может быть не программой, а функцией, которая определена и может использоваться только при наличии соответствующего файла bash.

В системе, которую я проверил

which nvm 

не работает но

nvm list

делает. Это означает, что вы можете использовать слово «nvm» для вызова чего-либо. Это что-то не программа. В данном случае это функция, которую можно проверить с помощью

typeset -F | grep -P ' nvm$'

который выводит

declare -F nvm

что означает, что nvm - это функция, тело которой можно проверить, выполнив

type -F nvm

1
Красиво .. Но как это ответ?
Даян

1
Спасибо за обновление, Даян - отредактировал ответ - причина, по которой я не смог его найти, потому что я полагался на то, что это программа, но она была определена как функция. Хотел это выделить.
Саураб Хирани

Чтобы проверить, правильно ли установлен nvm, используйте команду -v nvm в Терминале. Ответ должен быть «nvm». Если это не так, следуйте инструкциям на github.com/nvm-sh/nvm#installation-and-update .
Elise van Looij

0

Одна из возможностей, если brewона использовалась, заключается в том, что связь nvmможет быть отключена, особенно если она была установлена ​​другим пользователем MAC OS.

В этом случае выполните:

brew link nvm


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.