wake-up-neo.net

Fehler: EACCES: Berechtigung verweigert, Zugriff auf '/ usr/local/lib/node_modules' reagieren

Was könnte den Fehler Error: EACCES: permission denied, access '/usr/local/lib/node_modules' verursachen?

npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log
30
hendra dedi

Ändern Sie Ihre Dateiberechtigungen 

prüfen Sie zunächst, wer das Verzeichnis besitzt

ls -la /usr/local/lib/node_modules

es verweigert den Zugriff, da der Ordner node_module dem Root gehört

drwxr-xr-x   3 root    wheel  102 Jun 24 23:24 node_modules

dies muss geändert werden, indem Sie root in Ihren Benutzer ändern. Führen Sie jedoch zuerst den folgenden Befehl aus, um Ihren aktuellen Benutzer zu überprüfen. Wie erhalte ich den Namen des aktiven Benutzers über die Befehlszeile in OS X?

id -un

dann den Besitzer wechseln 

Sudo chown -R [owner] /usr/local/lib/node_modules
79
okandas

anhängen von Sudo vor dem Befehl, den Sie versuchen.

wie folgt: Sudo npm install

Wenn Sie Sudo mit einem Befehl in Linux/UNIX verwenden, werden Ihre Berechtigungen im Allgemeinen auf Superuser-Ebenen erhöht. In Windows wird das Superuser-Konto normalerweise als "Administrator" bezeichnet. In Linux/Unix wird das Superuser-Konto im Allgemeinen als "root" bezeichnet.

Der Root-Benutzer hat die Berechtigung, auf nahezu alle Dateien auf Ihrem Computer zuzugreifen, diese zu ändern oder zu löschen. Normale Benutzerkonten können auf viel weniger Dateien zugreifen, sie ändern oder löschen. Die Einschränkungen eines normalen Kontos schützen Ihren Computer vor unbefugten oder schädlichen Programmen oder Benutzern. Bei einigen Prozessen müssen Sie Aktionen für Dateien oder Ordner ausführen, auf die Sie normalerweise nicht zugreifen können. Die Installation eines Programms, auf das jeder zugreifen kann, ist eine dieser Aktionen.

In Ihrem Fall erhalten Sie durch Ausführen des Installationsbefehls mit Sudo die Berechtigungen des Superbenutzers und können Dateien ändern, für die Ihr normaler Benutzer keine Berechtigung zum Ändern hat.

20

Alles, was Sie tun müssen, ist, USER zum Eigentümer von/local/lib hinzuzufügen

Sudo chown -R $USER /usr/local/lib
7
Nizar

Beim Installieren von globalen Paketen in ubuntu benötigen Sie spezielle Schreibberechtigungen, wenn Sie in den Ordner usr/bin schreiben. Dies geschieht aus Sicherheitsgründen. Wenn Sie ein globales Paket installieren, verwenden Sie Folgendes:

Sudo npm install -g [package-name]

Für Ihren speziellen Fall wird es sein:

Sudo npm install -g TypeScript
6
cinobili19

Wenn Sie mit diesem Problem auf Ihrem Mac konfrontiert sind. Befolgen Sie diese Schritte

Überprüfen Sie zunächst mit dem folgenden Befehl, wer Eigentümer dieser Datei ist

  ls -la /usr/local/lib/node_modules

sie finden eine Datei wie unten eine davon ist unten

drwxr-xr-x 3 Wurzelrad 768 29. Mai 02:21 node_modules

haben Sie bemerkt, dass die obige Datei Eigentum von root ist, um Änderungen im Inneren vorzunehmen, müssen Sie den Eigentümer des Pfads ändern.

mit diesem Befehl können Sie überprüfen, wer der aktuelle Benutzer ist

  id -un                    (in my case user is yamsol)

und dann können Sie ändern, indem Sie diesen Befehl aufrufen (ersetzen Sie einfach Ihren Benutzernamen durch ownerName)

  Sudo chown -R ownerName: /usr/local/lib/node_modules

in meinem Fall, da Sie wissen, dass der Benutzer "yamsol" ist, werde ich diesen Befehl auf diese Weise aufrufen

  Sudo chown -R yamsol: /usr/local/lib/node_modules

das ist es.

6
adnan javed

Um die Wahrscheinlichkeit von Berechtigungsfehlern zu minimieren, können Sie npm so konfigurieren, dass ein anderes Verzeichnis verwendet wird. In diesem Beispiel erstellen und verwenden Sie ein verstecktes Verzeichnis in Ihrem Ausgangsverzeichnis.

Mach ein Backup von deinem Computer. Erstellen Sie in der Befehlszeile in Ihrem Ausgangsverzeichnis ein Verzeichnis für globale Installationen: mkdir ~/.npm-global Konfigurieren Sie npm so, dass der neue Verzeichnispfad verwendet wird: npm config set prefix '~/.npm-global' Öffnen oder erstellen Sie in Ihrem bevorzugten Texteditor eine ~/.profile -Datei und fügen Sie die folgende Zeile hinzu: export PATH=~/.npm-global/bin:$PATH In der Befehlszeile Aktualisieren Sie Ihre Systemvariablen: source ~/.profile Um Ihre neue Konfiguration zu testen, installieren Sie ein Paket global, ohne Sudo zu verwenden

5
Naveen Raju

Ich habe versucht, eine React Expo zu installieren und neben Sudo musste ich --unsafe-perm hinzufügen

so was. Dies behebt mein Problem

Sudo npm install -g expo-cli --unsafe-perm
4
Furquan

Es sieht so aus, als ob Sie auf Berechtigungsprobleme stoßen. Wenn Sie npm-packages installieren, wird beim Versuch, ein Paket global zu installieren, möglicherweise eine EACCES-Fehlermeldung angezeigt. Das heißt, Sie haben keine Berechtigung zum Schreiben in die Verzeichnisse, die npm zum Speichern globaler Pakete und Befehle verwendet.

Führen Sie die folgenden Befehle aus: Sudo chmod u+x -R 775 ~/.npm und Sudo chown $USER -R ~/.npm oder Sie können einfach jeden npm-Befehl mit Sudo ausführen, der Ihr Problem beheben sollte.

Wenn Sie einen npm-package lokal installieren, sollten Sie sich in Ihrem lokalen Projektverzeichnis befinden und können versuchen, den Sudo npm install <pkg-name>-Befehl auszuführen, um das erforderliche Paket zu installieren. Der Zweck von Sudo besteht darin, dass Sie Ihre Eigentümerberechtigungen ändern, sodass Sie Ihren aktuellen Benutzer zur Ausführung von npm-Befehlen autorisieren können.

Ich empfehle Ihnen einen Blick auf https://docs.npmjs.com/getting-started/fixing-npm-permissions

3
Suhas Gavad

Verwenden Sie diesen Befehl, um npm als Sudo-Benutzer zu installieren:

Sudo npm install -g create-react-app instead of npm install -g create-react-app
3
Nimmi Verma

Seien Sie vorsichtig bei allen Antworten, die den Besitzer aller Verzeichnisse unter / usr/local .__ ändern. Machen Sie das Linux-System grundsätzlich nicht aus !!!

Ich denke, der beste Weg ist, Ihren eigenen Ordner zu verwenden, um alle globalen Pakete zu finden: https://www.competa.com/blog/how-to-run-npm-without-Sudo/

3
angelcervera

Sie haben anscheinend versucht, ein npm-Paket global und nicht lokal zu installieren, wie in man npm install Beschrieben:

Das Argument - g oder - global veranlasst npm, das zu installieren Paket global und nicht lokal.

Im Allgemeinen ist es beim Einrichten eines npm-Projekts (unter anderem) nicht ratsam, Pakete auf den globalen Modulen von Node.j (/ usr/local/lib/node_modules) als Debug-Protokoll zu installieren empfohlen.

Verwenden Sie anstelle von -g--save, Wodurch das Paket automatisch als Abhängigkeit für Ihre package.json - Datei gespeichert wird:

So was:

$ npm install express-generator --save

$ cat package.json 
{
  "name": "first_app_generator",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
},
  "author": "ivanleoncz",
  "license": "MIT",
  "dependencies": {
    "express-generator": "^4.16.0"
  }
}

Aber wie in den anderen Antworten erwähnt, müssen Sie, wenn Sie -g Verwenden, Sudo verwenden ( wenn Ihr Benutzer über Sudo-Berechtigungen verfügt: siehe/etc/sudoers) bei der Ausführung von npm install express-generator -g, aber in der Tat ist es keine gute Idee, was möglicherweise zu Berechtigungsproblemen führt.

[~ # ~] Hinweis [~ # ~]

Es gibt Anweisungen zum Installieren von express-generator Mit der Option -g, Damit das Skript express-cli.js Im Systempfad verfügbar ist. Sie können jedoch auch das lokal installierte Skript verwenden am node_modules wenn dein npm Projekt:

$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp

Wenn eine Nachricht wie /usr/bin/env: 'node': Keine solche Datei oder kein solches Verzeichnis erscheint, installieren Sie nodejs-legacy (Debian/Ubuntu)

IMHO, mit -g (Auch mit Sudo) ist wie hic sunt dracones , wenn Sie sich über die Konsequenzen nicht sicher sind .

Für weitere Informationen:

3
ivanleoncz

Für Linux/Ubuntu, wenn der Befehl

npm install -g <package_name>

npm WARN deprecated [email protected]: Please note that v5.0.1+ of superagent removes User-Agent header by default, therefore you may need to add it yourself (e.g. GitHub blocks requests without a User-Agent header).  This notice will go away with v5.0.2+ once it is released.

npm ERR! path ../lib/node_modules/<package_name>/bin/..

npm ERR! code EACCES

npm ERR! errno -13

npm ERR! syscall symlink

npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules
/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!  { [Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>']

npm ERR!   cause:
npm ERR!    { Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!      errno: -13,

npm ERR!      code: 'EACCES',

npm ERR!      syscall: 'symlink',

npm ERR!      path: '../lib/node_modules/<package_name>/bin/..',
npm ERR!      dest: '/usr/local/bin/ionic' },

npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, symlink \'../lib/node_modules/ionic/bin/ionic\' -> \'/usr/local/bin/ionic\'',

npm ERR!   errno: -13,

npm ERR!   code: 'EACCES',

npm ERR!   syscall: 'symlink',

npm ERR!   path: '../lib/node_modules/<package-name>/bin/<package-name>',

npm ERR!   dest: '/usr/local/bin/<package-name>' }

npm ERR! 

npm ERR! The operation was rejected by your operating system.

npm ERR! It is likely you do not have the permissions to access this file as the current user

npm ERR! 

npm ERR! If you believe this might be a permissions issue, please double-check the

npm ERR! permissions of the file and its containing directories, or try running

npm ERR! the command again as root/Administrator (though this is not recommended).


npm ERR! A complete log of this run can be found in:

npm ERR!     /home/User/.npm/_logs/2019-07-29T01_20_10_566Z-debug.log

Fix: Installation mit Root-Rechten

Sudo npm install <package_name> -g

2

Ich habe Sudo verwendet, aber es hat das Problem nicht gelöst. Ich habe das Problem durch Ändern der Ordnerberechtigung node_modules behoben.

Sudo chmod -R 777 node_modules

Wenn Sie möchten, können Sie 777 durch einen anderen Code ersetzen, wenn Sie die Berechtigung nicht für alle Benutzer/Gruppen festlegen.

2
Ahadul

Sie können einfach den Eigentümer ändern oder einfach Sudo verwenden, bevor Sie einen solchen Befehl ausführen

Sudo chown -R [owner]:[owner] /usr/local/lib/node_modules ----- Besitzer wechseln

oder

Sudo sudo npm install -g json-server

das ist es.

1
Shahid jafrey

Ich konnte dieses Problem beheben, indem ich nvm installierte und dann node auf die neueste Version setzte.

  1. Installieren Sie nvm mit curl (für die neueste Version gehen Sie zu nvm.sh )
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  1. Liste der verfügbaren Knotenversionen
nvm ls

v10.12.0
Standard -> v10.12 (-> v10.12.0)
node -> stable (-> v10.12.0) (Standard)
stable -> 10.12 (-> v10.12.0)

  1. Wählen Sie die zu verwendende Version des Knotens
nvm use v10.12

nvm ist nicht kompatibel mit der Option npm config "prefix": aktuell auf "" gesetzt

  1. Führen Sie dies aus, um die Option zu deaktivieren:
nvm use --delete-prefix v10.12.0

Nachdem Sie die obigen Befehle befolgt haben, können Sie reag/angular in Ubuntu installieren.

0
VishnuB

Sie benötigen die Erlaubnis der Superuser-Ebenen, um React zu installieren. Unter Linux/Unix heißt das Superuser-Konto im Allgemeinen "root".

Führen Sie einfach den folgenden Befehl auf Ihrem Terminal aus, um Superuser-Berechtigungen zu erhalten:

Sudo i

und dann einfach den Befehl ausführen, um React zu installieren:

npm install -g create-react-app
0

Ich finde ein ähnliches Problem mit dem Webpack-Modul. Meine Lösung - entferne den node_modules Ordner rm -rf node_modules und starte npm i ohne Sudo - die Installation sollte funktionieren.

0
Kamil Naja