Homebrew встановлює nvm, але nvm потім не вдається знайти?


95

Я використовую homebrewта oh-my-zshна свіжій установці OSX 10.10.1. Я отримав nvmчерез , homebrewа потім спробував запустити його , але каже - ЗШ: команда не знайдена: NVM

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

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

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


ОНОВЛЕНО 20.09.2019

Як зазначено в останніх відповідях DarkPurple141 та Elise van Looij . nvmне схоже на homebrew. Про це також йдеться в офіційному репозиторії nvm-sh, що знаходиться тут .

Встановлення Homebrew не підтримується. Якщо у вас виникли проблеми із встановленою домашньою версією nvm, будь ласка, видаліть її та встановіть, дотримуючись інструкцій нижче, перед тим, як подавати проблему.

Примітка. Якщо ви використовуєте zsh, ви можете легко встановити nvm як плагін zsh. Встановіть zsh-nvm та запустіть оновлення nvm для оновлення.

Наступні кроки повинні допомогти:

  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: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Перезавантажте комп'ютер (можна спробувати закрити Термінал і перезапустити його спочатку) command -v nvm should now return4.c $ nvm`

  5. Тепер оновіть Node.js $ nvm install --lts

  6. Оновлення npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Нарешті, успіх! Ну, для мене, і я сподіваюся і на вас теж.

3
Чи зберігається це, якщо ви перезапустили термінал?
Aaron Brager

Спробуйте ввести повторну спробу або відкрити нову оболонку. Іноді zsh не підбирає доповнення.
Doon

Я закрив оболонку, перезавантажив систему і нічого. Зробив перепрошивку і не пощастило.
Даян

Як щодо brew link nvm чи це щось робить?
Doon

Попередження: Вже зв’язано: /usr/local/Cellar/nvm/0.20.0 Для повторного зв’язку: заварювати від’єднання nvm && заварювати посилання nvm
Даян

Відповіді:


127

Чи дотримувались ви інструкцій, перелічених у застереженнях?

[~] 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
Мені довелося додати це до того, ~/.bash_profileщоб він запрацював: /
Янака,

1
хм Я не використовую bash (віддаю перевагу zsh), але схоже на OSX terminal.app (я теж не використовую термінал, віддаю перевагу Iterm2), відкриває кожну оболонку як оболонку для входу, так що .bash_profile в цьому випадку буде правильним. також інформація змінилася. тож вам слід звернутися до останньої версії ..
Дуон

Дякую! Мені не вистачало цього рядка source $(brew --prefix nvm)/nvm.sh. Додав його до мого .zshrh
John Ottenlips

42

Є дві речі, які вам потрібно зробити. Дотримуйтесь застережень, показаних після встановлення 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і необхідних змін.
триплеє

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 Node Менеджер версій . Homebrew встановить nvm, і все виглядає нормально, поки ніхто не спробує отримати npm для встановлення модуля, в моєму випадку Mocha. Це повернуло мене назад до страшної помилки:

ПОМИЛКА! Помилка: 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: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Перезавантажте комп'ютер (можна спробувати закрити Термінал і перезапустити його спочатку) command -v nvm should now return4.c $ nvm`

  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.

У цьому випадку виконайте:

brew link nvm


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.