Wo ist der Knoten installiert, wenn ich nvm, apt-get, make install oder auf andere Weise verwende?
apt-get installiert alle die Software nicht nur Knoten, auf dem Dateisystem nach der Ubuntu-Konvention, wo Binärdateien zu speichern, man Dateien, gemeinsam genutzte Dateien, Protokolle, etc. Jedoch mit apt-get Ihnen habe nur die bestimmte Version des Knotens, der durch den Verteilungsfreigabezyklus bestimmt wird. Wenn Updates verfügbar sind, werden sie mit apt-get update; apt-get upgrade
installiert. Die neueste Version einer App wird jedoch erst verfügbar sein, wenn sie in die Distribution gelangt. Zum Beispiel ist der Knoten v0.x.y möglicherweise nicht verfügbar, bis Ubuntu 13.10 die einzige Möglichkeit ist, ihn manuell zu installieren. Die gute Seite von apt-get
oder anderen System-Paket-Manager ist, dass es Updates und das Entfernen von Paketen für Sie verwaltet. Es speichert alle Daten über das Softwarepaket in seiner eigenen Datenbank. Sie können den Knoten immer mit apt-get remove node
löschen und das war's.
make install
Installieren Sie das Paket manuell, aber es gilt als schädlich. Verwenden Sie nie die make install
hauptsächlich, weil Sie das Paket nicht einfach löschen können, müssen Sie das Makefile lesen und manuell alle Dateien löschen, die von ihm installiert werden. In einer Situation, in der Sie make install
verwenden möchten, steht immer checkinstall
zur Verfügung. Es ist eine Software, die ein natives Paket erstellt und es mit dem System registriert. Wenn Sie das Paket löschen möchten, können Sie dies mit einem Befehl anstelle von vielen tun. wiki link; Ubuntu guide on checkinstall
Jetzt nvm
Skript ist ein node version manager
. Es ist sehr hilfreich und einfach zu bedienen. Es ermöglicht Ihnen, mehrere Knotenversionen gleichzeitig auf Ihrem Computer zu installieren und zu verwenden. Es kompiliert den Knoten von Quelle wie make install
nicht, so dass es sehr schnell ist. Es hängt nicht von Ihrem Verteilungsfreigabezyklus ab, sodass Sie Zugriff auf alle derzeit verfügbaren Knotenversionen haben. nvm lädt vorkompilierte Binärdateien herunter und eignet sich perfekt für den allgemeinen Gebrauch. Es speichert seine Knotendateien lokal in seinem eigenen Ordner. Wenn Sie also etwas zwischen den verschiedenen Knotenversionen vergleichen möchten, ist dies einfach.
Ist es eine gute Idee, Knoten lokal zu installieren?
Wenn Sie lokal von nvm
sprechen, dann ist es sehr gut für Entwicklung und Tests. Sie sind sich nicht sicher über die Auswirkungen auf die Produktionsleistung und den Nutzen zwischen der Installation von der Quelle oder der Verwendung der vorkompilierten Binärdateien nvm
. Ich benutze nvm für die Entwicklung und installiere von der Quelle in der Produktion. Aber wenn jemand dieses Problem weiter erklären könnte, würde ich mich freuen, mehr zu erfahren.
Warum ändert nvm meine ~/.profile, anstatt sich in einem vom System erkennbaren Ordner zu installieren?
Da nvm
keine ausführbare Datei ist. Es ist eine Reihe von Bash-Funktionen, die von Shell stammen und separat verwendet werden können. Sie können nvm_ls
und nvm_ls_remote
und andere ohne das Hauptskript aufrufen, nachdem es in Ihre Shell eingegeben wurde. Was das Hauptskript tut, analysiert es die Befehlszeilenargumente und pretty druckt die Ausgabe im Fall von zum Beispiel `nvm_ls_remote '.
in der ~ /.Profil wird folgende Zeile hinzugefügt
[[ -s /home/USERNAME/.nvm/nvm.sh ]] && . /home/USERANME/.nvm/nvm.sh # This loads NVM
lädt alle Funktionen in der Shell
sah ich, dass NVM verschiedene Versionen von Knoten nebeneinander installiert werden kann - warum sollte ich das tun wollen? Ich kann sie stattdessen lokal installieren, oder?
Sie können sie lokal installieren make install
oder checkinstall
verwenden, aber Sie werden Aliase für sie wie node_0.8.1 machen müssen, node_0.8.2, node_0.10.1 etc. und Sie werden neue Aliase verwalten müssen, die Installation alle Pakete, entfernen sie für den Fall, dass Sie sie nicht selbst brauchen. Dies sind mühsame und langweilige Aufgaben, die manchmal fehleranfällig sein können. nvm
erledigt all diese Aufgaben für Sie kostenlos.
Sie möchten dies tun, um Ihre App unter den verschiedenen Versionen von Knoten zu testen. Zum Beispiel sind Sie gut und getestet unter der v0.8, aber Sie möchten die neuen Funktionen der v0.10.3 verwenden, wie machen Sie das? Sie müssen den Quellcode herunterladen, kompilieren, einen Alias erstellen und Ihre App ausführen. Sie können dies mit nur nvm install 0.10.3
tun und Ihre App ausführen. Manchmal müssen Sie mehr als eine Knotenversion unterstützen. Zum Beispiel halten einige gehostete Umgebungen nicht mit der neuesten Version in Kontakt und haben nur v0.6. Ihre Clients, die Ihre Server-App verwenden, können einen für diese Version spezifischen Fehler entdecken. Wenn Sie den Fehler beheben, müssen Sie ihn zuerst reproduzieren. Mit nvm
Installation der v0.6 ist eine Zeile und eine halbe Minute. Und Sie können auf diese Weise alle gewünschten Versionen einfach überprüfen. Testen Sie Ihren Code unter verschiedenen Versionen und stellen Sie sicher, dass Sie gut sind.
Wo installiert npm Pakete? Ich sah, dass es Packages eine Version von Node überprüft, was passiert mit diesen Paketen, wenn der Knoten aktualisiert wird?
Wenn Sie mit nvm
die Pakete, die global mit -g
Option installiert sind, werden an den entsprechenden Knoten Version gebunden. Wenn Sie zwischen Versionen mit nvm use 0.x
wechseln, müssen Sie entweder die Pakete erneut installieren oder nvm copy-packages <version>
verwenden, um die Pakete von der aktuellen Version zu verwenden. Wenn die Pakete lokal installiert sind, kommt es darauf an. package.json
sollte Informationen über die Abhängigkeiten der App enthalten. Wenn es Knoten: '0.8' heißt und Sie gerade auf 0.9 aktualisiert haben, könnten Probleme auftreten. Zum Beispiel wurde das Verhalten von process.nextTick
in den neuesten Versionen im Vergleich zu 0,6 geändert. Also sei vorsichtig.
In welchen Fällen ist es besser, globale oder lokale Installation zu verwenden? Wo sollte ich meine Pakete dann (und wo sie standardmäßig setzen?) Setzen
Es kommt darauf an. Für die Entwicklung nvm
ist meiner Meinung nach überlegen. Für mich ist es bequem und einfach. Für die Produktion gibt es möglicherweise einige Auswirkungen auf die Leistung, wenn Sie die vorkompilierten Binärdateien verwenden, die nicht für Ihr System optimiert sind. Es wäre besser, dies als eine separate Frage zu stellen, damit die Leute mit der relevanten Erfahrung antworten können.
Was ist der Unterschied zwischen npm, nvm und nave?
npm
ist ein node package manager
->link Es Userland-Pakete von anderen Menschen entwickelt enthält. Diese Pakete sind nicht Teil des Knotenkerns.npm wird für die Veröffentlichung Ihres Code- und Abhängigkeitsmanagements verwendet. Wenn Ihre App eine andere App benötigt, die von anderen Personen entwickelt wurde, ist es praktisch, sie über npm zu veröffentlichen.
nvm
ist ein node version manager
es macht eine völlig separate Sache. Es gibt Ihnen die Möglichkeit, sehr einfach zwischen Knotenversionen auf demselben Rechner zu wechseln und alle Änderungen in Ihrer Umgebungsvariablen $PATH
zu verwalten.
Betrachten Sie nvm
als Update-Manager für das Betriebssystem und npm
als Manager der Anwendungen für dieses System. Nun, dieser Vergleich ist nicht präzise, aber kam gerade auf meinem Kopf
nave
ist grundsätzlich die gleiche wie nvm
aber es ist eine ausführbare Datei während nvm
ist ein Skript, das in die Schale stammt. Jedes System hat seine eigenen Vorteile. Sie könnten eine separate Frage bezüglich der Anwendungsfälle und Unterschiede stellen.
Meine Antwort ist nicht zu 100% vollständig und enthält viele subjektive persönliche Meinungen. Ich hoffe jedoch, dass ich zumindest einige Punkte klarer machen werde, damit Sie mit spezifischeren Fragen fortfahren können. Übrigens könnte diese Fragenliste als separate Fragen gestellt werden. Ich glaube, stackoverflow bietet beste Ergebnisse, wenn spezifische Fragen separat gestellt werden und mehr Menschen mit relevanter Erfahrung beitragen können.
Das ist eine großartige Antwort, danke! Ich habe so viele Fragen gestellt, weil ich nur verwirrt war; Wenn ich eine bestimmte Frage habe, frage ich sie getrennt. – mik01aj
Sehr hilfreiche Antwort! Wirklich gute Sicht auf alle Optionen, die OP aufbrachte. – Qcom