Dies ist eine coole (aber nervige) Art, NodeJS zu installieren.
Wenn Sie tar tf /usr/save/node-v4.2.1-linux-x64.tar.gz
die Datei ausführen , wird Folgendes angezeigt:
node-v4.2.1-linux-x64/
node-v4.2.1-linux-x64/bin/
node-v4.2.1-linux-x64/bin/npm
node-v4.2.1-linux-x64/bin/node
node-v4.2.1-linux-x64/share/
node-v4.2.1-linux-x64/share/man/
node-v4.2.1-linux-x64/share/man/man1/
Grundsätzlich bedeutet dies, dass beim Extrahieren dieses Tar-Archivs in einen Ordner extrahiert wird, der node-v4.2.1-linux-x64
mit all diesen Unterordnern (und der darin enthaltenen Knoteninstallation) aufgerufen wird . Sie können diese Extraktion sogar ausprobieren, um eine bessere Vorstellung zu erhalten:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
Wenn Sie ausführen ls
, wird ein node-v4.2.1-linux-x64
Ordner angezeigt.
Tut jetzt --strip-components 1
etwas Interessantes zum Extraktionsprozess. Von man tar
:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
Grundsätzlich bedeutet dies, dass beim tar
Extrahieren Ihres Archivs so getan wird, als wäre der node-v4.2.1-linux-x64
Ordner nicht vorhanden. Stattdessen ist es Extrakt geht bin/
, share/
und alle anderen Ordner direkt.
In der Tat können Sie es versuchen:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
Wenn Sie ausführen ls
, sehen Sie, dass kein node-v4.2.1-linux-x64
Ordner mehr vorhanden ist . Es ist einfach bin/
, include/
, lib/
, und share/
(alle zufällig Ordner in /usr/local/
).
Ihr zweiter Befehl hätte nicht funktioniert, da er nur den node-v4.2.1-linux-x64
Ordner extrahiert hätte /usr/local
(wenn er überhaupt ausgeführt worden wäre). Wenn Sie ausführen ls /usr/local
, wird dieser Ordner möglicherweise sogar angezeigt. Es ist nutzlos, zögern Sie nicht mit zu löschen rm
. Lesen Sie weiter, warum es nutzlos ist ...
Nachdem wir erklärt haben, wie der Befehl tar funktioniert, können wir erklären, wie dieser installiert wird.
Jedes Linux-System hat eine sogenannte $PATH
Variable, die bestimmt, wo ausführbare Dateien gespeichert werden. Unter diesen Orten ist /usr/local/bin
. Wenn Sie diese Binärdatei im Inneren extrahieren /usr/local
(was in Ihren Installationsanweisungen sicher steht), wird die NodeJS-Binärdatei gemäß der Vorgehensweise beim Extrahieren geschrieben /usr/local/bin/node
. In ähnlicher Weise werden alle Bibliotheken zum lokalen Bibliotheksordner hinzugefügt und alles geht so ziemlich dahin, wo es hingehört.
Die Einschränkung (und warum dies ärgerlich ist) ist, dass Sie apt
nicht sehen, verstehen oder erkennen können, was los ist. Sie können es nicht durch sudo apt upgrade
oder ähnliches aktualisieren . Sie müssen die alte NodeJS-Installation manuell bereinigen und bereinigen und dann die neue installieren, falls Sie jemals ein Upgrade durchführen möchten.
Ich würde empfehlen, dass Sie sudo apt install nodejs-legacy
stattdessen einfach laufen . Weniger Schmerzen und es wird automatisch für Sie aktualisiert.
jodejs
über denapt
Befehl installieren :sudo apt install nodejs nodejs-legacy
.