Node.js und npm mit apt installieren
Im Gegensatz zu anderen Installationsroutinen, ist npm bei Paketmanager-Installationen nicht Bestandteil von Node.js. Daher werden wir Beides separat installieren.
Wie gewohnt installieren wir mit apt
Node.js:
__$ sudo apt install -y nodejs
Mit folgendem Kommando können wir die installierte Version von Node.js abfragen:
__$ node -v
Als Ausgabe sollte eine Versionsnummer erscheinen, sonst ist bei der Installation etwas schiefgelaufen.
Ähnlich gehen wir für npm vor. Erst die Installation mit apt
:
__$ sudo apt install -y npm
Und die Prüfung durch die Versionsausgabe:
__$ npm -v
npm für global Packages umkonfigurieren
Wer nicht dem Tutorial gefolgt ist und alles als root
Benutzer ausführt, kann den folgenden Abschnitt überspringen.
Bei npm gibt es die Möglichkeit Module global zu installieren, die dann Systemweit genutzt werden können. Da wir Node.js als root
Benutzer installiert haben, aus Sicherheitsgründen aber einen weiteren Benutzer tom
angelegt haben, müssen wir den Speicherort der globalen Module ändern und eine Umgebungsvariable anlegen. Dadurch kann tom
globale Module in seinem Benutzerverzeichnis anlegen. Wir vermeiden damit Zugriffsprobleme, da die Pakete sonst nur mit sudo
zugänglich wären.
Zunächst legen wir einen versteckten Ordner für npm Pakete unterhalb des Heimverzeichnisses von tom
an:
__$ mkdir -p ~/.npm/lib
(In Linux werden Ordner und Dateien, deren Namen mit einem Punkt (.
) beginnen, nicht angezeigt. Sie lassen sich mit dem Paramter -a
ausgeben: ls -a
)
Den Standard Pfad für globale npm Pakete ändern wir mit dem Befehl npm config set
:
__$ npm config set prefix ~/.npm
Die Bash Konfigurationsdatei .bashrc
des aktuellen Benutzers ergänzen wir um eine Umgebungsvariable:
__$ echo 'export PATH="$PATH:$HOME/.npm/bin"' >> ~/.bashrc
Und lassen die Bash Konfigurationsdatei vom System neu einlesen:
__$ . ~/.bashrc
Mit diesen Einstellungen schaut Node.js zunächst nach Modulen innerhalb des Projektes im Verzeichnis node_modules
und wenn dort nichts gefunden wurde, im Heimverzeichnis unter ~/.npm
.
Der eigentliche Ablageort wäre sonst /usr/local/npm
gewesen.
Alternativ hätten wir auch den npm System Ordner /usr/local/npm
oder Teile davon dem tom
freigeben können, was allerdings früher oder später zu chaotischen Zuständen führen würde.