Próbuję zbudować skrypt, w którym nvm
i ostatecznie zostanie zainstalowany węzeł.
Zainstalowałem nvm
z cURL. Widzę zmiany w pliku .profile
lub .bashrc
(oba działają), a podczas wpisywania nvm
w wierszu poleceń bash pokazuje dostępne opcje itp.
Więc NVM działa. Ręcznie mogę zainstalować węzeł, ale jak tylko wstawię nvm
polecenie do skryptu powłoki:
nano test.sh
#!/bin/bash
nvm
i uruchom go z:
chmod 755 test.sh
./test.sh
Dostaję:
./test.sh: line 2: nvm: command not found
Jeśli nie można go znaleźć nvm
, nawet nie muszę o tym myśleć
nvm ls-remote
lub
nvm install ...
Mam zainstalowany Ubuntu 14.04 i Bash jest moją powłoką.
bash
shell-script
software-installation
node.js
Oki Doki
źródło
źródło
Odpowiedzi:
nvm
polecenie jest funkcją powłoki zadeklarowaną w~/.nvm/nvm.sh
.Na początku możesz
nvm()
pobrać jeden z poniższych skryptów, aby go udostępnić:źródło
trying the shell scripts in ~/.nvm
? Wyjaśniłem, jak uruchomićnvm
ze skryptu powłoki powyżej. Czy jest coś niejasnego?nvm
jestalias
w twoim środowisku powłoki. Proszę opublikować wynik,which nvm
a to wszystko wyczyści.nvm
lokalnie i przeprowadziłem badania.nvm
jest zadeklarowaną funkcją powłokinvm.sh
, więc w zasadzie musisz ją po prostu. ~/.nvm/nvm.sh
.profile
.bashrc
Jeśli zainstalowałeś go za pomocą brew w OSX, możesz załadować skrypt źródłowy do env skryptu, pozyskując go zgodnie ze szczegółami instalacji.
Mam to w projektach, aby je uruchomić:
źródło
Małe objaśnienie na górze odpowiedzi udzielonej przez @webKnjaZ: Musiałem znaleźć funkcję powłoki dla każdej komendy, aby działała w moim skrypcie bash. Coś takiego:
źródło
To samo stało się poniżej, co działało dla mnie:
root @ ubuntu: / usr / src / playground # n = $ (który węzeł); 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] dodał 49 pakietów w 129.186s
Powyższe polecenie jest nieco skomplikowane, ale wszystko, co robi, to kopiowanie dowolnej wersji węzła, którą masz aktywną za pośrednictwem nvm do katalogu / usr / local / (gdzie globalne pliki instalowane przez użytkownika powinny znajdować się na VPS w systemie Linux) i ustawianie uprawnień tak, aby wszyscy użytkownicy mogą uzyskać do nich dostęp.
źródło