Zurück zur Startseite

Node Version Manager (NVM)

Dieser Artikel behandelt einen kurzen Beschrieb wie Sie im Userspace node.js mit individueller Version einsetzen können.

Mit “Node Version Manager” (nachstehend ‘nvm’ genannt), einem Tool welches auf Github des Users creationix verfügbar ist, können Sie eigene nodejs Versionen installieren und damit auch verwalten. Es ist auch möglich mehrere Versionen zu installieren.

Info: Die aktuelle Version von nvm finden Sie unter https://github.com/creationix/nvm

Installation von nvm

Der einfachste Weg nvm zu installieren geht über das install Script, welches mit CURL oder Wget aufgerufen werden kann:

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

oder

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

Dadurch wird nvm direkt installiert und ebenfalls in Ihrer bashrc exportiert. Um nvm direkt von der CLI nutzen zu können, muss diese neu-geladen werden:

source .bashrc

optional:
Falls Sie eine Bash Completion wünschen, fügen Sie folgenden Absatz ans Ende Ihrer .bashrc hinzu und laden Sie diese mit source .bashrc neu:

echo "[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion  #adds bash completion for nvm" >> ~/.bashrc 

source .bashrc

Ab jetzt steht Ihnen mit nvm ein Versions Manager zur Verfügung.

Verwendung von NVM

Nachfolgend die wichtigsten Eigenschaften von nvm.

  • überprüfen welche Versionen zur Verfügung stehen:
nvm ls-remote
  • installierte Version prüfen:
nvm ls
  • eine beliebigen Version installieren:
nvm install 5.0
  • eine beliebige Version verwenden
nvm use 5.0
  • einmaliges ausführen einer bestimmten (bereits installierten) Version:
 nvm run 4.2 --version
  • iojs mittels nvm nutzen: nvm install iojs

Prozess manager

Beim Einsatz von nvm kann ein Prozess Manager von grossem Nutzen sein (Beispielsweise pm2).

Der PM ermöglicht autostart nach einem reboot. Zudem wird er verwendet um Instanzen zu steuern (reload, start, stop, status).

Wenn Sie npm auf dem Server haben, können Sie mit folgendem Befehl pm2 installieren:

npm install pm2 -g

Nutzung von pm2

  • einfaches aktivieren von Applikationen:
pm2 start app.js
  • mehrere Instanzen der Applikation im Cluster starten:
pm2 start app.js -i 4
  • update pm2 für neue Funktionen:
pm2 update

Process Monitoring

pm2 list                      # zeigt alle Prozesse die mit pm2 starten
pm2 monit                     # zeigt memory und cpu verbrauch von jeder Applikation
pm2 show [app-name]           # zeigt alle Informationen über die Applikation

Startup/Boot management

pm2 startup                   # erkennt  init system, erstellt und konfiguriert pm2 boot beim startup
pm2 save                      # Speichert die aktuelle Prozess-Liste
pm2 resurrect                 # wiederherstellen der zuvor erstellten Prozesse
pm2 unstartup                 # deaktiviert und entfernt startup System

Systemd user unit

Damit pm2 beim Server Start als Benutzer Service mit gestartet wird, kann eine Benutzer Systemd Unit Datei (~/.config/systemd/user/pm2.service) wie die folgende hinterlegt werden:

[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/

[Service]
Type=forking
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/home/www-data/.nvm/versions/node/v8.5.0/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/www-data/.pm2
PIDFile=/home/www-data/.pm2/pm2.pid

ExecStart=/home/www-data/.nvm/versions/node/v8.5.0/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/www-data/.nvm/versions/node/v8.5.0/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/www-data/.nvm/versions/node/v8.5.0/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=default.target

Haben Sie die gewünschten Informationen nicht gefunden?

Kontaktieren Sie unseren Support:

+41 44 637 40 40 support@nine.ch