¿Por qué la instalación del nodo 6.x en Ubuntu 16.04 realmente instala el nodo 4.2.6?

78

Estos fueron mis pasos para instalar el nodo en Ubuntu 16.04:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs 
sudo apt-get install -y npm

cuales son las instrucciones oficiales:

https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

Después de hacer esto, la ejecución nodejs --versionvuelve v4.2.6.

Como solía, setup_6.x¿estaba asumiendo 6que se instalaría una versión que comience ?

Pensé que tal vez setup_6.xdebería ser setup_6.2.1, pero esa página devuelve un 404, vea:

https://deb.nodesource.com/setup_6.x (hay una página allí)

https://deb.nodesource.com/setup_6.2.1 (devuelve un 404)

¿Cómo instalo la última versión estable del nodo en Ubuntu 16.04?

Editar:

Estos son los resultados después de ejecutar sudo apt-get install -y nodejs:

sudo apt-get install -y nodejs 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gyp libboost-python1.58.0 libjs-inherits libjs-node-uuid libjs-underscore
  libssl-dev libssl-doc libuv1-dev linux-headers-4.4.0-18
  linux-headers-4.4.0-18-generic linux-headers-4.4.0-21
  linux-headers-4.4.0-21-generic linux-image-4.4.0-18-generic
  linux-image-4.4.0-21-generic linux-image-extra-4.4.0-18-generic
  linux-image-extra-4.4.0-21-generic linux-signed-image-4.4.0-18-generic
  linux-signed-image-4.4.0-21-generic python-configobj python-pycurl
  python-pyexiv2 python-pyexiv2-doc
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  nodejs
0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
Need to get 0 B/3,162 kB of archives.
After this operation, 13.2 MB of additional disk space will be used.
Selecting previously unselected package nodejs.
(Reading database ... 329473 files and directories currently installed.)
Preparing to unpack .../nodejs_4.2.6~dfsg-1ubuntu4_amd64.deb ...
Unpacking nodejs (4.2.6~dfsg-1ubuntu4) ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Registering documents with scrollkeeper...
Processing triggers for man-db (2.7.5-1) ...
Setting up nodejs (4.2.6~dfsg-1ubuntu4) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode

Editar:

Resultados de apt-cache policy nodejs:

apt-cache policy nodejs
nodejs:
  Installed: 4.2.6~dfsg-1ubuntu4
  Candidate: 4.2.6~dfsg-1ubuntu4
  Version table:
 *** 4.2.6~dfsg-1ubuntu4 500
        500 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status
usuario1063287
fuente
Incluya una copia de la salida de apt-cache policy nodejsplease en su pregunta como una edición.
Thomas Ward
El hecho de que el sistema haya ingresado a NodeJS 4.x significa que o ejecutó los scripts incorrectos o que el repositorio no se agregó correctamente al sistema; con los pasos exactos descritos en la página a la que se vincula, pude obtener la última instalación tal como está, por lo que podría haber una serie de problemas: si puede proporcionar apt-cachedatos para que podamos ver lo que su computadora ve existe en repos, podemos ayudarlo más.
Thomas Ward
@ThomasW. - Se agregaron datos para publicar.
user1063287
1
Gracias por los datos actualizados. Parece que el guión no hizo lo que se suponía que debía hacer por cualquier razón. Detallo que este es el caso, y la forma 'manual' de hacer lo que está haciendo el script, en mi respuesta a continuación. Puede usar eso para obtener la última versión de NodeJS. No es tan agradable y fácil como un script, pero en realidad es lo que hace el script en su núcleo.
Thomas Ward
1
@pipe Afortunadamente, hay personas como yo que ejecutan scripts en máquinas virtuales destructibles para que podamos ver lo que está haciendo. Así es como obtuve las instrucciones en mi respuesta, para que podamos hacer lo que ese 'script' hace manualmente, je.
Thomas Ward

Respuestas:

136

La razón principal es que el script de configuración no se ejecutó correctamente. Por lo tanto, gracias a los datos actualizados del OP que respalda esto, los datos del repositorio NodeSource nunca se vieron aptporque el script no lo configuró correctamente.

El script, por lo tanto, puede no haber encontrado su distribución, o puede haberse estropeado al configurar el repositorio, o puede haber una interrupción de la red, o cualquiera de las miles de razones por las que se interrumpió y no hizo su trabajo.

El hecho de que esté viendo la instalación de la versión 4.xsignifica que el script no hizo su trabajo correctamente, por lo que no necesariamente tiene la culpa. Esto solo significa que potencialmente tenemos que hacer esto de una manera más difícil.

Debo señalar: el script en realidad no realiza ninguna instalación; todo lo que hace es determinar la versión de Debian / Ubuntu en la que se encuentra y configurar el repositorio para que obtenga datos. La parte de instalación es en realidad el sudo apt-get installpaso que ejecutaste a mano.


En lugar de confiar en el script, podemos hacer lo que el script está haciendo a la antigua usanza: a mano, nosotros mismos, configurar la configuración del repositorio e instalar NodeJS.

Aquí está la forma manual de hacer que esto funcione, y es básicamente lo que hace el script (excepto el Paso 4, que es asegurarse de obtener datos de versión precisos):

  1. Crea un nuevo archivo: /etc/apt/sources.list.d/nodesource.list

    Tendrá que crear este archivo con sudo, pero cuando cree el archivo, coloque esto dentro de él:

    deb https://deb.nodesource.com/node_6.x xenial main
    deb-src https://deb.nodesource.com/node_6.x xenial main
    

    Luego, guarde el archivo. (reemplace node_6.xcon node_7.xo node_8.x, etc. para las nuevas versiones de Nodo)

  2. Descargue la clave de firma GPG de Nodesource para el repositorio . De lo contrario, puede obtener NO_PUBKEYerrores con apt-get update(use wgeteste comando si curlno está instalado, y si ninguno está instalado, instale uno de ellos):

    curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
    
  3. Ejecutar manualmentesudo apt-get update .

    Esto actualiza los datos del repositorio de nodosource por lo que aptsabe que existe una versión más nueva.

    Si obtiene un NO_PUBKEYerror GPG, vuelva al Paso 2

  4. Verificar apt-cache policy nodejssalida.

    El script no lo hace, pero debe asegurarse de ver una entrada que diga algo como esto en la salida (aunque la versión podría ser diferente si no está utilizando 6.x como la cadena de versión; lo único que Lo que importa es que haya un número de versión más nuevo proporcionado a través de nodeource):

    Version table:
        6.2.1-1nodesource1~xenial1 500
           500 https://deb.nodesource.com/node_6.x xenial/main amd64 Packages
        4.2.6~dfsg-1ubuntu4 500
           500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
    

    Si no ve entradas como esta y solo ve 4.2.6, comience de nuevo. De lo contrario, proceda.

  5. Instalar el nodejsbinario. Ahora que ha confirmado que 6.x está disponible en su sistema, puede instalarlo:sudo apt-get install nodejs

  6. nodejs --versionahora debería mostrarse v6.2.1o similar en la salida (siempre que comience con la v6.versión 6; este puede ser un número de versión más alto si está utilizando una versión más nueva que la 6, pero siempre que no sea 4.2.6 debería ser bueno para ir).

Thomas Ward
fuente
44
Seguí esto a una T y todos los puntos coincidieron con el comportamiento descrito. Muchas gracias.
user1063287
1
@ user1063287 ¡De nada! ¡Espero que esto ayude a otros si el script tampoco funciona para ellos! ¡Disfruta usando el último NodeJS!
Thomas Ward
Oh, por lo que es por lo que en realidad no tienen Nodo 6 cuando pensaba que hago, y los programas se quejan necesito la versión 6. Gracias!
gato
Gracias, funcionó muy bien, me di cuenta de /etc/apt/sources.list.d/nodesource.listque había un comentario acerca de que estaba deshabilitado, también tenía la versión anterior 0.x y estaba en 4.x con el nodo -v. Buenas instrucciones claras.
DaveStSomeWhere
1
Dado que curl no está instalado por defecto, una alternativa es usar wgetwget -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
gerardw
38

Tenía una versión anterior de nodo. Todo lo que necesitaba hacer era purgar el viejo:

sudo apt-get purge nodejs npm

Y luego, reemplazando 6 in v=6con 7, 8, 9 según sea necesario para las respectivas versiones (consulte las instrucciones oficiales de instalación ):

v=6
curl -sL https://deb.nodesource.com/setup_$v.x | sudo -E bash -

(asegúrese de tener instalado el rizo).

Y por último,

sudo apt-get install -y nodejs

Boom, última versión del nodo.

modo de código
fuente
44
O, https://deb.nodesource.com/setup_7.xpara el nodo v7. Ver guía oficial
ryenus
2
El mío todavía instala v4.2.6
Freek Nortier
1
@FreekNortier También estaba teniendo este problema en Linux Mint 18. Pude instalar la versión 11 después de purgar y ejecutar sudo apt-get install python-software-properties. Encontré esta sugerencia en tecadmin y codebind .
Ben
4

Para el usuario de la versión Ubuntu 16.04.2 (con un pequeño cambio de Thomas'post y gracias por él)

1.abre el actualizador de software

2.ajuste

3.otro software

4.Agregue las fuentes pero recuerde elegir la opción de todas las fuentes nuevas más adelante exp:


deb https://deb.nodesource.com/node_6.x xenial main
deb-src https://deb.nodesource.com/node_6.x xenial main

5.recargar

6)sudo apt-get update

7. apt-cache policy nodejs// para obtener la nueva tabla de versiones y verificar si la fuente está configurada

8)sudo apt install nodejs

9)nodejs --version

AHORA está todo listo .......

advertencia: no cambie el controlador predeterminado de Linux para su tarjeta nvidia desde el panel de actualización ... ¡el sistema se bloqueará ...!

Jason Liu
fuente
Instala v4.2.6.
Prashant Prabhakar Singh
¡bonito! funcionó para mí
ejaenv
3

Tuve el mismo problema. Pero en mi caso tuve que actualizar mi comando curl. Puede ver el problema ejecutando con la opción -S.

curl -s -S https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -

Que mostró el problema

curl: (1) Protocol "https" not supported or disabled in libcurl
gpg: no valid OpenPGP data found.

Así que solucioné este problema ejecutando lo siguiente.

sudo apt-get install curl
sudo apt autoremove
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
zatopek
fuente
resuelto el problema
SadeepDarshana
1

Al agregar @Thomas Ward, responda a aquellos que enfrentan problemas para instalar nodejs 8.x con la URL https o el código sigue en las instalaciones v4.2.6 al mostrar un error de certificado, intente agregar nodeource.list con las siguientes líneas

deb http://deb.nodesource.com/node_8.x xenial main
deb-src http://deb.nodesource.com/node_8.x xenial main

siguiente paso: ejecutar

sudo curl -sL http://deb.nodesource.com/setup_8.x | sudo -E bash -

Entonces

sudo apt-get install -y nodejs

Esto resolverá su problema instalando la versión actualizada de nodejs y la versión npm, ya que resolvió la mía para Ubuntu 16.04 LTS ...

Sunilsmith
fuente
0

Encontré este enlace y me ayudó a instalar Nodejs8____https: //www.ubuntuupdates.org/ppa/nodejs_7.x. Tuve que unirme a Nojs8https en esa línea porque decía que necesitaba estar en el nivel dos para poder publicar más de dos enlaces. Creo que eso es al azar, pero lo que sea.

Antes de instalarlo ejecuté el comando: apt-get remove --purge version nodejs

Para verificar que no tiene instalada ninguna versión, ejecute: política apt-cached nodejs y / o nodejs --version

Pude instalar Node js 8 simplemente cambiando el 7 a 8 y terminé con la versión 8.1.3. Para hacer eso, ejecuté los comandos que están en esa página que publiqué anteriormente, pero aquí están los comandos de todos modos:

Descargue la clave del repositorio con:

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

Luego configure el repositorio ::

sudo sh -c "echo deb https://deb.nodesource.com/node_7.x zesty main \ > /etc/apt/sources.list.d/nodesource.list"

sudo apt-get update

sudo apt-get install nodejs

Nuevamente, si desea el nodo js 8, puede cambiar el número 7 en esa línea de comando a 8 y listo.

Victor Espinoza
fuente
0

Intenté seguir las instrucciones en https://github.com/nodesource/distributions para la versión 8, pero eso no funcionó para mí. Visité https://deb.nodesource.com/setup_8.x directamente en el navegador y copié y pegué el script en un archivo en mi sistema nodejs.sh . Luego ejecuté los siguientes comandos

sudo -E bash nodejs.sh
apt-cache policy nodejs
sudo apt-get install nodejs

El comando apt-cache mostró dos versiones con preferencia para la instalación 8. Puede eliminar el archivo de instalación después. No estoy seguro de por qué la copia local del archivo ayudó porque el comando curl mostró el script correctamente.

Bryan Toth
fuente
0

Hola chicos, si tienes Ubuntu 16 prueba estas instrucciones. Funcionó para mí perfectamente. También proporcione la contraseña de su cuenta cuando se le solicite en este proceso.

  1. sudo su -c "echo 'deb https://deb.nodesource.com/node_8.x xenial main' >> /etc/apt/sources.list.d/nodesource.list"

  2. sudo su -c "echo 'deb-src https://deb.nodesource.com/node_8.x xenial main' >> /etc/apt/sources.list.d/nodesource.list"

  3. sudo apt-get update

  4. política apt-cache nodejs Compruebe si las versiones enumeradas tienen el nodo 8

  5. sudo apt-get install nodejs

  6. nodejs -v comprueba la versión de nodo instalada

Esto instalará con éxito la versión 8 de nodejs en su sistema. Si desea cualquier otra versión, cambie la versión en los pasos 1 y 2 para que funcione correctamente.

arco eléctrico
fuente