web-dev-qa-db-fra.com

NVM & Node.js - Installation recommandée pour tous les utilisateurs

existe-t-il une installation recommandée pour NVM afin que tous les utilisateurs puissent l'utiliser? je ne trouve rien sur le web à ce sujet.

c'est ce que j'ai fait

  • nvm installé dans un répertoire commun
  • mettre l'emplacement du script nvm.sh dans .profile pour tous les utilisateurs
  • créé un répertoire nvm/alias (nvm se plaint s'il n'est pas là pour les autres utilisateurs)

puis chaque utilisateur doit soit exécuter "nvm use", soit le mettre dans son profil par défaut

vous ne savez pas s'il y a une meilleure façon?

merci

54
jadent

Voici ce que j'ai fait:

  1. nvm installé dans /opt/nvm en tant que root. Semblait comme un endroit approprié.

    # git clone [email protected]:creationix/nvm.git /opt/nvm
    
  2. Création du répertoire /usr/local/nvm. C'est là que les téléchargements iront ($NVM_DIR)

    # mkdir /usr/local/nvm
    
  3. Créez le répertoire /usr/local/node. C'est là que le contenu global du NPM ira:

    # mkdir /usr/local/node
    
  4. Créé un fichier appelé nvm.sh dans /etc/profile.d avec le contenu suivant:

    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. Reconnectez-vous à une session Shell, puis définissez la version du nœud par défaut.

    # nvm install 0.10
    # nvm alias default 0.10
    

Les fichiers binaires du nœud devraient maintenant être dans le PATH pour tous les utilisateurs lors de votre prochaine connexion à une session Shell. NPM va installer des choses globales sur le /usr/local/node préfixe.

50
Tim Smart

Il est préférable d'installer une copie du nœud globalement afin que les autres utilisateurs puissent y accéder. Pour ce faire, exécutez la commande suivante (en entrant le mot de passe de votre utilisateur à l'invite):

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

Cette recommandation copie la version du nœud que vous avez active via nvm dans le /usr/local/ répertoire et définissant les autorisations afin que tous les utilisateurs puissent y accéder.

Pour vérifier que cela fonctionne, devenez l'utilisateur root et exécutez une autre commande which pour vous assurer que le nœud est maintenant installé sur /usr/local/bin:

Sudo -s
which node

Si vous souhaitez modifier la version du nœud installée sur l'ensemble du système, faites simplement une autre opération nvm avec vXX.XX.XX pour basculer le nœud de votre utilisateur vers la version souhaitée, puis réexécutez la première commande ci-dessus pour la copier dans le répertoire système.

30
Glowin
  1. Connectez-vous en tant que root: Sudo -s
  2. Installez nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
  3. Créé un fichier appelé nvm.sh dans /etc/profile.d avec le contenu suivant: #!/usr/bin/env bash export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  4. Courir /etc/profile.d/nvm.sh
  5. Nœud d'installation: nvm install node
  6. Mettez éventuellement à jour npm avec: npm install -g npm
15
Biscar

Étant donné que LJHarb recommande de ne pas installer cela globalement, j'ai décidé de créer un script pour installer nvm lorsque vous vous connectez au serveur. J'en avais besoin car j'avais plusieurs utilisateurs configurés qui mai se connectaient, mais avaient besoin d'accéder à pm2 (pour surveiller l'une de nos applications).

Créez le script dans /etc/profile.d/ (nommé nvm.sh par exemple):

#!/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

Pour notre application, nous avions besoin de pm2 partagé entre les utilisateurs:

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'
3
matth

Il existe également ce fork de nvm conçu pour une utilisation mondiale: https://github.com/xtuple/nvm

wget -qO- https://raw.githubusercontent.com/xtuple/nvm/master/install.sh | Sudo bash

Sudo chown -R $USER /usr/local/nvm

nvm install 8

Mise à jour: j'ai essayé différentes façons d'utiliser le nvm de xtuple et également n pour gérer un environnement de nœud global et j'ai toujours rencontré des cas Edge où il y avait des problèmes. En fin de compte, ce qui a fonctionné le mieux pour moi a été de télécharger quelques versions de node à partir de leur site Web et de les décompresser dans/usr/local. Ensuite, mettez à jour mon chemin avec la version que je veux. par exemple.

export PATH=/usr/local/node-v7.10.1-linux-x64/bin:$PATH

Remarque: Vous devrez probablement chmod 777 le chemin du nœud ou dédier un utilisateur pour le gérer.

1
Brendon