2012-07-18 45 views
40

¿Existe una instalación recomendada para nvm para que todos los usuarios puedan usarla? No puedo encontrar nada en la web con respecto a esto.NVM & Node.js - Instalación recomendada para todos los usuarios

esto es lo que hice

  • NVM instalado en un directorio común
  • poner el guión nvm.sh acogedor establecimiento .profile para todos los usuarios
  • creado un directorio NVM/alias (NVM se queja si esto no es aquí por otros usuarios)

entonces cada usuario debe ejecutar "uso NVM" o ponerlo en su perfil por defecto

no estoy seguro si hay una manera mejor?

gracias

Respuesta

44

Aquí es lo que hice:

  1. instalados en nvm/opt/nvm como root. Parecía una ubicación adecuada.

    # git clone [email protected]:creationix/nvm.git /opt/nvm 
    
  2. creó el directorio de /usr/local/nvm. Aquí es donde las descargas irán ($NVM_DIR)

    # mkdir /usr/local/nvm 
    
  3. Cree el directorio /usr/local/node. Aquí es donde las cosas mundial NPM irá:

    # mkdir /usr/local/node 
    
  4. Creado un archivo llamado nvm.sh en /etc/profile.d con el siguiente contenido:

    export NVM_DIR=/usr/local/nvm 
    source /opt/nvm/nvm.sh 
    
    export NPM_CONFIG_PREFIX=/usr/local/node 
    export PATH="/usr/local/node/bin:$PATH" 
    
  5. Re-inicio de sesión a una sesión de shell, a continuación, establecer el valor por defecto versión del nodo

    # nvm install 0.10 
    # nvm alias default 0.10 
    

Los binarios de nodos deberían estar ahora en el PATH para todos los usuarios la próxima vez que se conecte a una sesión de shell. NPM instalará cosas globales en el prefijo /usr/local/node.

+1

Gran configuración - sin embargo NPM_CONFIG_PREFIX no se respeta cuando sigo esta configuración y los módulos globales se están instalando en nvm contra la versión actual del nodo. ¿Algunas ideas? – leepowell

+1

Extraño un paso 4.5: 'source/etc/profile.d/nvm.sh'. Solo entonces nvm está disponible para mí. – czerasz

+0

@czerasz no deberías tener que hacer eso; intente iniciar sesión de nuevo? Me encontré con eso también, pero se fue después de que cerré sesión/en – jcollum

22

Lo mejor es instalar una copia del nodo globalmente para que otros usuarios puedan acceder a ella. Para ello, ejecute el siguiente comando (entrando por contraseña del usuario en el indicador):

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local 

Este commend es copiar cualquier versión del nodo que tiene activa a través de NVM en el directorio /usr/local/ y establecer los permisos para que todos los usuarios puede acceder a ellos.

para comprobar que funciona, convertirse en el usuario root y hacer otro que comando para asegurarse de que el nodo está ahora instalado a /usr/local/bin:

sudo -s 
which node 

Si alguna vez desea cambiar la versión del nodo que está el sistema instalado de ancho, solo haga otra nvm use vXX.XX.XX para cambiar el nodo de su usuario a la versión que desee, y luego vuelva a ejecutar el primer comando anterior para copiarlo en el directorio del sistema.

+0

esto rompió un montón de permisos para mí, solo un fyi – Shane

+2

ADVERTENCIA !!!!!!! el primer comando rompió los permisos y movió los archivos. – enterx

2

Dado que LJHarb recomienda no instalar esto globalmente, decidí crear una secuencia de comandos para instalar nvm cuando inicie sesión en el servidor. Lo necesitaba ya que tenía varios usuarios configurados que puede iniciar sesión, pero necesitaba acceso a pm2 (para monitorear una de nuestras aplicaciones).

Crear la secuencia de comandos en /etc/profile.d/ (nvm.sh llamado así por ejemplo):

#!/bin/bash 
NODE_VER=6.2.2 
if [ ! -f ~/.nvm/nvm.sh ]; then 
    # May need to be updated with the latest nvm release 
    wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash 
fi 
source ~/.nvm/nvm.sh 
if ! command -v node | grep -q $NODE_VER; then 
    echo "Node is not installed" 
    nvm install $NODE_VER 
    nvm alias default $NODE_VER 
fi 

Para nuestra aplicación, necesitamos PM2 compartidos entre los usuarios:

if ! command -v pm2 &>/dev/null; then 
    echo "pm2 not installed" 
    npm install -g pm2 
fi 
# Share pm2 configuration between users 
alias pm2='env HOME=/opt/sora pm2' 
+0

Es posible que también desee agregar NVM_DIR = "" al comienzo.Si no lo hace, entonces 'suing' en otro usuario hará que la instalación falle. Esto se debe a que el script de instalación usa NVM_DIR, pero no se establece inicialmente antes de usarse. Por lo tanto, tiene el valor establecido, que en realidad podría ser el usuario anterior. – DerekE

7
  1. sudo -s
  2. Instalar NVM: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
  3. Instalar nodo: nvm install 7.2.0
  4. Creado un archivo llamado nvm.sh en /etc/profile.d con el siguiente contenido: export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Cuestiones relacionadas