Al instalar Node en mi máquina, utilicé el siguiente comando que encontré en un sitio web.
tar --strip-components 1 -xzf /usr/save/node-v4.2.1-linux-x64.tar.gz
Sé que tar -xzfse usa para extraer los archivos, pero quiero saber cómo se instala el nodo.
Intenté instalarlo de esta manera. Extraje los archivos de nodo para /usr/localusar el siguiente comando,
tar /usr/local -xzf /usr/save/node-v4.2.1-linux-x64.tar.gz
Pero esto no funciona. ¿Alguien puede explicarme o ayudarme a comprender la diferencia entre estos dos comandos?
¿Qué más hace el comando 1 que el comando 2?
                    
                        software-installation
                                tar
                                
                    
                    
                        prathapa reddy
fuente
                
                fuente

jodejsa travésaptde comandos:sudo apt install nodejs nodejs-legacy.Respuestas:
La estructura del directorio tarball es así:
Cuando extrae este archivo sin ninguna otra opción
/usr/local, obtiene esto:Entonces, se crea un nuevo directorio
/usr/localy los archivos se descargan allí.Sin embargo, con
--strip-components=1, se elimina un componente de directorio de la ruta extraída, por lo quenode-v6.10.1-linux-x64/bin/se hacebin/ynode-v6.10.1-linux-x64/bin/npmse convierte enbin/npm:Y
/usr/local/binya está dentroPATH, por lo que no necesita hacer nada más para ejecutarnpmynode.fuente
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: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:Si corres
ls, verás unanode-v4.2.1-linux-x64carpeta.Ahora,
--strip-components 1hace algo interesante para el proceso de extracción. Deman tar:Básicamente, esto significa que cuando
tarva a extraer su archivo, va a fingir que lanode-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:
Si ejecuta
ls, verá que ya no hay unanode-v4.2.1-linux-x64carpeta. Es sólobin/,include/,lib/, yshare/(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 ejecutals /usr/local, incluso podría ver esta carpeta dando vueltas. Es inútil, no dudes en eliminarlorm. 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 desudo 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.fuente