Node Version Manager install - команда 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на досягнення кінця ліцензії та погодитися на її умови) робить трюк.
П’єр Кріуланссі

4
Ви також , можливо , буде потрібно source .bashrcабо в source .profileзалежності
Генрі Tseng

1
Майже завжди ці файли існують у вашому домашньому режисері. source $HOME/.bashrcтощо
travis

634

Я думаю, ти пропустив цей крок:

source ~/.nvm/nvm.sh

Ви можете запустити цю команду на bash АБО ви можете помістити її у файл /.bashrc або ~ / .profile або ~ / .zshrc, щоб автоматично завантажити її

https://github.com/creationix/nvm


5
Давайте покращимо документацію. Я створив випуск на nvm repo: github.com/creationix/nvm/isissue/748
Jonny Burger

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

2
це працювало для мене, але для його автоматизації я повинен був створити профіль спочатку. "торкніться ~ / .profile", "відкрити ~ / .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) Не забудьте перезапустити свій термінальний компонент Key! Тому моя не працювала. Спасибі
Себастьян

1
Як працює один «Перезапустити [їх] термінальний ключовий компонент»?
Едвард

46

source ~/.nvm/nvm.sh Додайте цей рядок до ~ / .bashrc, ~ / .profile або ~ / .zshrc


4
це "постійне" рішення, яке триває в декількох сеансах або оболонках.
ahnbizcad

Це єдина відповідь, яка спрацює. Навіть після багаторазового повторного відкриття терміналу. Нарешті, не забудьте перезапустити свій термінал, як тільки ви це зробите :)
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.

Іншими словами: це вина НВМ.

Більше про zshце можна прочитати на одній з відповідей тут .


ви можете просто поставити zsh в кінці команди curl. наприклад: curl raw.github.com/creationix/nvm/master/install.sh | ЗШ
Prabhakar

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і натисніть клавішу Enter, щоб зберегти .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 vars або прапорів, вам потрібно буде видалити ці умови з вашого файлу ініціалізації.

Сподіваюся, це корисно.


5

Якщо ви використовуєте OS X, можливо, вам доведеться створити .bash_profile файл перед запуском команди встановлення. Це зробило це для мене.

Створіть файл профілю

touch ~/.bash_profile

Повторіть інсталяцію, і цього разу ви побачите відповідний рядок у висновку.

=> Додавання вихідного рядка до /Users/{username}/.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. Введіть джерело ~ / .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, навіть із gui, і навіть якщо 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 за допомогою джерела ~ / .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.