C'est en quelque sorte une façon cool (mais ennuyeuse) d'installer NodeJS.
Si vous exécutez tar tf /usr/save/node-v4.2.1-linux-x64.tar.gzle fichier, vous verrez quelque chose comme ceci:
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/
Fondamentalement, cela signifie que lorsque vous extrayez cette archive tar, elle sera extraite dans un dossier appelé node-v4.2.1-linux-x64avec tous ces sous-dossiers (et l'installation du nœud) à l'intérieur. En fait, vous pouvez même essayer cette extraction pour avoir une meilleure idée:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
Si vous exécutez ls, vous verrez un node-v4.2.1-linux-x64dossier.
Maintenant, --strip-components 1fait quelque chose d'intéressant pour le processus d'extraction. De man tar:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
Fondamentalement, cela signifie que lorsque vous tarallez extraire votre archive, il va faire semblant que le node-v4.2.1-linux-x64dossier n'est pas là. , Il est au lieu d' aller à l' extrait bin/, share/et tous les autres dossiers directement.
En fait, vous pouvez l'essayer:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
Si vous exécutez ls, vous verrez qu'il n'y a plus de node-v4.2.1-linux-x64dossier. Il est juste bin/, include/, lib/et share/(tous les dossiers par hasard dans /usr/local/).
Votre deuxième commande n'aurait pas fonctionné car elle aurait juste extrait le node-v4.2.1-linux-x64dossier /usr/local(si elle s'exécutait même). Si vous exécutez ls /usr/local, vous pourriez même voir ce dossier traîner. C'est inutile, n'hésitez pas à supprimer avec rm. Quant à savoir pourquoi c'est inutile, continuez à lire ...
Maintenant que nous avons expliqué comment fonctionne la commande tar, nous pouvons expliquer comment elle est installée.
Chaque système Linux a quelque chose appelé la $PATHvariable, qui détermine où les fichiers exécutables sont stockés. Parmi ces endroits est /usr/local/bin. Lorsque vous extrayez ce binaire à l'intérieur /usr/local(ce que je suis sûr que ce sont vos instructions d'installation), le binaire NodeJS est écrit /usr/local/bin/nodeselon la façon dont les extractions sont effectuées. De même, toutes les bibliothèques sont ajoutées au dossier de la bibliothèque locale et tout va à peu près là où il appartient.
Maintenant, la mise en garde (et pourquoi cela est ennuyeux) est que vous aptne verrez pas, ne comprendrez pas ou ne réaliserez pas ce qui se passe. Vous ne pourrez pas le mettre à jour via sudo apt upgradeou similaire. Vous devez entrer manuellement et nettoyer l'ancienne installation de NodeJS, puis en installer une nouvelle au cas où vous souhaiteriez mettre à niveau.
Je vous recommanderais simplement de courir à la sudo apt install nodejs-legacyplace. Moins de douleur et il se met automatiquement à jour pour vous.
jodejsparaptcommande:sudo apt install nodejs nodejs-legacy.