Ich versuche, Typoskript mit Befehl zu installieren npm install -g typescript
und gebe diesen Fehler zurück:
npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path npm-debug.log.1024969454
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open
npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'open',
npm ERR! path: 'npm-debug.log.1024969454' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /npm-debug.log
jramirez@jramirez:/$ ^C
jramirez@jramirez:/$ npm install typescript
npm WARN checkPermissions Missing write access to /
/
└── [email protected]
npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data
npm WARN !invalid#1 No license field.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path /
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, access '/'
npm ERR! at Error (native) errno: -13, code: 'EACCES', syscall: 'access', path: '/' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path npm-debug.log.2387664261
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open
npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'open',
npm ERR! path: 'npm-debug.log.2387664261' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /npm-debug.log
Zusätzlich npm install typescript
starte ich auch (ohne -g), aber funktioniert nicht oder gibt es eine andere Möglichkeit, Typoskript zu installieren? Mein Betriebssystem ist Linux Ubuntu 16.04. Ich benutze node
dieses Problem selten und weiß nicht, wie ich es beheben soll.
Meine Frage ist: Genau, welche Verzeichnisse benötigen diese Berechtigungen?
sudo npm install -g typescript
Antworten:
Es wird nicht empfohlen, sudo mit npm install zu verwenden. Befolgen Sie stattdessen die Schritte aus den offiziellen Dokumenten von npmjs :)
Erstellen Sie ein Verzeichnis für globale Installationen:
Konfigurieren Sie npm für die Verwendung des neuen Verzeichnispfads:
npm config set prefix '~/.npm-global'
Öffnen oder erstellen Sie eine ~ / .profile-Datei und fügen Sie diese Zeile hinzu:
export PATH=~/.npm-global/bin:$PATH
Aktualisieren Sie in der Befehlszeile Ihre Systemvariablen:
source ~/.profile
Test: Laden Sie ein Paket global herunter, ohne sudo zu verwenden.
quelle
export PATH="~/.npm-global/bin:$PATH"
nicht aus Gründen der Persistenz eingefügt werden.bash_aliases
(enthalten von.bashrc
oder direkt dort ...)?sudo
oder Verzeichnisberechtigungen.export PATH=~/.npm-global/bin:$PATH
Sie sie hinzu~/.zshrc
und geben Sie die Datei einWenn Sie globale Pakete in Ubuntu installieren, benötigen Sie spezielle Schreibberechtigungen, wenn Sie in den
usr/bin
Ordner schreiben . Es ist aus Sicherheitsgründen.Verwenden Sie also jedes Mal, wenn Sie ein globales Paket installieren, Folgendes:
sudo npm install -g [package-name]
für Ihren speziellen Fall:
sudo npm install -g typescript
Wenn Sie es ohne
-g
alles versuchen, was Sie tun, installieren Sie das Paket lokal in dem Ordner, in dem Sie sich befinden:Also:
npm install typescript
Erstellt einennode_modules
Ordner in dem Ordner, in dem Sie sich befinden.quelle
chmod g+rw
On/usr/lib/node_modules/
zu machen?Ich habe das gleiche Problem mit der Installation des Webpack-Servers auf globaler Ebene. Schritte verwenden Mein Problem behoben, meine Arbeit für Sie.
Die oben genannten Schritte Dort: Sichern Sie Ihren Computer, bevor Sie beginnen.
Erstellen Sie ein Verzeichnis für globale Installationen:
1.
mkdir ~/.npm-global
Konfigurieren Sie npm für die Verwendung des neuen Verzeichnispfads:
2.
npm config set prefix '~/.npm-global'
Öffnen oder erstellen Sie eine ~ / .profile-Datei und fügen Sie diese Zeile hinzu:
3.
export PATH=~/.npm-global/bin:$PATH
Aktualisieren Sie in der Befehlszeile Ihre Systemvariablen:
4.
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
quelle
Ich bin mir nicht sicher, ob dies die richtige Lösung für dieses Problem sein könnte, aber ich hoffe, dass dies anderen in einer ähnlichen Situation helfen kann, die bereits Folgendes versucht hat:
node_modules
Ordner und fand nichts Falschessudo npm install <package>
(Lösung, die ich sowieso nicht empfehle) mit oder ohne-g
und hatte kein erwartetes ErgebnisDie Lösung für dieses Problem wies darauf hin, als ich bemerkte, dass beim Versuch, das
axios
Paket mit zu installierennpm
, das Verzeichnis mit dem gesamten Projekt in Visual Studio Code geöffnet wurde. Also habe ich es geschlossen und die Installation erneut versucht. Überraschung, die Installation hat wie ein Zauber gewirkt.Für den Versuch, dasselbe Problem zu replizieren, habe ich Ubuntu 18.04 LTS unter WSL verwendet (möglicherweise hat dies etwas mit Windows-Berechtigungen zu tun).
Dies könnte auch die Lösung für diese Frage sein: Fehler: EACCES: Berechtigung verweigert, Zugriff '/ usr / local / lib / node_modules' reagiert
quelle
1) Wechseln Sie in das Verzeichnis " / usr / local / lib / node_modules ".
2) Klicken Sie auf den Ordner und klicken Sie mit der rechten Maustaste auf Informationen abrufen
3) Klicken Sie auf das Schloss unten rechts
4) Geben Sie zum Entsperren Ihr Fensterkennwort ein
5) Überprüfen Sie sowohl den Wert von Wheel als auch von Everyone to Read & Write
6) Gehen Sie zurück zu Ihrem Terminal und versuchen Sie erneut, das Typescript zu installieren
quelle
wheel
ist eine BSD / RedHat-Sache, nicht in Debian-basierten Systemen wie Ubuntu unix.stackexchange.com/questions/4460/…Bitte folgen Sie der npm-Website - https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
"Wenn beim Versuch, ein Paket global zu installieren, ein EACCES-Fehler auftritt, können Sie entweder: npm mit einem Knotenversionsmanager neu installieren (empfohlen) oder das Standardverzeichnis von npm manuell ändern."
Ich habe den empfohlenen Weg befolgt - nvm installiert. Es hat mein Problem gelöst
quelle
das hat bei mir funktioniert.
dann
quelle