node.js - node - nvm windows
NVM y Node.js: instalaciĆ³n recomendada para todos los usuarios (4)
-
sudo -s
- Instalar nvm:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
- Nodo de instalación:
nvm install 7.2.0
- Creado un archivo llamado nvm.sh en /etc/profile.d con los siguientes contenidos:
export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && /. "$NVM_DIR/nvm.sh" # This loads nvm
export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && /. "$NVM_DIR/nvm.sh" # This loads nvm
¿hay una instalación recomendada para nvm para que todos los usuarios puedan usarla? No puedo encontrar nada en la web con respecto a esto.
Esto es lo que hice
- nvm instalado en un directorio común
- poner la ubicación del script nvm.sh en .profile para todos los usuarios
- creó un directorio nvm / alias (nvm se queja si esto no está aquí para otros usuarios)
entonces cada usuario debe ejecutar "nvm use" o ponerlo en su perfil de forma predeterminada
no estoy seguro de si hay una mejor manera?
Gracias
Aquí esta lo que hice:
Instalado
nvm
en/opt/nvm
como root. Parecía una ubicación adecuada.# git clone [email protected]:creationix/nvm.git /opt/nvm
Creado el directorio
/usr/local/nvm
. Aquí es donde irán las descargas ($NVM_DIR
)# mkdir /usr/local/nvm
Crea el directorio
/usr/local/node
. Aquí es donde irán las cosas globales de NPM:# mkdir /usr/local/node
Creado un archivo llamado
nvm.sh
en/etc/profile.d
con los siguientes contenidos: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"
Vuelva a iniciar sesión en una sesión de shell, luego configure la versión de nodo predeterminada.
# nvm install 0.10 # nvm alias default 0.10
Los binarios de nodo ahora deben estar en la PATH
para todos los usuarios la próxima vez que inicie sesión en una sesión de shell. NPM instalará cosas globales en el prefijo /usr/local/node
.
Como LJHarb recomienda no instalar esto globalmente, decidí crear una secuencia de comandos para instalar nvm cuando inicies sesión en el servidor. Lo necesitaba porque tenía varios usuarios configurados que podían iniciar sesión, pero necesitaban acceso a pm2 (para monitorear una de nuestras aplicaciones).
Cree la secuencia de comandos en /etc/profile.d/ (llamado nvm.sh 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, necesitábamos pm2 compartido entre 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''
Lo mejor es instalar una copia del nodo globalmente para que otros usuarios puedan acceder a ella. Para hacer esto, ejecute el siguiente comando (ingresando la contraseña de su usuario en el prompt):
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
Esta recomendación consiste en copiar cualquier versión de nodo que tenga activada a través de nvm en el directorio /usr/local/
y establecer los permisos para que todos los usuarios puedan acceder a ellos.
Para comprobar que funciona, conviértase en el usuario raíz y realice otro comando que le permita asegurarse de que el nodo esté ahora instalado en /usr/local/bin
:
sudo -s
which node
Si alguna vez quiere cambiar la versión del nodo que está instalado en todo el sistema, simplemente 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 de arriba para copiarlo al directorio del sistema