Nvm-windows: تحتاج إلى إزالة المجلد يدويًا عند إلغاء تثبيت nvm

تم إنشاؤها على ١١ مارس ٢٠١٧  ·  13تعليقات  ·  مصدر: coreybutler/nvm-windows

أهلا،
فيما يلي خطوات إعادة الإنتاج (بما في ذلك وصف الخطأ). يحدث هذا على نظام x64 ،

nvm install xyz (6.10.0 أو ما شابه ، لكن الإصدار لا يهم)
nvm إلغاء تثبيت xyz
=> تمت عملية الإزالة بنجاح ، ولم يتبق منها

nvm تثبيت xyz
استخدام nvm xyz
nvm استخدم uvw (إصدار آخر - فقط للتأكد من عدم استخدام xyz - ربما لا تكون هذه الخطوة ضرورية)
nvm إلغاء تثبيت xyz
=> تحتاج إلى إزالة المجلد xyz يدويًا من مسار nvm ، والذي يحتوي دائمًا على node.exe بمفرده

IMO ، يحدث هذا لأنه قبل "استخدام" يوجد node64.exe ، والذي تمت إعادة تسميته عند "استخدام" في node.exe. يبقى node.exe من هذه النقطة فصاعدًا ومن الواضح أنه يمنع إزالة المجلد.

آمل أن يكون الوصف واضحًا بدرجة كافية.
شكرا

bug

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

بحاجة إلى إعادة الفتح بسبب نفس المشكلة على macOS

ال 13 كومينتر

إذا قمت بتشغيل nvm ls بعد ذلك ، فهل يُظهر الإصدار الذي تم إلغاء تثبيته؟

نعم ، بالفعل - بعد التثبيت / الاستخدام / إلغاء التثبيت ، لا يزال nvm ls يُظهر ملف
نسخة غير مثبتة.

راجع للشغل ، إذا قمت بإعادة تسمية node.exe إلى node64.exe قبل إلغاء التثبيت ، فإن ملف
تمت إزالة الإصدار بالكامل (دون الحاجة إلى إزالة ملف
مجلد).

حسنًا ، لقد حددت هذا على أنه خطأ. ما هو إصدار Windows الذي تستخدمه؟

ما هو إصدار Windows الذي تستخدمه؟

Windows 10 (تحديث الذكرى السنوية) x64

أهلا،

afaict (لكنني لست مطور Go) في arch.go: SearchBytesIn
الملف المفتوح لا يغلق ابدا. لذلك عندما يحاول os.RemoveAll حذف ملف
هناك انتهاك للمشاركة.

أنا مندهش إلى حد ما على الرغم من أنه لم يتم الإبلاغ عن هذا من قبل ،
لأنني أعتقد أن الخطأ يجب أن يحدث في كل مرة نسخة "مستعملة"
(الذي يحتوي على node.exe) يجب إزالته.

بمجرد أن يكمل الملف التنفيذي العملية ، فإنه لم يعد مرتبطًا بأي ملفات. بمعنى آخر ، يقوم الملف التنفيذي بتشغيل عملية واحدة ، ثم يغلق جميع اتصالات الملفات عن طريق الخروج. ومع ذلك؛ لم تتح لي الفرصة لاختبار ذلك شخصيًا على أحدث إصدار من Windows. إذا كان Windows يستخدم الآن قفل ملف لهذه العملية ، فقد تكون على حق ... قد يكون هذا باقياً.

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

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

IMO: يفتح nvm.exe node.exe (وهذا فقط ، وليس node64.exe أو ما شابه)
ومسح بضع بايت ، لكنه لا يغلق مقبض الملف.
ثم يحاول nvm.exe إزالة المجلد (لكن بالطبع لم يخرج
بينهما ، لذلك لا يزال مقبض الملف مفتوحًا).

ومع ذلك؛ لم تتح لي الفرصة لاختبار ذلك شخصيًا على أحدث إصدار من Windows. إذا كان Windows يستخدم الآن قفل ملف لهذه العملية ، فقد تكون على حق ... قد يكون هذا باقياً.

إنه ليس حقًا قفل ملف. اسمحوا لي أن إخراج nvm.exe الخطأ و ذلك
يقرأ "لا يمكن للعملية الوصول إلى الملف لأنه قيد الاستخدام بواسطة
عملية أخرى "(وهي نفس الرسالة إذا كانت في نفس الشيء
عملية).

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

حسنا لا مشكلة. إذا كان بإمكانك إصلاحه في الإصدار التالي.

شكرا!

لقد أجريت اختبارًا صغيرًا وهذا يحدث فقط إذا كنت تستخدم nvm xxx الإصدار المراد إزالته وأنت تستخدم arch 64. كما ذكرنا ، تمت إعادة تسمية node64.exe إلى node.exe ولم تتم إزالته. ومع ذلك ، إذا كنت تستخدم إصدارًا آخر وأعدت تسمية node.exe يدويًا إلى node64.exe (كما هو مذكور في ujaroe) ، فسيتم إكمال عملية إلغاء التثبيت بنجاح.

هذا يعني أن هناك طريقتين لحل المشكلة. أوصي بـ "استخدام nvm" لاستعادة مجلد الإصدار ، ينتقل أمر use من الحالة الأصلية إلى الحالة الأصلية. الآخر هو إلغاء تثبيت قوس الاختيار والتأكد من أن العقدة القابلة للتنفيذ تطابق قوس الإصدار. هناك بعض الأشياء الأخرى التي يمكن إجراؤها باستخدام الروابط الرمزية ، لكنني أعتقد أن هذين هما أفضل خيارين. مهارة My Go منخفضة جدًا ولكني سأحاول بناء أحدهما أو كليهما قريبًا.

تحرير: الهجاء

نفس المشكلة هنا. إخراج CLI:

❯ nvm list

  * 8.4.0 (Currently using 64-bit executable)
    6.11.2
    6.10.0

❯ nvm uninstall 6.10.0
Uninstalling node v6.10.0...Error removing node v6.10.0
Manually remove C:\Users\darsain\AppData\Roaming\nvm\v6.10.0.

❯ nvm list

  * 8.4.0 (Currently using 64-bit executable)
    6.11.2
    6.10.0

بعد تشغيل uninstall الأمر، v6.10.0 مجلد سوى node.exe ملف في ذلك. أنا متأكد بنسبة 99٪ من عدم استخدام أي شيء لها. يعمل الحذف يدويًا بشكل جيد.

ولكن ، تم تثبيت الإصدار v6.10.0 منذ فترة على nvm 1.1.1 على ما أعتقد. قمت اليوم بالترقية إلى 1.1.6. تثبيت وإزالة العقدة 6.11.2 الذي قمت به اليوم بعد الترقية كان يعمل بشكل جيد.

أستطيع أن أؤكد هذا. حدث لي أيضًا على Win10 x64 باستخدام العقدة v6.9.1 و nvm 1.1.3

حدث أيضًا على Win10 x64 (الإصدار 1709) باستخدام العقدة v8.11.1 و nvm 1.1.6

مرحبًا ، coreybutler ، حدث الخطأ أيضًا على Windows10 x64 ، وإذا استخدمت الأمر nvm use x.y.z لتبديل إصدار nodejs ، فلن يتم إلغاء تثبيت xyz ، بينما إصدار abc إذا لم أتمكن من استخدام nvm use الأمر

بحاجة إلى إعادة الفتح بسبب نفس المشكلة على macOS

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