Yarn: Windows échoue avec EPERM: opération non autorisée, tous les fichiers sont en lecture seule

Créé le 13 oct. 2016  ·  44Commentaires  ·  Source: yarnpkg/yarn

Voulez-vous demander une _fonctionnalité_ ou signaler un _bug_?
Punaise

Quel est le comportement actuel?
Lorsque vous effectuez une opération avec du fil (ajoutez par exemple), des erreurs avec:

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

Si le comportement actuel est un bogue, veuillez fournir les étapes à reproduire.

  1. Utilisez Windows :(
  2. Utilisez du fil
  3. Échec

Pour résoudre le problème, cliquez avec le bouton droit sur le dossier node_modules et décochez "Lecture seule". Attendez. Relancez la commande de fil. Maintenant ça marche, comme par magie! Une fois le fil terminé, tous les fichiers sont à nouveau en lecture seule.

Quel est le comportement attendu?
Ne devrait pas avoir à marquer les fichiers comme lisibles.

Veuillez mentionner votre node.js, votre fil et la version de votre système d'exploitation.
nœud v6.3.1
fil v0.15.1
Windows 10 (édition anniversaire)

cat-bug os-windows triaged

Commentaire le plus utile

J'ai rencontré cette erreur car j'ai essayé d'exécuter une commande yarn alors que le serveur de nœuds était en cours d'exécution. Oups! HTH quelqu'un d'autre.

Tous les 44 commentaires

Pour résoudre le problème, cliquez avec le bouton droit sur le dossier node_modules et décochez "Lecture seule".

Yarn marque-t-il node_modules en lecture seule, ou est-ce que quelque chose d'autre fait cela? Je ne peux pas faire de repro sur Windows avec une toute nouvelle application (c.-à-d. yarn init && yarn add react )

Salut @ Daniel15

Pourriez-vous essayer ceci dans un répertoire propre?

yarn init
yarn add firebase
yarn add react

La dernière commande me donne:

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.

Je ne sais pas si c'est quelque chose que font les packages Firebase?

Pour clarification; J'ai essayé les mêmes étapes mais avec react et eslint et je n'ai pas vu la même erreur.

Merci pour l'information! Je peux reproduire le problème sur Windows mais pas sur Debian Linux.

Je dirais que c'est plus une erreur critique car cela empêche même l'utilisation basique de Yarn dans tout projet utilisant le module firebase .

La suppression de l'indicateur _read-only_ fonctionne de manière récursive, mais seulement temporairement. Même en exécutant seulement yarn linking dependencies phase yarn rediffusée et renvoie ces indicateurs en lecture seule.

Créer un nouveau projet avec yarn init et installer un seul indicateur de dépendances en lecture seule sur tous les répertoires (pas les fichiers) à partir de node_modules . Cependant, dans le cas du module firebase , les fichiers sont également en lecture seule pour une raison quelconque. Faire la même chose avec NPM ne définit

Oui, c'est assez ennuyeux.

@ Daniel15
Un autre problème que j'ai, j'ai installé le package et à l'étape de post-installation, il définit chmod some-file 400 , et bien que certaines opérations échouent avec une erreur similaire sur ce fichier, (si j'ai défini les autorisations sur 644, il fonctionne correctement). J'espère donc que vous résolvez le problème d'origine et que mon problème disparaîtra également.

@Tapppi (citation du numéro )

PS En ce qui concerne # 992, vous pourriez probablement écrire un script "postinstall" oneliner pour corriger les permissions après chaque installation.

Cela effacerait un peu l'utilité de Yarn, vous ne pensez pas? La suppression de ces indicateurs en lecture seule permet à Yarn de recommencer le processus de liaison. Seule la sauvegarde des performances permettrait d'utiliser le cache au lieu de télécharger à chaque fois sur le réseau.

@FredyC Je ne vois pas comment un script de post-installation efface l'utilité des fils? Il est toujours très probablement plusieurs fois plus rapide que npm lors de l'installation et possède un fichier de verrouillage. Si cela rend le fil non préféré pour vous, je pense que le fil n'est pas préférable de toute façon dans sa forme actuelle?

Rencontrer cela aussi. Rien de spécial à propos de mon projet, je suis juste en train de le contourner en soufflant mon dossier node_modules pour de nouveaux packages pour le moment.

Espérons que cela se résout bientôt, Dieu merci, le fil est si rapide! ;)

Eh bien, c'est intéressant. Si vous téléchargez l'archive tar du module Firebase, ces attributs en lecture seule sont déjà là! ... https://registry.npmjs.org/firebase/-/firebase-3.4.1.tgz

Cela signifie que ce n'est pas exactement un défaut de fil. Je suppose que ce que NPM fait différemment est de supprimer ce drapeau lors de l'installation. Essentiellement, cela pourrait être une solution que Yarn devrait faire aussi bien parce que vous ne savez jamais quel autre module peut être affecté comme ça.

J'ai en fait essayé de publier mon propre package sur NPM avec un indicateur en lecture seule défini sur le seul fichier. Ce n'est malheureusement pas la source du problème. Les fichiers sont publiés sans le drapeau.

J'ai donc déposé une demande d'assistance auprès de Firebase pour voir s'il y a quelque chose qu'ils peuvent changer dans leur processus de publication.

Pouvons-nous espérer que dans la prochaine version de Yarn, ce cas sera traité, en utilisant l'approche NPM ou autrement.

Juste un FYI, cela fonctionnera également si vous supprimez d'abord Firebase, puis ajoutez vos packages requis et enfin ajoutez Firebase. Yarn met-il donc à jour les autorisations lorsque Firebase est supprimé?

@ vijay-stayntouch Non, Yarn ne fait rien à ce sujet. Le problème principal est que si vous avez Firebase avec des indicateurs en lecture seule et que le processus de "liaison des dépendances" doit être exécuté pour une raison quelconque, il est incapable de toucher ces fichiers et échoue. Bien que je ne sois pas certain de savoir comment il est possible que Yarn puisse supprimer ces fichiers avec des indicateurs en lecture seule.

Salut, ingénieur Firebase ici. Nous allons résoudre ce problème de notre côté en nous assurant que notre prochaine version ne contient plus de fichiers en lecture seule. Cela étant dit, cela semble être un comportement inattendu et devrait probablement être corrigé à tous les niveaux pour Yarn, comme c'est le cas dans npm. Merci!

Est-ce le même problème que # 872?

Bonne nouvelle pour tous ceux qui ont des problèmes avec cela. Il existe un nouveau module Firebase 3.6.2 sans indicateur de lecture seule et il fonctionne parfaitement maintenant.

Je recommande de fermer celui-ci en faveur de # 961 qui est plus générique et lié uniquement à Yarn.

@FredyC Bonne nouvelle!

La question se pose toujours de savoir que si d'autres paquets rendent leur code en lecture seule. Le même problème se reproduira.

@ vijay-stayntouch Oui, c'est ce que # 961 devrait vraiment essayer de résoudre.

J'ai le même problème avec yarn add react-hot-loader --dev il dit:

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.

Je fais un yarn cache clean et exécute à nouveau le yarn add ... mais le problème est toujours là.
Je suis sur l'ubuntu 16.04
nœud v6.9.4 & npm v3.10.10

J'obtenais le même problème - la seule solution qui fonctionnait pour moi était d'utiliser rimraf node_modules pour supprimer le dossier node_modules, puis de réinstaller tous les packages en utilisant yarn

Je trouve ce problème de temps en temps en installant des packages avec npm ou yarn, ma solution de contournement va au gestionnaire de fichiers, cliquez avec le bouton droit sur le dossier principal / node_modules, sélectionnez les propriétés et cochez-décochez "lecture seule". Vous pouvez également le faire en utilisant attrib en ligne de commande. Ensuite, vous réessayez l'installation et cela fonctionne.

J'ai rencontré cette erreur car j'ai essayé d'exécuter une commande yarn alors que le serveur de nœuds était en cours d'exécution. Oups! HTH quelqu'un d'autre.

J'ai essayé plusieurs solutions présentées (y compris décocher en lecture seule) - ne fonctionne pas
les versions
nœud v6.11.1
fil v0.27.5
Windows 10

erreur: "EPERM: opération non autorisée, dissocier 'D: \ urp \ node_modules \ node-sass \ vendor \ win32-x64-48 \ binding.node'"

_ran: _
$ vérification du fil - intégrité

_reçu:_
erreur Le fichier de verrouillage ne contient pas de modèle: "material-ui@^0.19.0"
erreur Lockfile ne contient pas de modèle: " [email protected] "
erreur Lockfile ne contient pas de modèle: "npm-run-all@^4.1.1"
erreur Le fichier de verrouillage ne contient pas de modèle: "react@^15.6.1"
erreur Lockfile ne contient pas de modèle: "react-dom@^15.6.1"
erreur Lockfile ne contient pas de modèle: "react-router-dom@^4.2.2"
erreur Le fichier de verrouillage ne contient pas de modèle: "react-tap-event-plugin@^2.0.1"
erreur Impossible de trouver un fichier d'intégrité

Toute aide sera appréciée!

oui, ça craint parfois en faisant dans Win (comme développer Ionic2 / 3 dans Win, lancer de façon permanente des erreurs EPERM pour par exemple installer / mod npm packs et autres); il peut être détecté par un logiciel antivirus; décocher read only attr de tout node_modules ;
Essayez également d'ajouter le fichier .npmrc à votreforlder (c: / utilisateurs /) avec contenu unsafe-perm=true ; ajoutez le même fichier à la racine de votre projet; dernier recours: exécutez PowerShell en tant qu'administrateur et augmentez avec Start-Process powershell -Verb runAs - va ouvrir une nouvelle fenêtre PowerShell élevée, qui devrait pouvoir fonctionner

Sous Windows, assurez-vous d'exécuter l'invite de commande "En tant qu'administrateur". :: facepalm ::

J'ai essayé tout ce qui est énuméré ici - le seul moyen de le résoudre était:

npm install -g rimraf
rimraf node_modules

comme suggéré par @domjtalbot.

cela se produit également lorsque vous avez deux instances de fil en cours d'exécution en essayant d'installer des packages dans différents projets

m'arrive aussi, npm 5.8.0, et le seul qui fonctionne est pointé par @domjtalbot et @ James-E-Adams

Je rencontre le même problème lorsque j'ai un serveur fonctionnant avec nodemon , puis en ajoutant un package yarn add bcrypt . Avec le commentaire de @rmorrise , je

@rmorrise +1, serait logique si yarn pouvait détecter une telle circonstance et lancer un avertissement significatif à la place.

Pour info: j'ai eu le même problème après avoir annulé l'installation d'un package (ctrl + c), et essayé d'installer un autre package par la suite. J'avais également un serveur en cours d'exécution, mais cela n'a pas causé d'erreurs lorsque j'ai ajouté d'autres packages auparavant.

download (1)

J'ai rencontré cette erreur plusieurs fois maintenant et seul un redémarrage de Windows m'a aidé.

J'ai eu le même problème. La raison à l'origine de ce bogue était l'exécution du serveur de développement create-react-app dans ubuntu pour Windows bash. L'arrêt du serveur a résolu le problème.

download (1)

J'ai rencontré cette erreur plusieurs fois maintenant et seul un redémarrage de Windows m'a aidé.

Habituellement, je préfère voter contre de telles réponses, mais c'était littéralement la seule chose qui a fonctionné pour moi 🤦‍♂

download (1)

J'ai rencontré cette erreur plusieurs fois maintenant et seul un redémarrage de Windows m'a aidé.

Cela a en effet fait l'affaire pour moi ...

Au moins pour moi, cela semble être causé par l'ouverture de vscode.

Assurez-vous que votre application (angulaire, de réaction, etc.) est désactivée avant npm install

@ScottGuymer

Je ne peux pas croire que ça marche

merci pour votre solution

@Gameghostify moi non plus 😄

Vous êtes les bienvenus.

Vérifiez si vous avez un processus de nœud en cours d'exécution, arrêtez-le s'il est désactivé et réessayez

J'exécutais du fil à partir d'un terminal vscode alors j'ai redémarré vscode et cela a fait l'affaire

oui, ça craint parfois en faisant dans Win (comme développer Ionic2 / 3 dans Win, lancer de façon permanente des erreurs EPERM pour par exemple installer / mod npm packs et autres); il peut être détecté par un logiciel antivirus; décocher read only attr de tout node_modules ;
Essayez également d'ajouter un fichier .npmrc à votre forlder (c: / users /) avec le contenu unsafe-perm=true ; ajoutez le même fichier à la racine de votre projet; dernier recours: exécutez PowerShell en tant qu'administrateur et augmentez avec Start-Process powershell -Verb runAs - va ouvrir une nouvelle fenêtre PowerShell élevée, qui devrait pouvoir fonctionner

CELA VRAIMENT FONCTIONNÉ. JE VOUS REMERCIE.

@ Gayathri-K-2000 Pouvez-vous fournir plus de détails s'il vous plaît? Je suis confronté au même problème mais n'a pas fonctionné. Veuillez donner un exemple de ce que vous avez fait si possible. Je vous remercie!

@ Gayathri-K-2000 Pouvez-vous fournir plus de détails s'il vous plaît? Je suis confronté au même problème mais n'a pas fonctionné. Veuillez donner un exemple de ce que vous avez fait si possible. Je vous remercie!

J'ai décoché «lecture seule» dans les propriétés des modules de nœud et j'ai exécuté cmd en tant qu'administrateur. Ça marche.

Vérifiez si vous avez un processus de nœud en cours d'exécution, arrêtez-le s'il est désactivé et réessayez

C'était en effet mon problème ici aussi. Il en va de même pour les applications de réaction, par exemple lorsque vous êtes invité à installer node-sass - vous ne pouvez pas le faire pendant que votre application est en cours d'exécution. Merci a tous!

Cette page vous a été utile?
0 / 5 - 0 notes