Установка менеджера версий узла - команда nvm не найдена


303

Я пытаюсь установить NVM согласно этим инструкциям

Я набрал эту команду в терминале:

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh

После запуска установки я перезагружаю терминал и пытаюсь установить Node.js с помощью этой команды:

$ nvm install 0.8

но я получаю ответ:

-bash: nvm: command not found

Я не уверен, что я делаю не так здесь.

Дополнительная информация--

Я искал решения из других постов и форумов. Я нашел другое решение, используя

$ git clone git://github.com/creationix/nvm.git ~/.nvm

но это происходит каждый раз, когда я пытаюсь это сделать. Любая помощь будет оценена. Спасибо.

Ответы:


369

Проверьте .bash_profile, .zshrcили .profileфайл. Скорее всего, у вас возникла проблема во время установки.

У вас должно быть следующее в конце одного из этих файлов.

[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh  # This loads NVM

Это так . $HOME/.nvm/nvm.shже, какsource $HOME/.nvm/nvm.sh

Смотрите: поиск файла

Вы также можете проверить, есть ли у вас .nvmпапка.

ls -a | grep .nvm

Если вам не хватает этой папки, то при установке не удалось запустить команду git. Это может быть связано с тем, что за прокси. Попробуйте выполнить следующее вместо этого.

git clone http://github.com/creationix/nvm.git .nvm

2
.nvmДолжен быть каталогом. Он устанавливается с помощью следующей команды git clone git://github.com/creationix/nvm.git $NVM_TARGET. Ранее вы говорили, что пытались выполнить эту команду самостоятельно, но она не удалась? Скорее всего, вы находитесь за прокси и, возможно, не настроены. Попробуйте выполнить следующее. git clone http://github.com/creationix/nvm.git .nvm
Трэвис

21
также есть строка, но 'source ~ / .nvm / nvm.sh' работает
K - токсичность в SO растет.

2
Если папка .nvm пуста, это, вероятно, связано с тем, что загрузка репо не удалась из-за того, что лицензия на соглашение xcode не была принята. Запуск sudo xcodebuild -licenseи принятие лицензии (подталкивание spaceк достижению конца лицензии и принятию условий) делает свое дело.
Pierre Criulanscy

4
Вам также может понадобиться source .bashrcили в source .profileзависимости
Генри Ценг

1
Почти всегда эти файлы будут существовать в вашей домашней директории. source $HOME/.bashrcи т. д.
Трэвис

634

Я думаю, что вы пропустили этот шаг:

source ~/.nvm/nvm.sh

Вы можете запустить эту команду на bash ИЛИ вы можете поместить ее в файл /.bashrc или ~ / .profile или ~ / .zshrc для автоматической загрузки

https://github.com/creationix/nvm


5
Давайте сделаем документацию лучше. Я создал проблему в репозитории nvm: github.com/creationix/nvm/issues/748
Джонни Бургер

3
Я выполнял это вручную несколько раз, пока наконец не поместил его в свой .bashrc!
Брэди Доулинг

2
это сработало для меня, но чтобы автоматизировать это, я должен был сначала создать профиль. "touch ~ / .profile", "open ~ / .profile", вставьте сверху, сохраните + закройте. теперь работает в новых окнах
Sonic Soul

6
Это ~/.bash_profileбыло то, что сработало для меня
spencer.sm

6
Это сработало для меня. Я добавил source ~/.nvm/nvm.shсвои ~/.zshrcи теперь nvmкаждый раз
Эдди

88

Это работает для меня:

  1. Перед установкой nvmзапустите это в терминале:touch ~/.bash_profile

  2. После запустите это в терминале:
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

  3. Важно ... - НЕ забудьте перезапустить ваш терминал ИЛИ использовать команду source ~/.nvm/nvm.sh(это обновит доступные команды в вашем системном пути).

  4. В терминале используйте команду, nvm --versionи вы должны увидеть версию


8
3) Не забудьте перезапустить ваш ключевой компонент терминала! Вот почему мой не работал. Спасибо
Себастьян

1
Как сделать «Перезапустить [их] компонент ключа терминала»?
Эдвард

46

source ~/.nvm/nvm.sh Добавьте эту строку в ~ / .bashrc, ~ / .profile или ~ / .zshrc


4
Это «постоянное» решение, которое длится через несколько оболочек или сессий оболочки.
Анбизкад

Это единственный ответ, который будет работать. Даже после нескольких повторных открытий терминала. Наконец, не забудьте перезапустить свой терминал, как только вы это сделаете :)
coderpc

40

Быстрый ответ

Выясните следующее:

  1. Какую оболочку использует ваш терминал, введите:, echo $0чтобы узнать (нормально работает)
  2. Какой загрузочный файл загружает оболочка при запуске (НЕ входной файл оболочки входа , обычный стартовый файл оболочки) , разница есть!)
  3. Добавить source ~/.nvm/nvm.shв этот файл (при условии, что файл существует в этом месте, это место установки по умолчанию)
  4. Начать новый сеанс терминала
  5. Прибыль?

пример

Как видите, говорится zshи нет bash. введите описание изображения здесь

Чтобы это исправить, мне нужно было добавить source ~/.nvm/nvm.shв ~/.zshrcфайл, так как при запуске нового терминала мой Deepin Terminal читает zsh, ~/.zshrcа не bashs ~/.bashrc.

Почему это происходит

Это происходит потому, что при установке NVM он добавляет код ~/.bashrc, который использует мой терминал Deepin Terminal, zshа не bashчитает ~/.bashrcи, следовательно, никогда не загружает NVM.

Другими словами: это вина NVM.

Подробнее об этом zshможно прочитать здесь .


Вы можете просто поставить zsh в конце команды curl. Например: curl raw.github.com/creationix/nvm/master/install.sh | Zsh
Прабхакар

22

В macOS мне пришлось получить его с помощью source ~/.nvm/nvm.shкоманды, чтобы решить эту проблему.

После этого добавьте эти строки

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

на ~/.bash_profileтак, что nvm будет получен автоматически при входе в систему.


11

Все ответы на эти вопросы полезны. Особенно мне помог ответ Тревиса. Для пользователей Mac OS X я хотел бы предоставить некоторые шаги, которые помогут им работать с новой установкой Node Version Manager aka nvm.

Установка и использование nvm в Mac OS X

Вот шаги для новой установки nvm и использования его без каких-либо проблем:

  • Установите доморощенный отсюда .
  • Используя homebrew установите nvm

    brew update brew install nvm

  • Создать .nvmкаталог на ~/.nvmместе.

    mkdir ~/.nvm

  • Теперь, если у вас нет .bash_profileнастройки файла для терминала OS X, пожалуйста, создайте .bash_profileна корневом уровне:

    nano ~/.bash_profile

  • Вставьте ниже код в .bash_profileи нажмите CTRL + Oи нажмите ввод, чтобы сохранить .bash_profileфайл. Нажмите CTRL + Xдля выхода из редактора:

    export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh

  • Теперь достаточно ( CMD + Q) терминала или запустить команду ниже для загрузки .bash_profileнастроек:

    source ~/.bash_profile

  • Теперь запустите nvm lsкоманду, чтобы получить список всех установленных версий nodejs.


Спасибо, я думаю, что мне не хватало создания .nvmкаталога.
icarovirtual

11

Сначала добавьте следующие строки в файл ~ / .bashrc

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

затем откройте терминал и загрузите скрипт nvm.sh

source ~/.nvm/nvm.sh

8

OSX 10.15.0 Catalina (выпущена в ноябре 2019 года) изменила оболочку по умолчанию на zsh.

Оболочкой по умолчанию был ранее bash.

Команда установки, указанная на странице nvm GitHub, должна быть настроена так, чтобы в конце она включала zsh.

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | zsh

Примечание: вам может потребоваться .rcзаранее убедиться, что файл для zsh присутствует:

touch ~/.zsrhrc

5

Непосредственно не связан с вопросом, но может возникнуть аналогичная проблема, взгляните на этот вопрос: Невозможно выполнить nvm из нового bash


Вот мой ответ на этот пост, просто для справки:

Если вы работаете с новым экземпляром bash и у вас есть код инициализации в ~ / .bashrc, ~ / .bash_profile и т. Д., То вам нужно проверить этот файл инициализации на наличие условий.

На Ubuntu 14 есть:

case $- in
    *i*) ;;
      *) return;;
esac

В строке 6 это остановит его выполнение, если bash не запускается с интерактивным флагом "-i". Так что вам нужно будет запустить:

bash -i

Кроме того, в конце файла есть

[ -z "$PS1" ] && return

Это остановит его выполнение, если его не запускать с установленным $ PS1 (как в удаленном сеансе ssh).

Если вы не хотите добавлять какие-либо env-переменные или флаги, вам нужно будет удалить эти условия из файла инициализации.

Надеюсь, это полезно.


5

Если вы используете OS X, вам может потребоваться создать файл .bash_profile перед запуском команды установки. Это сделало это для меня.

Создать файл профиля

touch ~/.bash_profile

Перезапустите установку, и на этот раз вы увидите соответствующую строку в выводе.

=> Добавление исходной строки в /Users/ndomusername‹/.bash_profile

Перезагрузите свой профиль (или закройте / заново откройте окно терминала).

.  ~/.bash_profile

5

Для Mac OS:

  1. Открытый терминал
  2. Бегать touch ~/.bash_profile
  3. Бегать vi ~/.bash_profile
  4. Тип source ~/.nvm/nvm.sh
  5. Нажмите Shift + Escи введите wqи нажмитеenter
  6. Готово.

В Ubuntu 18.04 мне нужно было только: 4. Наберите source ~ / .nvm / nvm.sh и большое спасибо!
Дарнелл Линч

4

Добавьте следующие строки в файлы ~/.bashrcи ~/.bash_profile:

# NVM changes
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

и перезапустите терминал или сделайте source ~/.bashrcили source ~/.bash_profile. Если вам нужно завершение команды для nvm, добавьте также строку:

[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

Наряду с приведенными выше линиями ~/.bashrcи ~/.bash_profile.


4

Для MacOS;

Запустить на Терминале>

open ~/.bash_profile

Вставить все это =

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

2

Сценарий установки nvm по умолчанию добавляет код инициализации в ваш $HOME/.profile , который загружается только оболочкой входа в систему (в среде рабочего стола вы никогда не увидите оболочку входа в систему).

Команда nvm в вашей оболочке входа в систему не распространяется на вложенные оболочки (например, окна консоли и терминалы IDE после входа в систему). Этот фрагмент в вашем приложении $HOME/.bashrcбудет загружать только nvm, если это интерактивная оболочка, которая еще не загружена

# if nvm dir is not set and the standard nvm directory exists
if [ -z "$NVM_DIR" -a -d "$HOME/.nvm" ] ; then
# set nvm dir
  export NVM_DIR="$HOME/.nvm"
fi

# if nvm dir is set and this shell is interactive
if [ -d "$NVM_DIR" -a -n "$PS1" ] ; then
  # if nvm command is not defined
  if ! type -t nvm >/dev/null ; then
    # set it
    source "$NVM_DIR/nvm.sh"
  fi
fi

Размещение этого в вашем $HOME/.bashrcфайле исправит проблему с отсутствующим nvm в интерактивных оболочках bash, даже из графического интерфейса, и даже если nvm установлен в нестандартном месте.


2

Я исправил эту проблему.

  1. коснитесь ~ / .bash_profile
  2. открыть ~ / .bash_profile
  3. вставитьexport NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

2

Ибо проблема была исправлена, когда я переехал

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

до конца .zshrc


1

На Debian, а также добавив следующие строки в мой .bash_profile, как сказал один из приведенных выше ответов. Мне также пришлось открыть настройки терминала («Правка» -> «Настройки профиля» -> «Команда») и включить «Выполнить команду как оболочку входа», чтобы заставить ее работать.

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

Изменить: Для тех, кто на Mac, следует помнить, что macOS не читает .bashrc при запуске терминала, поэтому использование .bash_profile является предпочтительным. Посмотреть здесь.


1

В моем случае это потому, что я использую рыбу . если я не начну ловить рыбу , просто введите nvm без ошибок сейчас.


Как ты остановил рыбу ?
Матко

введите exit @MobileDream.
JerryZhou

1

Так Windows 8.1 x64же случилось и со мной, и получил следующее сообщение.

nvm установить 8.3.0 bash: nvm: команда не найдена windows

Итак, следуйте или проверьте ниже следующие шаги-

сначала установить coreybutler/nvm-windowsс github.com. В настоящее время доступна последняя версия 1.1.5 nvm-setup.zip, позже извлечены настройки nvm-setup.exeи установки в следующих местах:

NVM_HOME    : C:\Users\Administrator\nvm
NVM_SYMLINK : C:\Program Files\nodejs

и тем временем программа установки будет управлять переменной среды, Pathкак указано выше для вас.

Теперь запустите Git Bashот имени администратора, а затем.

$ nvm install 8.3.0 all

Downloading node.js version 8.3.0 (64-bit)...
Complete
Creating C:\Users\Administrator\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.3.0

$ nvm use 8.3.0
Now using node v8.3.0 (64-bit)

здесь выполните вашу команду без использования префикса $, она просто показана здесь, чтобы определить ее как командную строку, и теперь мы проверим версию nvm.

$ nvm --version
Running version 1.1.5.

Usage:
-----------------------

Если у вас возникли проблемы с использованием nvmдля установки node, вы можете просмотреть этот список доступных nodejsвыпусков здесь https://nodejs.org/download/release/и выбрать правильный установщик в соответствии с версией вашего требования, равной или большей, чем у v6.3.0прямой.


0

Для меня это сработало. Сначала проверьте, что файл .bashrcимеет следующую строку

[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

Теперь bashrcзагружается для каждой терминальной сессии. Таким образом, перезапустите терминал, чтобы он снова загрузился, и у вас все получится.


0

Я также недавно столкнулся с той же проблемой, и исходный код nvm bash с использованием исходного кода ~ / .nvm / nvm.sh решил эту проблему.



0

Попробовав несколько шагов, я не знаю, в чем проблема в моем случае, но это помогло:

touch ~/.bash_profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

Проверено nvm --version

вывод nvm -v

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