Yarn: فشل Windows مع EPERM: العملية غير مسموح بها ، جميع الملفات للقراءة فقط

تم إنشاؤها على ١٣ أكتوبر ٢٠١٦  ·  44تعليقات  ·  مصدر: yarnpkg/yarn

هل تريد طلب _ ميزة _ أو الإبلاغ عن _ خطأ _؟
خلل برمجي

ما هو السلوك الحالي؟
عند إجراء أي عملية باستخدام خيوط الغزل (إضافة على سبيل المثال) ، فإنها أخطاء في:

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

إذا كان السلوك الحالي عبارة عن خطأ ، فالرجاء تقديم خطوات إعادة الإنتاج.

  1. استخدم Windows :(
  2. استخدم الغزل
  3. بالفشل

لإصلاح المشكلة ، انقر بزر الماوس الأيمن فوق مجلد node_modules وقم بإلغاء تحديد "للقراءة فقط". انتظر. أعد تشغيل أمر الغزل. الآن يعمل ، مثل السحر! بعد الانتهاء من الغزل ، ستعود جميع الملفات للقراءة فقط.

ما هو السلوك المتوقع؟
لا يجب وضع علامة على الملفات كمقروءة.

يرجى ذكر node.js والغزل وإصدار نظام التشغيل.
عقدة v6.3.1
غزل v0.15.1
Windows 10 (إصدار الذكرى السنوية)

cat-bug os-windows triaged

التعليق الأكثر فائدة

واجهت هذا الخطأ لأنني حاولت تنفيذ أمر yarn أثناء تشغيل خادم العقدة. عذرًا! HTH شخص آخر.

ال 44 كومينتر

لإصلاح المشكلة ، انقر بزر الماوس الأيمن فوق مجلد node_modules وقم بإلغاء تحديد "للقراءة فقط".

هل يشير الغزل إلى node_modules للقراءة فقط أم أن هناك شيئًا آخر يفعل ذلك؟ لا يمكنني إعادة النسخ على Windows باستخدام تطبيق جديد تمامًا (مثل yarn init && yarn add react )

مرحبًا @ Daniel15

هل يمكنك محاولة ذلك في دليل نظيف؟

yarn init
yarn add firebase
yarn add react

أعطاني الأمر الأخير:

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.

لست متأكدًا مما إذا كان هذا شيء تفعله حزم Firebase؟

للتوضيح؛ لقد جربت نفس الخطوات ولكن مع رد فعل و eslint ولم أر نفس الخطأ.

اشكرك على المعلومات! يمكنني تكرار المشكلة على Windows ولكن ليس على نظام Debian Linux.

أود أن أقول أن هذا يعد خطأً فادحًا لأنه يمنع حتى الاستخدام الأساسي للغزل في أي مشروع باستخدام الوحدة النمطية firebase .

تعمل إزالة علامة _ read-only_ بشكل متكرر ، ولكن بشكل مؤقت فقط. حتى تشغيل yarn يعيد تشغيل المرحلة linking dependencies بالكامل ويعيد علامات _ read-only_ هذه مرة أخرى.

إنشاء مشروع جديد باستخدام yarn init وتثبيت أي مجموعات تبعية مفردة _read-only_ على جميع الدلائل (وليس الملفات) بدءًا من node_modules . ولكن في حالة الوحدة النمطية firebase ، تكون الملفات أيضًا _ للقراءة فقط_ لسبب ما. فعل الشيء نفسه مع NPM لا يؤدي إلى تعيين _read-only_ على الملفات.

نعم هذا مزعج للغاية.

@ Daniel15
هناك مشكلة أخرى لديّ أقوم بتثبيت الحزمة وفي خطوة ما بعد التثبيت ، يتم تعيين chmod some-file 400 ، وبينما تفشل بعض العمليات مع وجود خطأ مماثل في هذا الملف ، (إذا قمت بتعيين الأذونات على 644 ، فسيتم تشغيلها بشكل جيد). لذلك آمل أن تصلح مشكلتي الأصلية وستختفي مشكلتي أيضًا.

Tapppi (اقتباس من الإصدار )

ملاحظة بخصوص رقم 992 ، ربما يمكنك كتابة نص برمجي "postinstall" واحد لإصلاح الأذونات بعد كل تثبيت.

هذا من شأنه أن يمحو فائدة الغزل ، ألا تعتقد ذلك؟ تؤدي إزالة علامات القراءة فقط إلى جعل Yarn يقوم بعملية الربط بأكملها مرة أخرى. يقتصر حفظ الأداء فقط على استخدام ذاكرة التخزين المؤقت بدلاً من التنزيل عبر الشبكة في كل مرة.

FredyC فشلت في رؤية كيف يمحو نص ما بعد التثبيت فائدة الخيوط؟ لا يزال من المرجح أن يكون أسرع عدة مرات من npm عند التثبيت ، ولديه ملف قفل. إذا كان هذا يجعل الغزل غير مفضل بالنسبة لك ، فأعتقد أن الغزل ليس مفضلًا على أي حال في شكله الحالي؟

مصادفة هذا أيضا. لا يوجد شيء مميز في مشروعي ، أنا فقط أتغلب عليه عن طريق تفجير مجلد node_modules للحزم الجديدة في الوقت الحالي.

نأمل أن يتم حل هذا قريبًا ، والحمد لله أن الغزل سريع للغاية! ؛)

حسنًا ، هذا مثير للاهتمام. إذا قمت بتنزيل tarball الفعلي لوحدة Firebase ، فإن سمات القراءة فقط هذه موجودة بالفعل! ... https://registry.npmjs.org/firebase/-/firebase-3.4.1.tgz

هذا يعني أنه ليس خطأ الغزل بالضبط. أفترض أن ما يفعله NPM بشكل مختلف هو إزالة هذه العلامة بالفعل عند التثبيت. في الأساس ، قد يكون هذا هو الحل الذي يجب أن تفعله Yarn أيضًا لأنك لا تعرف أبدًا ما هي الوحدة الأخرى التي يمكن أن تتأثر بهذا الشكل.

لقد حاولت بالفعل نشر الحزمة الخاصة بي

لذلك قمت بتقديم طلب دعم إلى Firebase لمعرفة ما إذا كان هناك شيء يمكنهم تغييره في عملية النشر الخاصة بهم.

هل يمكننا أن نأمل في أن يتم التعامل مع هذه الحالة في إصدار الغزل المستقبلي ، باستخدام نهج NPM أو غير ذلك.

فقط لمعلوماتك ، ستعمل أيضًا إذا قمت بإزالة Firebase أولاً ، ثم أضفت الحزم المطلوبة وأخيراً أضفت firebase مرة أخرى. فهل يقوم Yarn بتحديث الأذونات عند إزالة Firebase؟

@ vijay-stayntouch لا ، لا تفعل الغزل شيئًا حيال ذلك. المشكلة الرئيسية هي أنه إذا كان لديك Firebase هناك مع أعلام للقراءة فقط ويجب تنفيذ عملية "ربط التبعيات" لسبب ما ، فلن تتمكن من لمس هذه الملفات وتفشل. على الرغم من أنني لست متأكدًا من كيفية قيام Yarn فعليًا بحذف تلك الملفات بعلامات للقراءة فقط.

مرحبًا ، مهندس Firebase هنا. سنقوم بإصلاح هذا الأمر من جانبنا من خلال التأكد من أن الإصدار التالي لم يعد يحتوي على ملفات للقراءة فقط. ومع ذلك ، يبدو هذا سلوكًا غير متوقع وربما يجب إصلاحه في جميع المجالات بالنسبة لـ Yarn ، كما هو الحال في npm. شكر!

هل هذه نفس مشكلة # 872؟

بشرى سارة لكل من لديه مشكلة مع هذا. هناك وحدة Firebase جديدة 3.6.2 بدون قراءة الأعلام فقط وهي تعمل الآن بلا عيب.

أوصي بإغلاق هذا لصالح # 961 وهو أكثر عمومية ويتعلق بالغزل فقط.

FredyC أخبار

لا يزال السؤال معلقًا في الهواء وهو أنه إذا كانت هناك حزم أخرى تجعل الكود للقراءة فقط. سوف تحدث نفس المشكلة مرة أخرى.

@ vijay-stayntouch نعم ، هذا ما يجب أن يحاول # 961 حله حقًا.

لدي نفس المشكلة مع yarn add react-hot-loader --dev وهي تقول:

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.

أقوم بعمل yarn cache clean وأقوم بتنفيذ yarn add ... مرة أخرى ولكن المشكلة لا تزال قائمة.
أنا على ubuntu 16.04
العقدة v6.9.4 و npm v3.10.10

كنت أتلقى نفس المشكلة - كان الحل الوحيد الذي نجح معي هو استخدام rimraf node_modules لحذف مجلد node_modules ثم إعادة تثبيت جميع الحزم باستخدام yarn

أجد هذه المشكلة من وقت لآخر أثناء تثبيت الحزم باستخدام npm أو الغزل ، وسيذهب الحل البديل إلى مدير الملفات ، والنقر بزر الماوس الأيمن على المجلد الرئيسي / node_modules ، وتحديد الخصائص ، وإلغاء تحديد "للقراءة فقط". يمكنك القيام بذلك أيضًا باستخدام سمة في سطر الأوامر. ثم أعد محاولة التثبيت وهو يعمل.

واجهت هذا الخطأ لأنني حاولت تنفيذ أمر yarn أثناء تشغيل خادم العقدة. عذرًا! HTH شخص آخر.

قدمت عدة حلول مجربة (بما في ذلك للقراءة فقط قم بإلغاء التحديد) - لا يعمل
الإصدارات
عقدة v6.11.1
غزل v0.27.5
نظام التشغيل Windows 10

الخطأ: "EPERM: العملية غير مسموح بها ، إلغاء الارتباط 'D: \ urp \ node_modules \ node-sass \ vendor \ win32-x64-48 \inding.node'"

_جرى:_
التحقق من الغزل $ - سلامة

_تم الاستلام:_
خطأ Lockfile لا يحتوي على النمط: "material-ui^0.19.0"
خطأ Lockfile لا يحتوي على النمط: " [email protected] "
خطأ Lockfile لا يحتوي على النمط: "npm-run-all^ 4.1.1"
خطأ Lockfile لا يحتوي على النمط: "رد @ ^ 15.6.1"
خطأ Lockfile لا يحتوي على النمط: "رد فعل @ ^ 15.6.1"
خطأ Lockfile لا يحتوي على النمط: "رد فعل-router-dom^4.2.2"
خطأ Lockfile لا يحتوي على النمط: "رد فعل- علامة- حدث-plugin^ 2.0.1"
خطأ تعذر العثور على ملف تكامل

أي مساعدة سوف تكون كبيرة!

نعم ، في بعض الأحيان تمتص أثناء القيام به في Win (مثل تطوير Ionic2 / 3 في Win ، وإلقاء أخطاء EPERM بشكل دائم على سبيل المثال تثبيت / تعديل حزم npm وأشياء أخرى) ؛ قد يكون محكومًا بواسطة برنامج مكافحة الفيروسات ؛ إلغاء تحديد read only attr من كل node_modules ؛
أيضًا ، حاول إضافة ملف .npmrc إلى ملفforlder (c: / المستخدمين /) بمحتوى unsafe-perm=true ؛ أضف نفس الملف إلى جذر مشروعك ؛ الملاذ الأخير: قم بتشغيل بوويرشيل كمسؤول ورفع مع Start-Process powershell -Verb runAs - ستفتح نافذة powerhell مرتفعة جديدة ، والتي يجب أن تكون قادرة على العمل

في نظام Windows ، تأكد من تشغيل موجه الأوامر "As Administrator". :: نخلة الوجه ::

حاولت كل شيء مدرج هنا - الطريقة الوحيدة التي تمكنت من إصلاحها كانت:

npm install -g rimraf
rimraf node_modules

كما اقترحdomjtalbot.

يحدث هذا أيضًا عندما يكون لديك مثيلان من خيوط الغزل تحاول تثبيت الحزم في مشاريع مختلفة

يحدث لي أيضًا ، npm 5.8.0 ، والعمل الوحيد الذي تم توجيهه بواسطة

أواجه نفس المشكلة عندما يكون لدي خادم يعمل بـ nodemon ، ثم أضيف حزمة yarn add bcrypt . مع تعليق rmorrise ، أبدًا أن الخادم قيد التشغيل سيؤثر على التثبيت.

rmorrise +1 ، سيكون منطقيًا إذا كان بإمكان yarn اكتشاف مثل هذه الظروف وإصدار تحذير ذي معنى بدلاً من ذلك.

للحصول على معلومات: واجهت نفس المشكلة بعد إلغاء تثبيت الحزمة (ctrl + c) ، ومحاولة تثبيت حزمة أخرى بعد ذلك. لدي أيضًا خادم يعمل ولكنه لم يتسبب في حدوث أخطاء عندما أضفت حزمًا أخرى من قبل.

download (1)

لقد واجهت هذا الخطأ عدة مرات الآن وساعدت فقط إعادة تشغيل Windows.

لدي نفس المشكلة. كان السبب وراء حدوث هذا الخطأ هو تشغيل خادم تطوير تطبيق create-reaction-app في ubuntu لنظام windows bash. أدى إيقاف الخادم إلى حل المشكلة.

download (1)

لقد واجهت هذا الخطأ عدة مرات الآن وساعدت فقط إعادة تشغيل Windows.

عادةً ما أفضل التصويت على مثل هذه الإجابات ، لكن هذا كان حرفياً الشيء الوحيد الذي نجح معي

download (1)

لقد واجهت هذا الخطأ عدة مرات الآن وساعدت فقط إعادة تشغيل Windows.

هذا بالفعل فعل الحيلة بالنسبة لي ...

على الأقل بالنسبة لي ، يبدو أن هذا ناتج عن فتح vscode.

تأكد من إيقاف تشغيل تطبيقك (الزاوي ، المتفاعل ، إلخ ...) قبل npm install

تضمين التغريدة

لا أصدق أن هذا يعمل

شكرا لك على الحل الخاص بك

Gameghostify لي إما 😄

على الرحب و السعة.

تحقق مما إذا كانت لديك عملية عقدة قيد التشغيل ، ثم أغلقها وحاول مرة أخرى

كنت أقوم بتشغيل الغزل من محطة vscode لذا أعدت تشغيل vscode وقد فعلت ذلك الحيلة

نعم ، في بعض الأحيان تمتص أثناء القيام به في Win (مثل تطوير Ionic2 / 3 في Win ، وإلقاء أخطاء EPERM بشكل دائم على سبيل المثال تثبيت / تعديل حزم npm وأشياء أخرى) ؛ قد يكون محكومًا بواسطة برنامج مكافحة الفيروسات ؛ إلغاء تحديد read only attr من كل node_modules ؛
حاول أيضًا إضافة ملف .npmrc إلى المؤيد (c: / users /) بمحتوى unsafe-perm=true ؛ أضف نفس الملف إلى جذر مشروعك ؛ الملاذ الأخير: قم بتشغيل بوويرشيل كمسؤول ورفع مع Start-Process powershell -Verb runAs - ستفتح نافذة powerhell مرتفعة جديدة ، والتي يجب أن تكون قادرة على العمل

لقد نجحت بالفعل. شكرا لك.

@ Gayathri-K-2000 هل يمكنك تقديم مزيد من التفاصيل من فضلك؟ أواجه نفس المشكلة ولكن لم أعمل. يرجى تقديم مثال على ما فعلته إن أمكن. شكرا لك!

@ Gayathri-K-2000 هل يمكنك تقديم مزيد من التفاصيل من فضلك؟ أواجه نفس المشكلة ولكن لم أعمل. يرجى تقديم مثال على ما فعلته إن أمكن. شكرا لك!

لقد قمت بإلغاء تحديد "قراءة فقط" من خصائص وحدات العقدة وتشغيلها كمسؤول كمد. إنها تعمل.

تحقق مما إذا كانت لديك عملية عقدة قيد التشغيل ، ثم أغلقها وحاول مرة أخرى

كانت هذه بالفعل مشكلتي هنا أيضًا. ينطبق الشيء نفسه على تطبيقات التفاعل ، على سبيل المثال عندما يُطلب منك تثبيت node-sass - لا يمكنك القيام بذلك أثناء تشغيل تطبيقك. شكرا لكم جميعا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات