2012-07-18 18 views
40

Gibt es eine empfohlene Installation für NVM, damit alle Benutzer sie verwenden können? Ich kann nichts im Web diesbezüglich finden.NVM & Node.js - Empfohlene Installation für alle Benutzer

das ist, was ich

  • das nvm.sh Skript setzen in einem gemeinsamen Verzeichnis

    • installiert NVM hat für alle Benutzer .profile locationin
    • einen NVM/Alias-Verzeichnis erstellt (NVM wenn dies beklagt für andere Benutzer nicht hier)

    dann muss jeder Benutzer entweder run „nVM Verwendung“ oder es ist standardmäßig in ihrem Profil setzen

    nicht sicher, ob es einen besseren Weg gibt?

    dank

  • Antwort

    44

    Hier ist, was ich getan habe:

    1. installiert nvm in /opt/nvm als root. Schien wie ein geeigneter Ort.

      # git clone [email protected]:creationix/nvm.git /opt/nvm 
      
    2. das Verzeichnis /usr/local/nvm Erstellt. Dies ist, wo die Downloads gehen ($NVM_DIR)

      # mkdir /usr/local/nvm 
      
    3. Erstellen Sie das Verzeichnis /usr/local/node. Dies ist, wo die NPM globalen Sachen gehen:

      # mkdir /usr/local/node 
      
    4. eine Datei erstellt nvm.sh in /etc/profile.d mit folgenden Inhalten genannt:

      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-Login auf eine Shell-Sitzung, und stellen Sie den Standard Knotenversion.

      # nvm install 0.10 
      # nvm alias default 0.10 
      

    Die Knoten-Binärdateien nun im PATH für alle Benutzer das nächste Mal, wenn Sie auf eine Shell-Sitzung anmelden sollte. NPM installiert globale Dinge unter dem Präfix /usr/local/node.

    +1

    Große Setup - jedoch NPM_CONFIG_PREFIX nicht eingehalten wird, wenn ich dieses Setup folgen und globale Module werden in nvm gegen die aktuelle Knotenversion installiert. Irgendwelche Ideen? – leepowell

    +1

    Ich vermisse einen Schritt 4.5: 'source/etc/profile.d/nvm.sh'. Nur dann steht mir nvm zur Verfügung. – czerasz

    +0

    @czerasz Sie sollten das nicht tun müssen; versuchen, sich erneut anzumelden? Ich lief auch in das, aber es ging weg, nachdem ich mich abgemeldet habe – jcollum

    22

    Es empfiehlt sich, eine Kopie des Knotens global zu installieren, damit andere Benutzer darauf zugreifen können. Um dies zu tun, führen Sie den folgenden Befehl ein (Ihr Kennwort des Benutzers an der Eingabeaufforderung eingeben):

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

    Diese commend kopiert, was auch immer Version von Knoten, den Sie über NVM in das /usr/local/ Verzeichnis aktiv haben und Festlegen der Berechtigungen, so dass alle Benutzer kann auf sie zugreifen.

    Um zu überprüfen, dass es funktioniert, die Root-Benutzer werden und das andere tun, die sicher machen befehlen, dass der Knoten nun /usr/local/bin installiert ist:

    sudo -s 
    which node 
    

    Wenn Sie jemals die Version des Knotens ändern möchten, das System installiert ist Verwenden Sie vXX.XX.XX, um den Knoten Ihres Benutzers auf die gewünschte Version umzustellen, und führen Sie dann den obigen ersten Befehl erneut aus, um ihn in das Systemverzeichnis zu kopieren.

    +14

    Bitte Kreditquellen: https://www.digitalcocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps – joemaller

    +0

    dies brach eine Menge Berechtigungen für mich selbst, nur ein fyi – Shane

    +2

    WARNUNG !!!!!!! Der erste Befehl hat die Berechtigungen zerstört und Dateien verschoben. – enterx

    2

    Da LJHarb empfiehlt, dies nicht global zu installieren, habe ich beschlossen, ein Skript zur Installation von nvm zu erstellen, wenn Sie sich beim Server anmelden. Ich brauchte das, da ich mehrere Benutzer eingerichtet hatte, die können Login, aber benötigt Zugriff auf PM2 (um eine unserer Anwendungen zu überwachen).

    Erstellen Sie das Skript in /etc/profile.d/ (benannt nvm.sh zum Beispiel):

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

    Für unsere Anwendung wir PM2 zwischen Benutzern gemeinsam benötigt:

    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

    Sie könnten NVM_DIR = "" auch am Anfang hinzufügen.Wenn Sie dies nicht tun, führt das Hinzufügen zu einem anderen Benutzer dazu, dass die Installation fehlschlägt. Dies liegt daran, dass NVM_DIR vom Installationsskript verwendet wird, aber nicht vor der Verwendung festgelegt wurde. Es hat also den Wert, der tatsächlich der vorherige Benutzer sein könnte. – DerekE

    7
    1. sudo -s
    2. installieren nVM: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
    3. Installieren Knoten: nvm install 7.2.0
    4. eine Datei namens nvm.sh in /etc/profile.d mit folgendem Inhalt Erstellt: export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
    Verwandte Themen