Команда nvm недоступна в скрипте bash
Я пытаюсь создать скрипт, в котором nvm
, и в конечном итоге узел будет установлен.
Я установил nvm
с помощью cURL. Я вижу изменения в .profile
или .bashrc
(оба работают) и при вводе кода nvm
в командной строке bash, он показывает доступные параметры и т. д.
Так работает nvm. Вручную я могу установить узел, но как только я поместил команду nvm
в сценарий оболочки:
nano test.sh
#!/bin/bash
nvm
и запустите его с помощью
chmod 755 test.sh
./test.sh
Я получаю:
./test.sh: line 2: nvm: command not found
Если он не может найти nvm
, мне даже не нужно думать о
nvm ls-remote
или
nvm install ...
У меня установлен Ubuntu 14.04, а Bash - моя оболочка.
4 ответа
nvm
команда - это функция оболочки, объявленная в ~/.nvm/nvm.sh
.
Вы можете использовать любой из следующих сценариев в начале своей версии, чтобы сделать доступным nvm()
:
. ~/.nvm/nvm.sh
. ~/.profile
. ~/.bashrc
. $(brew --prefix nvm)/nvm.sh # if installed via Brew
Если вы установили его с помощью пивоварения на OSX, вы можете загрузить сценарий с запатентованным сценарием в скрипт env, используя его, как он детализирует установку.
У меня есть это в проектах, чтобы загрузить их:
brew install nvm
. $(brew --prefix nvm)/nvm.sh
nvm install
...
Малая выноска в верхней части ответа, предоставленного @webKnjaZ: Мне приходилось запускать функцию оболочки для каждой команды, чтобы она работала в моем сценарии bash. Что-то вроде этого:
. ~/.nvm/nvm.sh --version
. ~/.nvm/nvm.sh install 4.4.5
То же самое случилось ниже - это то, что сработало для меня:
root @ ubuntu: /usr /src /playground # n = $ (какой узел); n = $ {n% /bin /node}; chmod -R 755 $ n /bin /*; sudo cp -r $ n /{bin, lib, share} /usr /local
root @ ubuntu: /usr /src /playground # sudo npm install express '/usr/src/playground/package.json' + [email protected] добавлено 49 пакетов в 129.186s
Вышеупомянутая команда немного сложна, но все, что она делает, это копирование любой версии узла, который вы активировали через nvm, в каталог /usr /local /(где пользователь установил глобальные файлы, должен жить на VPS Linux) и установить разрешений, чтобы все пользователи могли получить к ним доступ.