¿Cómo instalar el último NodeJS en Debian Jessie?

29

Acabo de instalar NodeJS & NPM en Debian Jessie usando el enfoque recomendado:

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

Sin embargo, es una versión bastante antigua (nodo v0.10.38 y npm 1.4.28).

¿Alguna sugerencia sobre la forma más fácil de instalar versiones más nuevas, por ejemplo, el nodo actual es v0.12.4 y npm es 2.7.4? ¿Instalar desde la fuente es mi único enfoque?

MrColes
fuente

Respuestas:

48

Hay un script de configuración disponible para Node.js (consulte las instrucciones de instalación ):

# Adapt version number to the version you want
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

Un pequeño comentario: en mi humilde opinión, es una muy mala idea curl | sudo bash. Está ejecutando un script que no verificó con privilegios de root. Siempre es mejor para descargar el script, lea a través de él, comprobar si hay comandos maliciosos, y después de que , ejecutarlo. Pero esos son solo mis dos centavos.

La instalación se puede realizar manualmente en unos pocos pasos siguiendo el procedimiento de instalación manual :

  • Eliminar el viejo PPA (si corresponde)
  • Añadir clave de repositorio de nodo ssh
  • Agregar repositorio de nodo a sources.list
  • actualice la lista de paquetes e instálela utilizando la herramienta apt favorita
embik
fuente
55
ops, úsalo, pero ahora hay setup_4.x... redo curl y apt-get ok?
Peter Krauss
3
Como es posible que necesite la versión más reciente y real, le recomiendo que visite su sitio: github.com/nodesource/distributions .
predicador senior
¿Por qué no confiar en él si se trata a través de una conexión segura de la misma fuente que se está ejecutando binarios de
@ acidzombie24 correcto, pero incluso si confía en el código por no ser malo, siempre existe la posibilidad de un error en el script, o un script obsoleto, o su configuración sea un poco exótica. O tal vez le gustaría ordenar sus fuentes.list de alguna manera y los scripts lo hacen de otra manera. De todos modos, también creo que es una mala práctica y los principiantes (no estoy apuntando al OP, pero en general) no deberían ser alentados a hacerlo. Especialmente cuando realizar la acción manualmente es mucho más sencillo que examinar el guión.
Jérôme
12

Puede descargar la última versión de Node ( 4.2.2) desde su sitio web , en lugar de utilizar el paquete que proporciona Debian ( 0.12). Esto también significará que tiene una versión actualizada de npm. No he tenido ningún problema para hacer esto en Jessie.

Descargue el .tar.gzde su sitio web y cden ese directorio (el nombre del archivo es obviamente específico para mi descarga)

$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64

Si observa la carpeta bin, verá los archivos binarios que necesita para node y npm:

$ ls node-v4.2.2-linux-x64/bin 
node  npm

Ahora cambiaría el nombre de la carpeta a algo un poco más fácil de seguir

$ mv node-v4.2.2-linux-x64 nodejs

Si no está interesado en mantener actualizado el nodo, simplemente mueva esta carpeta a una de sus ubicaciones (que uso ~/bin) y omita el siguiente paso.

Si desea poder actualizar fácilmente la versión de su nodo, mueva la nodejscarpeta a algún lugar donde pueda realizar un seguimiento ( ~/nodejs¿tal vez?). Luego, desea crear un enlace simbólico a una de sus ubicaciones para que los archivos binarios se puedan usar desde su shell sin escribir la ruta completa.

Suponiendo que coloca la carpeta nodejs en su directorio de inicio, ahora puede hacer:

$ ln -s ~/nodejs ~/bin/nodejs

Obviamente, esto puede ir a cualquier ubicación de contenedor que desee. Utilicé mi directorio de inicio para que solo esté disponible para mí, pero también podría hacer fácilmente:

$ ln -s ~/nodejs /usr/local/bin/nodejs

Esto creará un enlace simbólico desde la carpeta nodejs en su directorio de inicio al directorio bin (lo que significa que cualquier actualización del directorio en su carpeta de inicio se refleja en la carpeta en otro lugar a través del enlace simbólico ). Ahora desea asegurarse de que la carpeta bin que contiene el directorio nodejs esté en su $PATHvariable de entorno , por lo tanto, abra el ~/.profilearchivo en su directorio de inicio. Desea agregar esto al final de ese archivo (cambiando la ruta, si no lo usó ~/bin/):

# Set the node PATH if it exists
if [ -d "$HOME/bin/nodejs/bin" ] ; then
    PATH="$HOME/bin/nodejs/bin:$PATH"
fi

Esto verificará si el directorio existe, y si es así, agréguelo a su RUTA. Yo uso, zshasí que acabo de actualizar una línea en ~/.zshrc:

export PATH="$HOME/bin/nodejs/bin:$PATH"

Cierre su terminal y vuelva a abrir, luego escriba lo siguiente para verificar:

$ node -v
v4.2.2

$ npm -v
2.14.7

Al crear el enlace sym, ahora significa que en el futuro, puede descargar uno nuevo .tar.gzdel sitio web de Nodejs, extraerlo ~/nodejsy los binarios disponibles en su $PATH variable de entorno se actualizan automáticamente.

Luke
fuente
Este funcionó para mí, ya que también dio un npm de trabajo.
artfulrobot
4

en mi caso, ejecuté los comandos de shell recomendados:

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

el problema era que el script bash no actualizaba mi fijación APT, por lo que apt-get instaló el paquete Debian antiguo predeterminado de la fuente debian.org y no de los nodosource.com

Verifique que este sea el problema con apt-cache policy nodejs. deberías ver algo así Candidate: 6.10.2-1nodesource1~jessie1y noCandidate: 0.10.29~dfsg-2

para establecer la prioridad del pin en el nodo de origen, agregue un archivo /etc/apt/preferences.d/llamado nodeo lo que sea con este contenido:

Package: nodejs
Pin: release o=Node Source
Pin-Priority: 1200

guardar y ejecutar apt-get cache update. luego intente apt-cache policy nodejsnuevamente. si el candidato se ve bien, instálelo normalmenteapt-get install nodejs

georgiecasey
fuente
apt-get cache updatedevuelta E: Invalid operation cachepor lo que corrí sudo aptitude update.
usuario394
2

Puede seguir la documentación oficial de node.js para instalar la última versión con el administrador de paquetes.

Node.js v6:

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

Node.js v7:

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

Al ejecutar este último, se instaló el nodo v7.5.0 y npm v4.1.2 en mi sistema. Ambos nodey los nodejsalias se habilitaron para Node automáticamente.

mrkvon
fuente