sábado, 26 de noviembre de 2011

node v0.6.3 publicada. Como actualizar node.js con n

Actualización de 30 de octubre de 2013: este post se publicó en 2011 y las cosas han cambiado desde entonces. En junio de 2012, introdujeron unas modificaciones interesantes sobre el uso de n, como muy bien apunta Carlos Canicio en su comentario.

Ahora, para instalar la última versión estable hay que usar (en función de la instalación ya igual ni te hace falta el sudo):
$ n stable

Para instalar la última versión que probablemente será de número impar y eso significa que es inestable (ahora están en las 0.11.*):
$ n latest

Por ejemplo, si quieres jugar con las opciones de ES6 que tiene V8, deberías instalar una versión inestable y arrancar a node con el flag --harmony.

Otra opción que te puede interesar es arrancar n sin parámetros, ya que con la flechas del teclado puedes navegar por las versiones de node y seleccionar la que te interese.


Ayer publicaron la versión v0.6.3 de node.js. La principal novedad de esta versión es que incluye el gestor de paquetes npm, con lo que ya no hace falta instalarlo directamente.

Para actualizar la versión de node.js, una de las utilidades más sencillas es utilizar el paquete  "n"  (https://github.com/visionmedia/n).

En el portátil (Mac) en el que estoy escribiendo este post tengo instalada una versión anterior:

$ node -v
v0.4.12

Lo primero nos aseguramos de tener "n" instalado con npm.
$ sudo npm install -g n
Password:
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
n@0.5.4 /usr/local/lib/node_modules/n 


Ahora ya se puede actualizar node. Esta tan sencillo como poner:

$ sudo n latest

Veremos algo como:

######################################################################## 100,0%
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for program gcc or cc           : /usr/bin/gcc 
Checking for gcc                         : ok  
Checking for library dl                  : yes 
Checking for openssl                     : not found 
Checking for function SSL_library_init   : yes 
Checking for header openssl/crypto.h     : yes 
Checking for library util                : yes 
Checking for library rt                  : not found 
Checking for fdatasync(2) with c++       : no 
'configure' finished successfully (0.918s)
Waf: Entering directory `/usr/local/n/node-v0.6.3/out'
DEST_OS: darwin
DEST_CPU: x64

.... (Y un largo etcétera)


Y revisamos de nuevo la versión de node.js para confirmar una correcta actualización

$ node -v
v0.6.3

Sobre n 

El paquete "n" permite la gestión de los binarios de node de manera muy sencilla.

"n" instala node por defecto en /usr/local/n/versions, donde puedes ver que tienes actualmente instalado. Puedes activar versiones anteriores de node si lo deseas. Lo node activados se instalan en el prefijo /usr/local, que si se desea se puede cambiar mediante la variable de entorno N_PREFIX. Para cambiar el comportamiento de n simplemente cambia N_PREFIX con el valor que prefieras.

"n" soporta los siguientes comandos:

   n                           Versiones instaladas
   n latest [config ...]       Instala o activa la ultima release de node 
   n <version> [config ...]    Instalar y/o usar node version <version>
   n use <version> [args ...]  Ejecutar node  <version> con argumentos [args ...] 
   n bin <version>             Informar path de binarios de <version>
   n rm <version ...="">       Eliminar version(es)
   n --latest                  Informar ultima version de node disponible
   n ls                        Informar de versiones disponibles
En los listados se marca con un círculo "ο" la versión activa y en el listado de las disponibles se marca con un asterisco las descargadas.
Por ejemplo, slistado las versiones disponibles con n ls me aparecen las siguientes:
n ls
    0.0.1
    0.0.2
    0.0.3
    0.0.4
    0.0.5
    0.0.6
    0.1.0
    0.1.1
    0.1.2
    0.1.3
    0.1.4
    0.1.5
    0.1.6
    0.1.7
    0.1.8
    0.1.9
    0.1.10
    0.1.11
    0.1.12
    0.1.13
    0.1.14
    0.1.15
    0.1.16
    0.1.17
    0.1.18
    0.1.19
    0.1.20
    0.1.21
    0.1.22
    0.1.23
    0.1.24
    0.1.25
    0.1.26
    0.1.27
    0.1.28
    0.1.29
    0.1.30
    0.1.31
    0.1.32
    0.1.33
    0.1.90
    0.1.91
    0.1.92
    0.1.93
    0.1.94
    0.1.95
    0.1.96
    0.1.97
    0.1.98
    0.1.99
    0.1.100
    0.1.101
    0.1.102
    0.1.103
    0.1.104
    0.2.0
    0.2.1
    0.2.2
    0.2.3
    0.2.4
    0.2.5
    0.2.6
    0.3.0
    0.3.1
    0.3.2
    0.3.3
    0.3.4
    0.3.5
    0.3.6
    0.3.7
    0.3.8
    0.4.0
    0.4.1
  * 0.4.2 
    0.4.3
    0.4.4
    0.4.5
    0.4.6
    0.4.7
    0.4.8
    0.4.9
    0.4.10
    0.4.11
    0.4.12
    0.5.0
    0.5.1
    0.5.2
    0.5.3
    0.5.4
    0.5.5
    0.5.6
    0.5.7
    0.5.8
    0.5.9
    0.5.10
    0.6.0
    0.6.1
  * 0.6.2 
  ο 0.6.3 

2 comentarios:

  1. En vez de usar el comando:
    $ sudo n latest
    Se debería usar:
    $ sudo n stable

    Ya que lo lógico es actualizar a la versión estable, no a versiones en desarrollo

    ResponderEliminar
  2. He actualizado el post con estos comentarios. En 2011 todavía no soportaba "stable" :)

    ResponderEliminar