Node Version Manager install-команда nvm не найдена

Я пытаюсь установить NVM в соответствии с этими - инструкции

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

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

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

$ nvm install 0.8

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

-bash: nvm: command not found

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

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

Я искал решения из других сообщений и форумы. Я нашел другое решение, используя

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

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

19 ответов


Проверьте .bash_profile или . Скорее всего, у вас были проблемы во время установки.

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

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

на . $HOME/.nvm/nvm.sh это то же самое, что source $HOME/.nvm/nvm.sh

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

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

ls -a | grep .nvm

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

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

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

source ~/.nvm/nvm.sh

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

https://github.com/creationix/nvm


source ~/.nvm/nvm.sh добавьте следующую строку в ~/.bashrc и, ~/.профиль или./~ zshrc


в 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 будет получен автоматически при входе в систему.


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

  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 и вы должны увидеть версию


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

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

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

пример

Как видите государств zsh, а не bash. enter image description here

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

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

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

другими словами: это ошибка NVMs.

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


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


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

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

на Ubuntu 14 есть:

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

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

bash -i

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

[ -z "$PS1" ] && return

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

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

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


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

создайте файл профиля

touch ~/.bash_profile

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

=> добавление исходной строки в /Users / {username}/.файл

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

.  ~/.bash_profile

добавьте следующие строки в файлы ~/.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.


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

  1. touch ~/.файл
  2. открыть ~/.файл
  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

сценарий установки 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, даже из gui, и даже если nvm установлен в нестандартном месте.


на Debian, а также добавление следующих строк в мой .файл как один из ответов сказал. Мне также пришлось открыть настройки терминала (Edit -> Profile Preferences -> Command) и включить "Run command as a login shell", чтобы заставить его работать.

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

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


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


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

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

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

  • установить homebrew из здесь.
  • С помощью homebrew установить nvm

    brew update brew install nvm

  • создать . Нажмите CTRL + X для выхода из редактора:

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

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

    source ~/.bash_profile

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


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

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


Сначала добавьте следующие строки в ~/.файл 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

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

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

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


на 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 напрямую.


Я также столкнулся с той же проблемой в последнее время и sourcing NVM bash script с помощью source ~/.nvm/nvm.sh решен этот вопрос.