Esta es una forma genial (pero molesta) de instalar NodeJS.
Si ejecuta tar tf /usr/save/node-v4.2.1-linux-x64.tar.gzel archivo, verá algo como esto:
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/
Básicamente, esto significa que cuando extrae este archivo tar, se extraerá a una carpeta llamada node-v4.2.1-linux-x64con todas estas subcarpetas (y la instalación del nodo) dentro de él. De hecho, incluso puedes probar esta extracción para tener una mejor idea:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
Si corres ls, verás una node-v4.2.1-linux-x64carpeta.
Ahora, --strip-components 1hace algo interesante para el proceso de extracción. De man tar:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
Básicamente, esto significa que cuando tarva a extraer su archivo, va a fingir que la node-v4.2.1-linux-x64carpeta no está allí. En cambio, se extraerá bin/, share/y todas las demás carpetas directamente.
De hecho, puedes probarlo:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
Si ejecuta ls, verá que ya no hay una node-v4.2.1-linux-x64carpeta. Es sólo bin/, include/, lib/, y share/(todas las carpetas en coincidencia /usr/local/).
Su segundo comando no habría funcionado porque simplemente habría extraído la node-v4.2.1-linux-x64carpeta /usr/local(si es que se ejecutó). Si ejecuta ls /usr/local, incluso podría ver esta carpeta dando vueltas. Es inútil, no dudes en eliminarlo rm. En cuanto a por qué es inútil, sigue leyendo ...
Ahora que hemos explicado cómo funciona el comando tar, podemos explicar cómo se instala.
Cada sistema Linux tiene algo llamado $PATHvariable, que determina dónde se almacenan los archivos ejecutables. Entre estos lugares está /usr/local/bin. Cuando extrae ese binario dentro /usr/local(lo que estoy seguro es lo que dicen sus instrucciones de instalación), se está escribiendo el binario NodeJS /usr/local/bin/nodesegún cómo se realizan las extracciones. Del mismo modo, todas las bibliotecas se están agregando a la carpeta de la biblioteca local y casi todo va a donde pertenece.
Ahora, la advertencia (y por qué esto es molesto) es que aptno verá ni comprenderá ni se dará cuenta de lo que está sucediendo. No podrá actualizarlo a través de sudo apt upgradeo similar. Debería ingresar manualmente y limpiar la antigua instalación de NodeJS y luego instalar la nueva en caso de que alguna vez desee actualizar.
Te recomendaría que solo corras en su sudo apt install nodejs-legacylugar. Menos dolor, y se actualiza automáticamente para usted.
jodejsa travésaptde comandos:sudo apt install nodejs nodejs-legacy.