Ich versuche, ein Skript zu erstellen, in dem der nvm
Knoten installiert wird.
Ich habe nvm
mit cURL installiert . Ich sehe die Änderungen in der .profile
oder .bashrc
-Datei (beide funktionieren) und wenn ich sie nvm
an der Bash-Eingabeaufforderung
eingebe , werden die verfügbaren Optionen usw. angezeigt. Also funktioniert nvm. Manuell kann ich node installieren, aber sobald ich den nvm
Befehl in ein Shell-Skript geschrieben habe:
nano test.sh
#!/bin/bash
nvm
und starte es mit:
chmod 755 test.sh
./test.sh
Ich bekomme:
./test.sh: line 2: nvm: command not found
Wenn es nicht finden kann nvm
, muss ich nicht einmal daran denken
nvm ls-remote
oder
nvm install ...
Ich habe Ubuntu 14.04 installiert und Bash ist meine Shell.
bash
shell-script
software-installation
node.js
alles klar
quelle
quelle
Antworten:
nvm
Befehl ist eine in deklarierte Shell-Funktion~/.nvm/nvm.sh
.Sie können eines der folgenden Skripte zu Beginn Ihres Projekts zur
nvm()
Verfügung stellen:quelle
trying the shell scripts in ~/.nvm
? Ich erklärte, wie mannvm
vom Shell-Skript oben läuft . Ist etwas unklar?nvm
ist einealias
in Ihrer Shell-Umgebung. Bitte posten Sie die Ausgabe vonwhich nvm
und dies wird die Dinge klären.nvm
und einige Nachforschungen angestellt.nvm
ist eine Shell-Funktion, die in deklariertnvm.sh
ist. Sie müssen sie also nur. ~/.nvm/nvm.sh
am Anfang Ihres Skripts (oder, wie ich oben geschrieben habe, - source.profile
/.bashrc
)Wenn Sie es über Brew unter OSX installiert haben, können Sie das aus Brew stammende Skript in die Skriptumgebung laden, indem Sie es als Quelle für Details zur Installation angeben.
Ich habe dies in Projekten, um sie zu booten:
quelle
Kleiner Hinweis auf die Antwort von @webKnjaZ: Ich musste für jeden Befehl eine Shell-Funktion verwenden, damit er in meinem Bash-Skript funktioniert. Etwas wie das:
quelle
Das Gleiche, was sich darunter befand, war das, was für mich funktioniert hat:
root @ ubuntu: / usr / src / playground # n = $ (welcher Knoten); 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 installiere express '/usr/src/playground/package.json' + [email protected] hat 49 Pakete in 129.186s hinzugefügt
Der obige Befehl ist etwas kompliziert, aber alles, was er tut, ist, die über nvm aktive Version des Knotens in das Verzeichnis / usr / local / zu kopieren (in dem sich vom Benutzer installierte globale Dateien auf einem Linux-VPS befinden sollten) und die entsprechenden Berechtigungen festzulegen Alle Benutzer können darauf zugreifen.
quelle