سؤال لماذا لا يمكنك إلغاء تثبيت برامج متعددة في وقت واحد في Windows؟


لماذا لا يسمح لك Windows بإلغاء تثبيت أو إزالة برامج متعددة في وقت واحد؟ ما السبب خلف هذا؟ هل سيعطل النظام الداخلي؟

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


96
2018-03-19 15:31


الأصل


لمنع الناس من إلغاء تثبيت كل شيء في وقت واحد ... ربما. - M.Bennett
@ م. بينيت كنت أفكر في ذلك أيضا ، ولكن ليس هناك طريقة لتحديد برامج متعددة بحيث لا يمكن للمستخدمين إلغاء كل شيء عن طريق الصدفة على أي حال. - Jeroen Bollen
في الواقع ، يمكنك إزالة العديد من البرامج في وقت واحد ، وهو Windows Installer الوحيد الذي يمنعك من إلغاء تثبيت برامج متعددة ، وذلك لأنه يسمح فقط بمثيل واحد من نفسه. سهل بما فيه الكفاية لحذف ملفات البرامج ، يمكنك حذف جميع محتويات Program Files إذا أردت ، والتي من شأنها إلغاء تثبيت هذه البرامج فقط بشكل غير فعال. - Ramhound
Ramhound: يبدو أنك الشخص الوحيد هنا الذي فهم بشكل صحيح نية السائل: فهو يريد أن يقوم النظام بإلغاء تثبيت البرامج في  تسلسل. يفهم المجيبون هنا سؤاله بشكل مختلف: سواء كان ذلك ممكنًا الوقت ذاته إلغاء تثبيت عدة برامج. وغني عن القول ، في لينكس أنه من الممكن بسهولة: أنت فقط اكتب apt-get -y uninstall prog1 prog2 prog3. - Niccolo M.
NiccoloM كان سؤالي هو في الواقع لماذا لا يمكنك ذلك في وقت واحد. : P - Jeroen Bollen


الأجوبة:


إذا كنت تقرأ أي شيء عن كيفية عمل نظام مثبت Windows ، فمن الواضح أنها طبقت بعض الأفكار من قواعد بيانات المعاملات إلى تثبيت البرامج والصيانة ، ناهيك عن .msi الملفات نفسها هي قاعدة بيانات.

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

الآن ، أعتقد أن محرك MSI نفسه يقوم بتثبيت أو تعديل أو إزالة برنامج واحد فقط في كل مرة - إذا حاولت تشغيل .msi بينما يتم إلغاء تثبيت آخر ، على سبيل المثال ، فإنه إما لن يعمل أو سينتظر انتهاء التثبيت الحالي. قد لا تتصرف مثبتات غير MSI بهذه الطريقة - لأنها لا تستخدم محرك MSI. لكن بسبب قرار تصميم الأمان هذا ، ربما هذا هو السبب appwiz.cpl تصر على السماح فقط استدعاء uninstaller دفعة واحدة.

CCleaner يسمح لك لبدء uninstallers دون انتظار تلك التي سبق تشغيلها لإنهاء. من المحتمل أن لا يعمل مثبتو MSI بشكل متوازٍ بسبب ما سبق.


100
2018-03-19 15:49



هناك شيء واحد يجب ملاحظته هو أن مديري الحزم على أنظمة يونكس الشبيهة لن يحاولوا أيضًا إزالة العديد من الحزم دفعة واحدة للسبب نفسه. إذا قمت بإزالة حزم متعددة يتم إزالتها واحدة تلو الأخرى ، وربما كل في المعاملات الخاصة بهم. - Joey
+1 إجابة رائعة! شيء واحد أن نلاحظ. إذا كان لديك مجموعة من الملفات التنفيذية المستقلة ، مثل CPU-Z ، في مجلد ، فلا تتردد في إلغاء تثبيتها (حذف) كلها دفعة واحدة. - MonkeyZeus
Joey هذا صحيح ، ولكن يمكنك على الأقل توجيه * مديري حزم nix للقيام بذلك وسيعملون على الترتيب. أعتقد أن المشكلة الأكبر هي أن Windows لا يفهم مفهوم التبعية على مستوى إدارة الحزم. - tudor
tudor: أعتقد أنه مجرد اختلاف في كيفية إدارة التطبيقات على أنظمة تشغيل مختلفة. يدير ويندوز تطبيقات، على الرغم من إدارة مديري الحزم من يونكس ، حزم، والتي يمكن أن تكون المكتبات والتطبيقات وأشياء مماثلة. شبابيك يستطيع إدارة مثل هذه الأشياء (فهي تفعل ذلك على المستوى الداخلي بالتأكيد ، على سبيل المثال ، عند تمكين مكونات Windows أو تعطيلها) ، ولكن لم تتمكن مكتبات الجهة الخارجية على نطاق المنظومة من التطور بشكل جيد في أواخر التسعينيات ، لذلك يتم تشجيع التطبيقات على تجميع كل اعتمادياتها. - Joey
Joey أنا أعتبر وجهة نظرك ، ولكن إلقاء اللوم على المستخدم (أو المطور) لن تحصل على مسافة بعيدة في مثل هذه المساحة المشتركة المفتوحة. يرى المستخدمون التطبيقات فقط ، ولكن التطبيقات ليست سوى مجموعة فرعية من الحزم. تحتاج المكتبات المتعددة ، حتى مع الإصدارات والبائعين المختلفين ، إلى أن تكون تمكن. كان مطلب المطور لإدارته متفائلا في أحسن الأحوال ، IMHO ، وأسفر عن سخام الثقيلة. يحقق Windows Store بعض الانجازات في هذا ، لكنه لا يزال بعيدًا عن حل التبعية التلقائية ، مما يجعل * nixes أبسط بكثير في هذا الصدد. - tudor


هذا ينطبق حقا فقط على البرامج التي تستخدم مثبت الويندوز النظام.

إذا كان أحد البرامج يستخدم أنظمة التثبيت الخاصة به (un) ، فلا يوجد ما يمنعك من تشغيل برنامج إلغاء تثبيت آخر في نفس الوقت.

يحدد Windows Installer عدد المثيلات لتجنب تعارضات يتم إجراؤها بواسطة عدة برامج أثناء تغيير الإعدادات والملفات على مستوى النظام (غالباً ما تتم مشاركته).

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

تم إنشاء نظام Windows Installer بنية إنشاء نظام موحد لجميع مطوري التطبيقات لاستخدامه (على Windows) ، للمساعدة على تجنب حدوث مثل هذه المشكلات.


19
2018-03-19 15:40





تقوم مهام إلغاء التثبيت في كثير من الأحيان بتعديل الملفات المشتركة بواسطة برامج متعددة ، أو ملفات النظام \ السجل (وهو سبب جزئي يحتاج إلى السلطة الإدارية للقيام بذلك). إذا تم تشغيل عدة مهام لإلغاء التثبيت في نفس الوقت ، فقد تتعارض. إذا كان لديك من أي وقت مضى في تشغيل مع "DLL الجحيم" ، سيكون من نفسه. يمكن ترك برامج أخرى أو Windows نفسه في حالة غير متناسقة.


9
2018-03-19 15:40



هذا هو أكثر ما تدور حوله الإجابة الصحيحة. إذا قام برنامج "A" بتثبيت Windows DLL غير الأساسي "X" ، فذلك يعني أن البرنامج "B" يتطلب ذلك في برنامج التثبيت الخاص به ، ومن ثم قد يكون أيضًا جزءًا من برنامج إلغاء التثبيت. ولكن إلغاء تثبيت DLL "X" قد يؤدي إلى تعطيل البرنامج "A". لذا سيسألك برنامج إلغاء التثبيت عادة عن DLLs المشتركة والملفات الأخرى إذا كان ينبغي حذفها. إذا تم تشغيله بشكل متزامن ، فلن يعمل هذا النوع من المطالبة بشكل صحيح. وأخيرا ، وربما الأهم من ذلك ، فقد نسي الجميع سجل ويندوز - وهو مكون أساسي لقاعدة البيانات ish التي يتم تحديثها بشكل متكرر في المثبتات / uninstallers. - Darrell Teague


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


-1
2018-03-20 19:33



هذا لا يهم كإجابة. كل شيء يتضمن قرص الإدخال / الإخراج لديه القدرة على إبطاء إذا قمت بأشياء كثيرة في وقت واحد ، ولكن الشيء الوحيد الذي Windows بالفعل يمنع أنت من القيام بالتثبيت (un). وهناك سبب وجيه لرغبتك في القيام بعمليات تثبيت (un) متزامنة - سيكون من الأسهل بكثير على المستخدمين أن يكونوا قادرين على اصطفاف مجموعة من العمليات والسماح لهم بالركض معاً ، مقابل الاضطرار للانتظار والانتظار لكل واحد لاستكمال بدوره. أيضا ، قضية التنازل عفا عليها الزمن مع SSDs. - Andrew Medico