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.gz
le 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-x64
avec 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-x64
dossier.
Maintenant, --strip-components 1
fait 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 tar
allez extraire votre archive, il va faire semblant que le node-v4.2.1-linux-x64
dossier 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-x64
dossier. 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-x64
dossier /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 $PATH
variable, 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/node
selon 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 apt
ne verrez pas, ne comprendrez pas ou ne réaliserez pas ce qui se passe. Vous ne pourrez pas le mettre à jour via sudo apt upgrade
ou 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-legacy
place. Moins de douleur et il se met automatiquement à jour pour vous.
jodejs
parapt
commande:sudo apt install nodejs nodejs-legacy
.