ทำไมคุณไม่สามารถถอนการติดตั้งหลาย ๆ โปรแกรมพร้อมกันใน Windows


99

เหตุใด Windows จึงไม่อนุญาตให้คุณถอนการติดตั้งหรือลบหลายโปรแกรมพร้อมกัน อะไรคือเหตุผลเบื้องหลังสิ่งนี้ มันจะทำให้ระบบภายในสับสนหรือไม่?

ฉันไม่ได้มองหาวิธีถอนการติดตั้งหลาย ๆ โปรแกรมพร้อมกันฉันแค่มองหาเหตุผลว่าทำไมมันถึงไม่มีตัวเลือก


9
เพื่อป้องกันไม่ให้คนอื่นถอนการติดตั้งทุกอย่างในครั้งเดียว ... อาจจะ
M.Bennett

@ M.Bennett ฉันก็คิดเช่นกัน แต่ไม่มีทางเลือกหลาย ๆ โปรแกรมเพื่อให้ผู้ใช้ไม่สามารถถอนการติดตั้งทุกอย่างได้โดยบังเอิญ
Jeroen Bollen

5
จริงๆแล้วคุณสามารถลบหลาย ๆ โปรแกรมในคราวเดียวมันเป็น Windows Installer เพียงตัวเดียวที่ป้องกันไม่ให้คุณถอนการติดตั้งหลาย ๆ โปรแกรมนั่นเป็นเพราะมันอนุญาตเพียงอินสแตนซ์เดียวของตัวเอง ง่ายพอที่จะลบไฟล์โปรแกรมคุณสามารถลบเนื้อหาทั้งหมดของไฟล์โปรแกรมได้หากต้องการซึ่งจะถอนการติดตั้งโปรแกรมเหล่านั้นไม่ได้อย่างมีประสิทธิภาพ
Ramhound

@Ramhound: คุณดูเหมือนจะเป็นเพียงคนเดียวที่นี่ที่ถูกต้องเข้าใจความตั้งใจของผู้ถาม: เขาต้องการระบบที่จะถอนการติดตั้งโปรแกรมใน ลำดับ ผู้ตอบที่นี่เข้าใจคำถามของเขาแตกต่างกัน: ไม่ว่าจะเป็นไปได้ไหมที่จะถอนการติดตั้งหลาย ๆ โปรแกรมพร้อมกัน จำเป็นต้องพูดในลินุกซ์มันเป็นไปได้อย่างง่ายดาย: apt-get -y uninstall prog1 prog2 prog3คุณเพียงแค่พิมพ์
Niccolo M.

4
@NiccoloM คำถามของฉันเป็นจริงทำไมคุณไม่พร้อมกัน : P
Jeroen Bollen

คำตอบ:


101

หากคุณอ่านอะไรเกี่ยวกับการทำงานของระบบติดตั้ง Windows ก็เห็นได้ชัดว่าพวกเขาใช้แนวคิดบางอย่างจากฐานข้อมูลทรานแซคชันกับการติดตั้งและบำรุงรักษาโปรแกรมไม่พูดถึง.msiไฟล์ที่ตัวเองเป็นฐานข้อมูล

มีคำถามอยู่เสมอในการออกแบบฐานข้อมูลใด ๆ - คุณต้องการความเร็วหรือความแม่นยำ / ความปลอดภัยหรือไม่? เนื่องจากตัวติดตั้งสามารถปรับเปลี่ยนการกำหนดค่าระบบและอุบัติเหตุอาจทำให้ระบบไม่สามารถใช้งานได้ความปลอดภัยจึงได้รับความสำคัญมากกว่าความเร็ว สาเหตุหนึ่งที่ทำให้ตัว.msiติดตั้งช้ามากเพราะไฟล์ย้อนกลับสร้างขึ้นสำหรับแต่ละไฟล์ ฯลฯ ที่จะถูกแก้ไขแล้วลบทิ้งหลังจากนั้น - อนุญาตให้การเปลี่ยนแปลงใด ๆ "ย้อนกลับ" หากมีสิ่งผิดปกติเกิดขึ้น ( เช่นไฟดับหรือระบบขัดข้อง)

ตอนนี้ฉันเชื่อว่าเอ็นจิ้น MSI นั้นบังคับให้ติดตั้งแก้ไขหรือลบโปรแกรมออกครั้งละหนึ่งโปรแกรมเท่านั้น - ถ้าคุณพยายามเรียกใช้.msiในขณะที่อีกโปรแกรมหนึ่งกำลังถอนการติดตั้งตัวอย่างเช่นมันจะไม่ทำงานหรือจะรอถอนการติดตั้ง เพื่อเสร็จสิ้น โปรแกรมติดตั้งที่ไม่ใช่ของ MSI อาจไม่ทำงานในลักษณะนี้เนื่องจากไม่ได้ใช้โปรแกรม MSI แต่เนื่องจากการตัดสินใจออกแบบเพื่อความปลอดภัยนี่อาจเป็นเหตุผลว่าทำไมจึงappwiz.cplยืนยันให้ผู้ถอนการติดตั้งหนึ่งรายถูกเรียกพร้อมกัน

CCleaner ช่วยให้คุณสามารถเริ่มโปรแกรมถอนการติดตั้งโดยไม่ต้องรอให้โปรแกรมที่ทำงานก่อนหน้านี้เสร็จสิ้น โปรแกรมติดตั้ง MSI อาจยังไม่สามารถใช้งานแบบขนานได้เนื่องจากข้อมูลด้านบน


29
สิ่งหนึ่งที่ควรทราบคือตัวจัดการแพ็กเกจในระบบที่คล้าย Unix จะไม่พยายามลบหลาย ๆ แพ็กเกจพร้อมกันด้วยเหตุผลเดียวกัน หากคุณลบหลาย ๆ แพ็คเกจมันจะถูกลบออกทีละแพ็คเกจอาจเป็นไปได้ในการทำธุรกรรมของตนเอง
Joey

+1 คำตอบสุดยอด! สิ่งหนึ่งที่ควรทราบ หากคุณมีไฟล์ประมวลผลแบบสแตนด์อโลนจำนวนมากเช่น CPU-Z ในโฟลเดอร์คุณสามารถถอนการติดตั้ง (ลบ) ไฟล์เหล่านั้นได้ในคราวเดียว
MonkeyZeus

4
@ โจอี้นี่เป็นความจริง แต่อย่างน้อยคุณสามารถสั่งให้ผู้จัดการแพคเกจระวังทำอย่างนั้นและพวกเขาจะทำตามคำสั่ง ฉันคิดว่าปัญหาที่ใหญ่กว่าคือ Windows ไม่เข้าใจแนวคิดของการพึ่งพาในระดับการจัดการแพ็คเกจ
ทิวดอ

4
@ ทิวดอร์: ฉันคิดว่ามันเป็นเพียงความแตกต่างในวิธีการจัดการแอปพลิเคชันบนระบบปฏิบัติการที่แตกต่างกัน Windows จัดการแอปพลิเคชั่นในขณะที่ผู้จัดการแพคเกจ Unix-like จัดการแพคเกจซึ่งอาจเป็นไลบรารีแอปพลิเคชันและสิ่งที่คล้ายกัน Windows สามารถจัดการสิ่งต่าง ๆ ได้ (มันจะช่วยภายในอย่างแน่นอนเช่นเมื่อคุณเปิดใช้งานหรือปิดการใช้งานองค์ประกอบของ Windows) แต่การมีระบบห้องสมุดของบุคคลที่สามไม่ได้เลื่อนออกไปได้อย่างดีในช่วงปลายยุค 90 รวมการพึ่งพาของพวกเขาทั้งหมด
Joey

@ โจอี้ฉันใช้จุดของคุณ แต่โทษผู้ใช้ (หรือนักพัฒนา) จะไม่ไปไกลในพื้นที่สาธารณะที่เปิดกว้าง ผู้ใช้เห็นเฉพาะแอปพลิเคชัน แต่แอปพลิเคชันเป็นเพียงส่วนหนึ่งของแพ็คเกจ ห้องสมุดหลายแม้จะมีรุ่นที่แตกต่างกันและผู้ขายก็ต้องได้รับการจัดการ ต้องการให้นักพัฒนาซอฟต์แวร์จัดการมันในแง่ดีที่สุด IMHO และส่งผลให้มีการขยายอย่างมาก Windows Store สร้างความได้เปรียบในเรื่องนี้ แต่ก็ยังห่างไกลจากความละเอียดของการพึ่งพาอัตโนมัติซึ่งทำให้ * nixes ง่ายขึ้นมากในเรื่องนี้
ทิวดอ

19

สิ่งนี้ใช้ได้กับโปรแกรมที่ใช้ระบบ Windows Installerเท่านั้น

หากโปรแกรมใช้ระบบติดตั้งของตัวเอง (un) แสดงว่าไม่มีสิ่งใดที่จะหยุดคุณไม่ให้เรียกใช้โปรแกรมถอนการติดตั้งอื่นในเวลาเดียวกัน

Windows Installer จำกัด จำนวนอินสแตนซ์ที่จะหลีกเลี่ยงความขัดแย้งที่เกิดขึ้นจากหลาย ๆ โปรแกรมในขณะที่พวกเขากำลังเปลี่ยนการตั้งค่าและไฟล์ทั่วทั้งระบบ

โปรแกรมถอนการติดตั้งส่วนใหญ่จะติดตามสิ่งที่เปลี่ยนแปลงเพื่อให้สามารถย้อนกลับได้สำเร็จหากเกิดความล้มเหลว หากไม่มีการรับรู้ถึงการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้น (โดยโปรแกรมถอนการติดตั้งอื่น ๆ ) มันอาจจะทำสิ่งต่าง ๆ ได้จริงถ้ามันพยายามย้อนกลับการติดตั้งที่ล้มเหลว

ระบบ Windows Installer ถูกสร้างขึ้นด้วยความตั้งใจที่จะเป็นระบบที่รวมเป็นหนึ่งเดียวสำหรับนักพัฒนาแอปพลิเคชันทั้งหมดที่จะใช้ (บน Windows) เพื่อช่วยหลีกเลี่ยงปัญหาเช่นนี้


9

งานการถอนการติดตั้งมักจะแก้ไขไฟล์ที่ใช้งานร่วมกันหลายโปรแกรมหรือไฟล์ระบบ \ the Registry (เหตุผลบางประการสำหรับการใช้พลังงานระดับผู้ดูแลระบบต้องทำ) หากงานถอนการติดตั้งหลายรายการทำงานในเวลาเดียวกันพวกเขาอาจขัดแย้งกัน หากคุณเคยมีปัญหากับ "DLL Hell" มันจะเหมือนกัน โปรแกรมอื่น ๆ หรือ Windows อาจอยู่ในสถานะไม่สอดคล้องกัน


นี่คือสิ่งที่คำตอบที่ถูกต้องเกี่ยวกับ หากโปรแกรม "A" ติดตั้ง Windows DLL ที่ไม่ใช่แกน "X" ดังนั้นโปรแกรม "B" จำเป็นต้องใช้มันในตัวติดตั้งแล้วมันก็จะเป็นส่วนหนึ่งของโปรแกรมถอนการติดตั้งเช่นกัน แต่การถอนการติดตั้ง DLL "X" จะทำให้โปรแกรม "A" หยุดทำงาน ดังนั้นตัวถอนการติดตั้งมักจะถามเกี่ยวกับ DLLs ที่ใช้ร่วมกันและไฟล์อื่น ๆ หากพวกเขาควรจะถูกลบ หากทำงานพร้อมกันการแจ้งเตือนประเภทนี้จะทำงานไม่ถูกต้อง ท้ายที่สุดและที่สำคัญกว่านั้นทุกคนลืม Windows Registry ซึ่งเป็นส่วนประกอบหลักของฐานข้อมูลซึ่งมีการอัพเดทบ่อยครั้งในโปรแกรมติดตั้ง / ถอนการติดตั้ง
Darrell Teague

-1

การถอนการติดตั้งโปรแกรมพร้อมกันนอกเหนือจากการประสบปัญหาอื่น ๆ ที่กล่าวถึงมีประโยชน์น้อยมาก: มันจะไม่เร็วกว่าการถอนการติดตั้งโปรแกรมตามลำดับ การถอนการติดตั้งโปรแกรมเป็นงานที่เกี่ยวข้องกับดิสก์ IO การรันหลายโปรแกรมที่ทำ IO นั้นไม่เร็วกว่าการรันตามลำดับ (ยกเว้นว่ามีการติดตั้งโปรแกรมในดิสก์ฟิสิคัลแยกกันสองตัว) ในความเป็นจริงมันมีแนวโน้มที่จะช้าลงเพราะงาน IO ที่แข่งขันกันสองงานจะทำให้แคชดิสก์มีประสิทธิภาพน้อยลงและหัวฟิสิคัลของดิสก์จะต้องกระโดดจากที่หนึ่งไปยังอีกที่หนึ่ง


นี่เป็นคำตอบที่ไม่เกี่ยวข้อง ทุกสิ่งที่เกี่ยวข้องกับดิสก์ I / O มีแนวโน้มที่จะชะลอตัวลงหากคุณทำสิ่งต่าง ๆ มากเกินไปในคราวเดียว แต่สิ่งเดียวที่ Windows ป้องกันไม่ให้คุณทำคือติดตั้งพร้อมกัน (un) และมีเหตุผลที่ดีที่ต้องการจะทำการติดตั้งพร้อมกัน (un) - มันจะง่ายขึ้นมากสำหรับผู้ใช้ที่จะสามารถจัดคิวการดำเนินการต่างๆและให้พวกเขาทำงานร่วมกันเมื่อเทียบกับการนั่งรอ สำหรับแต่ละคนจะเสร็จสมบูรณ์ในทางกลับกัน นอกจากนี้ปัญหาการโต้แย้งยังล้าสมัยกับ SSD
Andrew Medico
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.