wake-up-neo.net

"Bitte versuchen Sie, diesen Befehl erneut als Root/Administrator auszuführen", wenn Sie LESS installieren

Ich versuche LESS auf meinem Rechner zu installieren und habe bereits Knoten installiert. Wenn ich jedoch "node install -g less" eingebe, erhalte ich folgende Fehlermeldung und bin mir nicht sicher, was ich tun soll

FPaulMAC:bin paul$ npm install -g less
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/less' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.3.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! cwd /usr/local/bin
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/less
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/less' }
npm ERR! not ok code 0
56
Stack Overflow

Re Explosion Pills "Eine Installation kann beliebige Skripte ausführen und die Ausführung mit Sudo kann extrem gefährlich sein!"

Anscheinend ist Sudo der falsche Weg. 

"Ändern Sie den Besitzer der Dateien in Ihrem/usr/local-Ordner in den aktuellen Benutzer:"

Sudo chown -R $USER /usr/local

Führen Sie dann die Installation aus

node install -g less

Auschecken:

66
aturc

Ehrlich gesagt ist dies ein schlechter Ratschlag von npm. Eine Installation kann beliebige Skripte ausführen und die Ausführung mit Sudo kann äußerst gefährlich sein! Sie könnten Sudo npm install -g less tun, um es global zu installieren, aber stattdessen würde ich empfehlen, Ihre npm-Einstellungen zu aktualisieren:

#~/.npmrc
prefix=~/.npm_modules

Dann können Sie Ihren Pfad aktualisieren:

#~/.bashrc or ~/.zshrc, etc.
export PATH=$PATH:$HOME/.npm_modules/bin

Dann benötigen Sie keine root-Berechtigungen, um die Installation durchzuführen, und Sie können die Binärdatei trotzdem verwenden.

Dies würde jedoch nur für Ihren Benutzer gelten. Wenn Sie möchten, dass das gesamte System das Modul verwenden kann, müssen Sie alle dazu auffordern, Ihren Pfad hinzuzufügen. Kompliziertere und robustere Lösungen umfassen das Hinzufügen eines Ordners mit Knotenmodulen/-binärdateien, in den eine Gruppe installiert werden kann, und that zum Pfad aller Benutzer hinzufügen.

31
Explosion Pills

Stellen Sie einfach Sudo am Anfang Ihres Befehls vor . Wie bereits erwähnt, werden bei der Installation einige Skripts ausgeführt, die gefährlich sein können.

Sudo npm install -g less ausführen 

21

Dies wird definitiv helfen. Antwort per npm selbst. https://docs.npmjs.com/getting-started/fixing-npm-permissions

Das Folgende wird zur Vereinfachung aus der URL extrahiert.


Option 1: Ändern Sie die Berechtigung in das Standardverzeichnis von npm

  1. Finden Sie den Pfad zum Verzeichnis von npm:

    npm config get prefix

Für viele Systeme ist dies/usr/local.

WARNUNG: Wenn der angezeigte Pfad nur/usr lautet, wechseln Sie zu Option 2, da Sie sonst Ihre Berechtigungen verlieren.

  1. Ändern Sie den Besitzer der Verzeichnisse von npm in den Namen des aktuellen Benutzers (Ihren Benutzernamen!):

    Sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Dadurch werden die Berechtigungen der von npm und einigen anderen Tools (lib/node_modules, bin und share) verwendeten Unterordner geändert.


Option 2: Ändere das Standardverzeichnis von npm in ein anderes Verzeichnis

  1. Erstellen Sie ein Verzeichnis für globale Installationen:

    mkdir ~/.npm-global

  2. Konfigurieren Sie npm so, dass der neue Verzeichnispfad verwendet wird:

    npm config set prefix '~/.npm-global'

  3. Öffnen oder erstellen Sie eine ~/.profile-Datei und fügen Sie diese Zeile hinzu:

    export PATH=~/.npm-global/bin:$PATH

  4. Aktualisieren Sie Ihre Systemvariablen wieder in der Befehlszeile:

    source ~/.profile

Test: Laden Sie ein Paket global herunter, ohne Sudo zu verwenden.

`npm install -g jshint`

Anstelle der Schritte 2 bis 4 können Sie die entsprechende ENV-Variable verwenden (z. B. wenn Sie ~/.profile Nicht ändern möchten):

NPM_CONFIG_PREFIX=~/.npm-global


Option 3: Verwenden Sie einen Paketmanager, der dies für Sie erledigt

Wenn Sie eine Neuinstallation von Node unter Mac OS durchführen, können Sie dieses Problem mithilfe des Homebrew-Paket-Managers vollständig vermeiden. Homebrew richtet die Dinge mit den richtigen Berechtigungen sofort ein.

brew install node

13

Ich hatte dieses Problem immer wieder, weil Windows meinen node_modules-Ordner auf Readonly setzte. Stellen Sie sicher, dass Sie dies deaktivieren.

 enter image description here

4
Adam Hughes

Dies war das, was ich tun musste, um mit einem Less-Compiler zu beginnen, um Probleme zu vermeiden, die im OP erwähnt wurden:

  1. Installiere node.js
  2. NPM mit Terminal installieren: Sudo npm install npm -g
  3. Installieren Sie einen Less-Compiler mit Terminal: Sudo npm install -g less (der Sudo macht den Unterschied)
  4. Wenn Sie PHPstorm verwenden: Gehen Sie zu "Einstellungen ...> Plugins" und installieren Sie NodeJS -plugin (möglicherweise müssen Sie "Repositorys durchsuchen", um es zu finden) und PHPstorm neu starten (wenn Sie dazu aufgefordert werden).
  5. Danach gehen Sie noch einmal zu den Plugins: Installieren Sie Less compiler (möglicherweise Müssen "Repositorys durchsuchen", um sie zu finden) und starten Sie PHPstorm neu (als ).
  6. Wenn Sie ein Projekt eingerichtet haben, gehen Sie zu "Einstellungen> Tools> Filewatchers" und fügen Sie "Weniger" hinzu. Der Pfad (des "Programms") sollte etwa wie folgt lauten: This: /usr/local/bin/lessc 
  7. Stellen Sie sicher, dass in den Einstellungen von 6 nur Track nur Stammdateien markiert ist.
1
cptstarling

In meinem Fall musste ich die npm-Version von 5.3.0 → 5.4.2 aktualisieren.

Bevor ich diesen -- npm i -g npm .. verwenden konnte, musste ich zwei Befehle ausführen, die mein Problem perfekt lösten. Es ist sehr wahrscheinlich, dass Ihr Problem dadurch sogar gelöst wird.

Schritt 1: Sudo chown -R $USER /usr/local

Schritt 2: npm install -g cordova ionic

Danach sollten Sie Ihr npm auf die neueste Version aktualisieren

Schritt 3: npm i -g npm

Dann bist du gut zu gehen. Hoffe, das löst dein Problem ...

1
Sunny Bhadani

npm hat eine offizielle Seite über Festlegen von npm-Berechtigungen , wenn der Fehler EACCES (Fehler: Zugriff) angezeigt wird Die Seite hat sogar ein Video.

Sie können dieses Problem mit einer der beiden Optionen beheben:

  1. Ändern Sie die Berechtigung in das Standardverzeichnis von npm.
  2. Ändern Sie das Standardverzeichnis von npm in ein anderes Verzeichnis.
1

Ich habe auch das Problem. Das habe ich gemacht: 

  1. Deinstallierte nodeJs aus der Systemsteuerung> Programm deinstallieren
  2. Es gibt zwei Ordner in den Benutzern // appData/roaming -> npm und npm-cache Löschen Sie beide.

Gehen Sie nun zur nodeJS-Site und installieren Sie sie erneut. Wählen Sie die zweite Option in der Installationsoption (dh das npm-Paket). Es installieren. Ihr Problem muss jetzt gelöst sein. 

0
Deadpool

Ich weiß, dass dies eine alte Frage ist, aber keine der Lösungen schien eine gute Praxis zu sein, daher sage ich, wie ich dieses Problem gelöst habe:

Es wurde versucht, dieses Problem mithilfe von Homebrew zu lösen, es wurde jedoch auch der Knoten in /usr/local directory Installiert, was erneut den Fehler EACCES verursachen würde.

Musste einen Versionsmanager wie nvm verwenden. Weitere Informationen finden Sie im offiziellen npm guide .

Für verschiedene Betriebssystem .

nvm installiert den Node und seine Module im HOME FOLDER des Benutzers , wodurch Probleme mit EACCES behoben werden.

0
Rick