npm -g braucht sudo ? - So nicht mehr...


Seit kurzem beschäftige ich mich mit nodejs und in Verbindung damit natürlich mit npm und yarn.
Der Einstieg in npm ist relativ einfach, doch von Anfang an gab es für mich eine Sache die mich irritierte... wer könnte ahnen, das ich hier einem Bug aufgesessen bin, der für unnötiges Kopfzerbrechen gesorgt hat.


Irgendwie komisch

Dass man NPM-Pakete sowohl lokal, als auch global installieren kann war ja noch recht einfach zu verstehen.
Etwas schwieriger war es jedoch, als die ersten Probleme auftauchten mit global installierten NPM Paketen. Seltsamerweise benötigte Linux immer die root Benutzerrechte, weshalb ein sudo nötig war um die NPM Pakete zu installieren.

Da auf vielen Webseiten globale NPM-Pakete ohne sudo installiert wurden, hat mich das irritiert. Bei der Nutzung der global installierten Pakete kam es dann auch prompt zu Problemen.

Nach einiger Recherche habe ich herausgefunden, dass es sich hierbei um einen Fehler bei der Installation des NPM-Linux-Packages handelt. Die NPN Daten werden in das Verzeichnis /usr installiert.
Laut Anleitung auf der NPM Webseite führt dies zu entsprechenden Problemen, was ich in der Praxis dann auch selbst erleben musste.

Die Lösung des Problems

Da aus Sicherheitsgründen ein chmod oder chown  des /user Verzeichnisses nicht gewünscht ist, hat folgende Workaround Erfolg gebracht:

Es wird ein NPM-Verzeichnis  im Home Verzeichnis des Benutzers angelegt.  Dann wird NPM mit einer Umgebungsvariable so umkonfiguriert, dass es seine Daten in diesem Verzeichnis speichert.
Dies funktioniert so:

mkdir ~/.npm-global
echo "export NPM_CONFIG_PREFIX=~/.npm-global" >> ~/.bashrc
source ~/.bashrc

Previous
Next Post »

Dieses Blog durchsuchen