Yarn: Windows schlägt mit EPERM fehl: Vorgang nicht zulässig, alle Dateien sind schreibgeschützt

Erstellt am 13. Okt. 2016  ·  44Kommentare  ·  Quelle: yarnpkg/yarn

Möchten Sie ein _Feature_ anfordern oder einen _bug_ melden?
Fehler

Wie ist das aktuelle Verhalten?
Wenn Sie eine Operation mit Garn ausführen (z. B. hinzufügen), treten folgende Fehler auf:

EPERM: operation not permitted, open 'C:\foo\node_modules\firebase\app-node.js'
at Error (native)

Wenn das aktuelle Verhalten ein Fehler ist, geben Sie bitte die Schritte zur Reproduktion an.

  1. Verwenden Sie Windows :(
  2. Garn verwenden
  3. Fehler

Um das Problem zu beheben, klicken Sie mit der rechten Maustaste auf den Ordner node_modules und deaktivieren Sie "Schreibgeschützt". Warten. Führen Sie den Garnbefehl erneut aus. Jetzt funktioniert es wie Magie! Nachdem das Garn fertig ist, sind alle Dateien wieder schreibgeschützt.

Was ist das erwartete Verhalten?
Sollte die Dateien nicht als lesbar markieren müssen.

Bitte geben Sie Ihre node.js, Garn und Betriebssystemversion an.
Knoten v6.3.1
Garn v0.15.1
Windows 10 (Jubiläumsausgabe)

cat-bug os-windows triaged

Hilfreichster Kommentar

Dieser Fehler ist aufgetreten, weil ich versucht habe, einen Befehl yarn auszuführen, während der Knotenserver ausgeführt wurde. Hoppla! HTH jemand anderes.

Alle 44 Kommentare

Um das Problem zu beheben, klicken Sie mit der rechten Maustaste auf den Ordner node_modules und deaktivieren Sie "Schreibgeschützt".

Markiert Yarn node_modules als schreibgeschützt oder macht das etwas anderes? Ich kann unter Windows nicht mit einer brandneuen App (z. B. yarn init && yarn add react )

Hi @ Daniel15

Könnten Sie dies bitte in einem sauberen Verzeichnis versuchen?

yarn init
yarn add firebase
yarn add react

Der letzte Befehl gibt mir:

C:\Dev\yarntest>yarn add react
yarn add v0.15.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
error EPERM: operation not permitted, open 'C:\Dev\yarntest\node_modules\firebase\app-node.js'
    at Error (native)
info Visit http://yarnpkg.com/en/docs/cli/add for documentation about this command.

Ich bin nicht sicher, ob es etwas ist, was die Firebase-Pakete tun?

Zur Klarstellung; Ich habe die gleichen Schritte versucht, aber mit reagieren und eslint und habe nicht den gleichen Fehler gesehen.

Danke für die Auskunft! Ich kann das Problem unter Windows replizieren, aber nicht unter Debian Linux.

Ich würde sagen, dass dies eher ein kritischer Fehler ist, da es sogar die grundlegende Verwendung von Garn in jedem Projekt verhindert, das das Modul firebase .

Das rekursive Entfernen des _read-only_-Flags funktioniert jedoch nur vorübergehend. Selbst wenn nur yarn gesamte linking dependencies -Phase erneut ausgeführt und diese Nur-Lese-Flags zurückgegeben.

Erstellen eines neuen Projekts mit yarn init und Installieren einzelner Abhängigkeiten setzt das Flag _read-only_ für alle Verzeichnisse (keine Dateien) ab node_modules . Im Fall des Moduls firebase sind die Dateien aus irgendeinem Grund auch _read-only_. Gleiche mit NPM tut nicht _read-only_ auf Dateien festgelegt.

Ja das ist ziemlich nervig.

@ Daniel15
Ein weiteres Problem, das ich habe Ich installiere das Paket und beim Schritt nach der Installation setzt es chmod some-file 400 , und während einige Operationen mit einem ähnlichen Fehler in dieser Datei fehlschlagen (wenn ich die Berechtigungen auf 644 setze, läuft es in Ordnung). Ich hoffe, Sie beheben das ursprüngliche Problem und mein Problem wird auch behoben.

@Tapppi (Zitat aus Ausgabe )

PS In Bezug auf # 992 könnten Sie wahrscheinlich ein Oneliner-Skript "postinstall" schreiben, um die Berechtigungen nach jeder Installation zu korrigieren.

Das würde die Nützlichkeit von Garn irgendwie auslöschen, meinst du nicht auch? Durch das Entfernen dieser schreibgeschützten Flags führt Yarn den gesamten Verknüpfungsprozess erneut durch. Nur bei einer Leistungsersparnis wird der Cache verwendet, anstatt jedes Mal über das Netzwerk herunterzuladen.

@FredyC Ich kann nicht sehen, wie ein Skript nach der Installation die Nützlichkeit von Garnen löscht. Es ist bei der Installation höchstwahrscheinlich immer noch um ein Vielfaches schneller als npm und verfügt über eine Sperrdatei. Wenn das Garn für Sie unerträglich macht, würde ich denken, dass Garn in seiner jetzigen Form sowieso nicht vorzuziehen ist?

Auch dem begegnen. Nichts Besonderes an meinem Projekt, ich komme nur darum herum, indem ich meinen Ordner node_modules für neue Pakete ausblase.

Hoffentlich löst sich das bald, Gott sei Dank ist das Garn so verdammt schnell! ;)

Nun, das ist interessant. Wenn Sie den tatsächlichen Tarball des Firebase-Moduls herunterladen, sind diese schreibgeschützten Attribute bereits vorhanden! ... https://registry.npmjs.org/firebase/-/firebase-3.4.1.tgz

Das heißt, es ist nicht gerade Garnfehler. Ich gehe davon aus, dass NPM dieses Flag bei der Installation tatsächlich entfernt. Im Wesentlichen könnte dies eine Lösung sein, die Yarn ebenfalls tun sollte, da Sie nie wissen, welches andere Modul so betroffen sein kann.

Ich habe tatsächlich versucht, mein eigenes Paket in NPM zu veröffentlichen, wobei das schreibgeschützte Flag für die eine Datei gesetzt ist. Leider ist das nicht die Ursache des Problems. Dateien werden ohne Flag veröffentlicht.

Daher habe ich bei Firebase eine Supportanfrage gestellt, um festzustellen, ob sich in ihrem Veröffentlichungsprozess etwas ändern kann.

Können wir hoffen, dass dieser Fall in Zukunft mit dem NPM-Ansatz oder auf andere Weise behandelt wird?

Nur zu Ihrer Information, es funktioniert auch, wenn Sie zuerst die Firebase entfernen, dann die erforderlichen Pakete hinzufügen und schließlich die Firebase wieder hinzufügen. Aktualisiert Yarn die Berechtigungen, wenn die Feuerbasis entfernt wird?

@ vijay-stayntouch Nein, Garn tut nichts dagegen. Das Hauptproblem besteht darin, dass wenn Sie dort eine Firebase mit schreibgeschützten Flags haben und der Prozess "Abhängigkeiten verknüpfen" aus irgendeinem Grund ausgeführt werden muss, diese Dateien nicht berührt werden können und fehlschlagen. Obwohl ich mir nicht sicher bin, wie es möglich ist, dass Yarn diese Dateien tatsächlich mit schreibgeschützten Flags löschen kann.

Hey, Firebase-Ingenieur hier. Wir werden dies beheben, indem wir sicherstellen, dass unsere nächste Version keine schreibgeschützten Dateien mehr enthält. Davon abgesehen scheint dies ein unerwartetes Verhalten zu sein und sollte wahrscheinlich auf der ganzen Linie für Yarn behoben werden, da es in npm ist. Vielen Dank!

Ist das das gleiche Problem wie # 872?

Gute Nachrichten an alle, die Probleme damit haben. Es gibt ein neues Firebase-Modul 3.6.2 ohne schreibgeschützte Flags, das jetzt einwandfrei funktioniert.

Ich empfehle, diese zugunsten von # 961 zu schließen, die allgemeiner ist und nur mit Garn zusammenhängt.

@FredyC Tolle Neuigkeiten!

Die Frage hängt immer noch in der Luft, ob andere Pakete ihren Code schreibgeschützt machen. Das gleiche Problem wird erneut auftreten.

@ vijay-stayntouch Ja, das sollte # 961 wirklich lösen.

Ich habe das gleiche Problem mit yarn add react-hot-loader --dev , das besagt:

yarn add v0.20.3
[1/4] Resolving packages...
[2/4] Fetching packages...
warning [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
error An unexpected error occurred: "EPERM: operation not permitted, utime '/home/syd/Work/taxibs/zaher/node_modules/source-map/README.md'".
info If you think this is a bug, please open a bug report with the information provided in "/home/syd/Work/taxibs/zaher/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Ich mache ein yarn cache clean und führe das yarn add ... erneut aus, aber das Problem ist immer noch da.
Ich bin auf dem Ubuntu 16.04
Knoten v6.9.4 & npm v3.10.10

Ich hatte das gleiche Problem - die einzige Lösung, die für mich funktioniert hat, war, mit rimraf node_modules den Ordner node_modules zu löschen und dann alle Pakete mit yarn neu zu installieren

Ich finde dieses Problem von Zeit zu Zeit bei der Installation von Paketen mit npm oder Garn. Meine Problemumgehung geht zum Dateimanager, klicken Sie mit der rechten Maustaste auf den Hauptordner / node_modules, wählen Sie Eigenschaften aus und deaktivieren Sie "Schreibgeschützt". Sie können dies auch mit attrib in der Befehlszeile tun. Dann wiederholen Sie die Installation und es funktioniert.

Dieser Fehler ist aufgetreten, weil ich versucht habe, einen Befehl yarn auszuführen, während der Knotenserver ausgeführt wurde. Hoppla! HTH jemand anderes.

Versucht mehrere Lösungen vorgestellt (inkl. Nur-Lese-Deaktivierung) - funktioniert nicht
Versionen
Knoten v6.11.1
Garn v0.27.5
Windows 10

Fehler: "EPERM: Vorgang nicht zulässig, Verknüpfung 'D: \ urp \ Knotenmodule \ Knoten-Sass \ Anbieter \ Win32-x64-48 \ Binding.Node' aufheben"

_ran: _
$ Garnprüfung - Integrität

_empfangen:_
Fehler Lockfile enthält kein Muster: "material-ui@^0.19.0"
Fehler Lockfile enthält kein Muster: " [email protected] "
Fehler Lockfile enthält kein Muster: "npm-run-all@^4.1.1"
Fehler Lockfile enthält kein Muster: "react@^15.6.1"
Fehler Lockfile enthält kein Muster: "react-dom@^15.6.1"
Fehler Lockfile enthält kein Muster: "react-router-dom@^4.2.2"
Fehler Lockfile enthält kein Muster: "react-tap-event-plugin@^2.0.1"
Fehler Es konnte keine Integritätsdatei gefunden werden

Jede Hilfe wird großartig sein!

Ja, es ist manchmal scheiße, wenn man es in Win macht (wie das Entwickeln von Ionic2 / 3 in Win, das permanent EPERM Fehler auslöst, dh wenn man / mod npm-Packs und andere Dinge installiert); Es kann durch Antivirensoftware verursacht werden. Deaktivieren Sie read only attr von allen node_modules ;
Versuchen Sie auch, Ihrer .npmrc-Datei hinzuzufügenForlder (c: / users /) mit Inhalt unsafe-perm=true ; Fügen Sie dieselbe Datei zum Stammverzeichnis Ihres Projekts hinzu. Letzter Ausweg: Führen Sie Powershell als Administrator aus und erhöhen Sie mit Start-Process powershell -Verb runAs . Dadurch wird ein neues Fenster für erhöhte Powershell geöffnet, das funktionieren sollte

Stellen Sie unter Windows sicher, dass Sie die Eingabeaufforderung "Als Administrator" ausführen. :: facepalm ::

Ich habe alles versucht, was hier aufgelistet ist - ich konnte es nur beheben:

npm install -g rimraf
rimraf node_modules

wie von @domjtalbot vorgeschlagen.

Dies geschieht auch, wenn zwei Garninstanzen ausgeführt werden, die versuchen, Pakete in verschiedenen Projekten zu installieren

passiert mir auch, npm 5.8.0, und die einzige Arbeit wird von @domjtalbot und @ James-E-Adams gezeigt

Ich habe das gleiche Problem, wenn auf einem Server nodemon und dann ein Paket yarn add bcrypt hinzugefügt wird. Mit dem Kommentar von @rmorrise behebe ich mein Problem. Ich weiß

@rmorrise +1, wäre logisch, wenn yarn einen solchen Umstand erkennen und stattdessen eine aussagekräftige Warnung auslösen könnte.

Zur Info: Ich hatte das gleiche Problem, nachdem ich die Installation eines Pakets abgebrochen hatte (Strg + C) und danach versucht hatte, ein anderes Paket zu installieren. Ich hatte auch einen Server ausgeführt, aber es verursachte keine Fehler, als ich zuvor andere Pakete hinzugefügt habe.

download (1)

Ich bin jetzt einige Male auf diesen Fehler gestoßen und nur ein Neustart von Windows hat geholfen.

Ich hatte das gleiche Problem. Der Grund für diesen Fehler war das Ausführen des Entwicklungsservers "create-react-app" in Ubuntu für Windows Bash. Das Stoppen des Servers löste das Problem.

download (1)

Ich bin jetzt einige Male auf diesen Fehler gestoßen und nur ein Neustart von Windows hat geholfen.

Normalerweise bevorzuge ich es, solche Antworten herunterzustimmen, aber dies war buchstäblich das einzige, was für mich funktioniert hat 🤦‍♂

download (1)

Ich bin jetzt einige Male auf diesen Fehler gestoßen und nur ein Neustart von Windows hat geholfen.

Das hat in der Tat den Trick für mich getan ...

Zumindest für mich scheint dies darauf zurückzuführen zu sein, dass vscode geöffnet ist.

Stellen Sie sicher, dass Ihre App (eckig, reagieren usw.) deaktiviert ist , bevor npm install

@ ScottGuymer

Ich kann nicht glauben, dass das funktioniert

Vielen Dank für Ihre Lösung

@Gameghostify mich entweder 😄

Bitte.

Überprüfen Sie, ob ein Knotenprozess ausgeführt wird, schalten Sie ihn aus und versuchen Sie es erneut

Ich habe Garn von einem vscode-Terminal ausgeführt, also habe ich vscode neu gestartet, und das hat den Trick getan

Ja, es ist manchmal scheiße, wenn man es in Win macht (wie das Entwickeln von Ionic2 / 3 in Win, das permanent EPERM Fehler auslöst, dh wenn man / mod npm-Packs und andere Dinge installiert); Es kann durch Antivirensoftware verursacht werden. Deaktivieren Sie read only attr von allen node_modules ;
Versuchen Sie außerdem, Ihrem Forlder (c: / users /) eine .npmrc-Datei mit dem Inhalt unsafe-perm=true hinzuzufügen. Fügen Sie dieselbe Datei zum Stammverzeichnis Ihres Projekts hinzu. Letzter Ausweg: Führen Sie Powershell als Administrator aus und erhöhen Sie mit Start-Process powershell -Verb runAs . Dadurch wird ein neues Fenster für erhöhte Powershell geöffnet, das funktionieren sollte

Es hat wirklich funktioniert. DANKESCHÖN.

@ Gayathri-K-2000 Können Sie uns bitte weitere Einzelheiten mitteilen? Ich stehe vor dem gleichen Problem, habe aber nicht funktioniert. Bitte geben Sie ein Beispiel dafür, was Sie getan haben, wenn möglich. Vielen Dank!

@ Gayathri-K-2000 Können Sie uns bitte weitere Einzelheiten mitteilen? Ich stehe vor dem gleichen Problem, habe aber nicht funktioniert. Bitte geben Sie ein Beispiel dafür, was Sie getan haben, wenn möglich. Vielen Dank!

Ich habe das Kontrollkästchen "Schreibgeschützt" in den Eigenschaften von Knotenmodulen deaktiviert und in cmd als Administrator ausgeführt. Es klappt.

Überprüfen Sie, ob ein Knotenprozess ausgeführt wird, schalten Sie ihn aus und versuchen Sie es erneut

Das war in der Tat auch hier mein Problem. Gleiches gilt für Reaktions-Apps, z. B. wenn Sie aufgefordert werden, node-sass zu installieren - Sie können dies nicht tun, während Ihre App ausgeführt wird. Vielen Dank an alle!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen