Я пытаюсь построить сценарий, в котором 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 - моя оболочка.
bash
shell-script
software-installation
node.js
Оки Доки
источник
источник
Ответы:
nvm
команда является функцией оболочки, объявленной в~/.nvm/nvm.sh
.Вы можете использовать любой из следующих сценариев в начале своего, чтобы сделать их
nvm()
доступными:источник
trying the shell scripts in ~/.nvm
? Я объяснил, как запуститьnvm
из сценария оболочки выше. Есть ли что-то неясное?nvm
, этоalias
в вашей оболочке. Пожалуйста,which nvm
опубликуйте результаты, и это прояснит ситуацию.nvm
локально и сделал некоторые исследования.nvm
это функция оболочки, объявленная вnvm.sh
, так что в основном вам просто нужно получить ее. ~/.nvm/nvm.sh
в начале вашего скрипта (или, как я писал выше, - source.profile
/.bashrc
)Если вы установили его с помощью brew на OSX, то вы можете загрузить скрипт brew sourced в среду env скрипта, указав его в деталях по установке.
У меня есть это в проектах, чтобы загрузить их:
источник
Небольшая сноска поверх ответа, предоставленного @webKnjaZ: мне пришлось исходить из функции оболочки для каждой команды, чтобы она работала в моем bash-скрипте. Что-то вроде этого:
источник
То же самое случилось ниже, это то, что работает для меня:
root @ ubuntu: / usr / src / plays # n = $ (какой узел); n = $ {n% / bin / node}; chmod -R 755 $ н / бин / *; sudo cp -r $ n / {bin, lib, share} / usr / local
root @ ubuntu: / usr / src / plays # sudo npm install express '/usr/src/playground/package.json' + express@4.16.2 добавил 49 пакетов в 129.186 с
Вышеприведенная команда немного сложна, но все, что она делает, это копирует любую версию узла, которую вы используете, через nvm в каталог / usr / local / (где установленные пользователем глобальные файлы должны жить на Linux-VPS) и устанавливая разрешения так, чтобы все пользователи могут получить к ним доступ.
источник