nodejs node latest how actualizar node.js npm

node.js - latest - Instalar NPM en el directorio de inicio con el paquete de distribución nodejs(Ubuntu)



npm install node (7)

Como ya se dijo here y here

npm config set prefix ~ echo export PATH=/$PATH:/~/bin >> ~/.bashrc . ~/.bashrc

Me gustaría usar los paquetes de distribución Node.js (o el archivo chp de chris-lea para versiones más recientes) pero instalar NPM en mi directorio de inicio.

Esto puede parecer quisquilloso, pero es una manera bastante idiomática para los desarrolladores que utilizan polyglot / github para configurar entornos de tiempo de ejecución / biblioteca en Linux: paquetes de distribución para el tiempo de ejecución, bibliotecas de terceros en el entorno por usuario (ver virtualenv, RVM - RVM también construirá Ruby para ti si quieres). Si es necesario construiré un nodo localmente pero es un PITA ya que el nodo se está convirtiendo en un requisito de desarrollo incidental para muchos proyectos.

Parece que el segundo enlace podría funcionar con los paquetes de distribución nodejs, pero parece bastante incompleto.

Actualizar esta pegada resume el segundo enlace anterior, pero no funciona para mí (parece que npm ignora ~ / .npmrc, al menos durante la instalación).


Debido a que python ya hace un gran trabajo virtualenv , yo uso nodeenv . Comparado con nvm , puede crear múltiples entornos para la misma versión de nodo (por ejemplo, dos entornos para el nodo 0.10 pero con diferentes conjuntos de paquetes).

ENVNAME=dev1 # create an environment python -m virtualenv ${ENVNAME} # switch to the newly created env source ${ENVNAME}/bin/activate # install nodeenv pip install nodeenv # install system''s node into virtualenv nodeenv --node=system --python-virtualenv

El archivo léame es bastante bueno: nodeenv


La respuesta de Jake se publicó en 2012 y, aunque es útil, hace referencia a los PPA Node.js de Chris Lea, que ya no se actualizan desde marzo de 2015.

Estos son los pasos que uso para instalar Node.js y npm en mi directorio principal:

Instale Node.js con nvm (no se requiere sudo ):

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash source ~/.bashrc nvm install 7 npm install -g npm # update npm

Ahora puede install -g sin sudo y todo entra en ~/.nvm/

O instale Node.js sin nvm ( instrucciones oficiales ):

Instalar Node.js

  • Node.js v6 (LTS actual a partir de mayo de 2017):

    curl -sL https://deb.nodesource.com/setup_4.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

Cambie el directorio predeterminado de npm a uno local:

mkdir ~/.npm-global npm config set prefix ''~/.npm-global'' export PATH="$HOME/.npm-global/bin:$PATH" # ← put this line in .bashrc source ~/.bashrc # if you only updated .bashrc

Alternativamente, reemplace .npm-global por el directorio de su elección.

Actualice npm y verifique que esté instalado en su directorio $HOME :

$ npm install npm -g /home/<username>/.npm-global/bin/npm -> /home/<username>/.npm-global/lib/node_modules/npm/bin/npm-cli.js /home/<username>/.npm-global/lib └─┬ [email protected] ├─┬ [email protected] │ └── [email protected] ├── [email protected] └── [email protected]

Ahora puede install -g sin sudo y sin jugar con los archivos de su sistema.


La solución publicada por Just Jake es genial. Sin embargo, debido a un error con npm> 1.4.10, es posible que no funcione como se esperaba. (Ver this y this )

Mientras se resuelve el error, puede degradar a npm 1.4.10 siguiendo estos pasos:

  1. Comenta la línea de prefijo en $ HOME / .npmrc
  2. Ejecute sudo npm install -g [email protected]
  3. Asegúrese de que esté instalada la versión correcta de npm ( npm --version )
  4. Descomenta la línea de prefijo en $ HOME / .npmrc
  5. Proceda a instalar sus paquetes globales en su carpeta de inicio !.

NPM ya instalará paquetes locales en sus proyectos, pero todavía me gusta mantener el sistema alejado de los archivos de mi sistema operativo. Así es como sugiero compartimentar los paquetes de Nodejs:

Instale Nodejs y NPM a través del PPA chris-lea. Luego configuré una raíz de paquete en mi homedir para mantener los paquetes Node "globales":

$ NPM_PACKAGES="$HOME/.npm-packages" $ mkdir -p "$NPM_PACKAGES"

Establezca NPM para usar este directorio para sus instalaciones globales de paquetes:

$ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc

Configure su PATH y MANPATH para ver los comandos en su prefijo $ NPM_PACKAGES agregando lo siguiente a su .zshrc / .bashrc:

# NPM packages in homedir NPM_PACKAGES="$HOME/.npm-packages" # Tell our environment about user-installed node tools PATH="$NPM_PACKAGES/bin:$PATH" # Unset manpath so we can inherit from /etc/manpath via the `manpath` command unset MANPATH # delete if you already modified MANPATH elsewhere in your configuration MANPATH="$NPM_PACKAGES/share/man:$(manpath)" # Tell Node about these packages NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"

Ahora cuando hagas una npm install -g , NPM instalará las bibliotecas en ~/.npm-packages/lib/node_modules , y vinculará las herramientas ejecutables en ~/.npm-packages/bin , que está en tu PATH .

Simplemente use npm install -g como lo haría normalmente:

[justjake@marathon:~] $ npm install -g coffee-script ... (npm downloads stuff) ... /home/justjake/.npm-packages/bin/coffee -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/coffee /home/justjake/.npm-packages/bin/cake -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/cake [email protected] /home/justjake/.npm-packages/lib/node_modules/coffee-script [justjake@marathon:~] $ which coffee /home/justjake/.npm-packages/bin/coffee


Para ampliar la respuesta proporcionada por Just Jake y user1533401: No puedo degradar como uso el alojamiento compartido y el nodo está instalado en un directorio del sistema. Este es también el motivo por el que he cambiado el directorio donde npm instala scripts globales si quiero que haga eso. Para los que están en el mismo bote, aquí hay otra solución temporal que encontré que funciona:

npm install -g --prefix=$(npm config get prefix) <package>

El error es que npm no lee su archivo de configuración por usuario, pero al especificarlo cada vez que instala un script global corrige eso. Encontrado this .


Utilicé la solution @ just-jake por un tiempo y descubrí que nvm es más fácil de configurar. También es una solución mucho poderosa que permite instalar y usar diferentes versiones de nodejs .

En Ubuntu 14.04 o 16.04:

  1. Instale paquetes de requisitos previos para construir nodejs :

    sudo apt-get update sudo apt-get install build-essential libssl-dev

  2. Instalar nvm :

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash

    En caso de que la versión más nueva de nvm esté disponible, puede encontrar el comando de instalación real en el sitio nvm .

  3. nvm installer agregará el script bootstrap a ~/.bashrc , por lo que necesita volver a abrir el terminal para ejecutarlo o hacer:

    source ~/.bashrc

  4. Ahora puede instalar cualquier versión de nodejs desee, cambiar entre ellos, etc.

    Use nvm ls-remote para enumerar las versiones de nodejs disponibles.

    Para instalar, por ejemplo, nodejs v4.2.4 do:

    # install v4.2.4 nvm install v4.2.4 # use nodejs v4.2.4 in the current terminal session nvm use v4.2.4 # use v4.2.4 by default in new terminal session nvm alias default v4.2.4