Mengapa Anda tidak bisa menghapus banyak program sekaligus di Windows?

99

Mengapa Windows tidak memungkinkan Anda untuk menghapus atau menghapus beberapa program sekaligus? Apa alasan di balik ini? Apakah ini akan mengacaukan sistem internal?

Saya tidak mencari cara menghapus beberapa program sekaligus, saya hanya mencari alasan mengapa itu tidak menjadi pilihan.

Jeroen Bollen
sumber
9
Untuk mencegah orang menghapus semuanya sekaligus ... mungkin.
M.Bennett
@ M.Bennett Saya juga memikirkan itu, tetapi tidak ada cara untuk memilih beberapa program sehingga pengguna tidak dapat benar-benar menghapus semuanya secara tidak sengaja.
Jeroen Bollen
5
Sebenarnya Anda dapat menghapus banyak program sekaligus, satu-satunya Penginstal Windows yang mencegah Anda menghapus instalasi beberapa program, itu karena hanya memungkinkan satu contoh dari program itu sendiri. Cukup mudah untuk menghapus file program, Anda dapat menghapus semua konten File Program jika Anda mau, yang akan menghapus program itu tidak efektif.
Ramhound
@Ramhound: Tampaknya Anda adalah satu-satunya orang yang memahami maksud si penanya dengan benar: ia ingin sistem menghapus instalasi program secara berurutan . Para penjawab di sini memahami pertanyaannya secara berbeda: apakah mungkin untuk secara bersamaan menghapus beberapa program. Tak perlu dikatakan, di Linux itu mudah: Anda cukup mengetik apt-get -y uninstall prog1 prog2 prog3.
Niccolo M.
4
@NiccoloM Pertanyaan saya sebenarnya adalah mengapa Anda tidak bisa secara bersamaan. : P
Jeroen Bollen

Jawaban:

101

Jika Anda membaca apa pun tentang cara kerja sistem pemasang Windows, jelas mereka menerapkan beberapa ide dari basis data transaksional ke instalasi dan pemeliharaan program, belum lagi .msifile itu sendiri adalah basis data.

Selalu ada pertanyaan dalam mendesain basis data apa pun - apakah Anda menginginkan kecepatan atau ketepatan / keamanan? Mengingat bahwa penginstal dapat mengubah konfigurasi sistem dan bahwa kecelakaan dapat membuat sistem tidak dapat dioperasikan, keselamatan telah diberikan prioritas dibandingkan kecepatan. Salah satu alasan mengapa .msiinstaller sangat lambat adalah karena file rollback dibuat untuk setiap file, dll. Yang akan dimodifikasi, dan kemudian dihapus setelah itu - memungkinkan perubahan "digulung kembali" jika terjadi kesalahan di tengah-tengah hal ( seperti pemadaman listrik atau crash sistem).

Sekarang, saya percaya mesin MSI itu sendiri memberlakukan menginstal, memodifikasi, atau menghapus hanya satu program pada satu waktu - jika Anda mencoba menjalankan .msisementara yang lain menghapus, misalnya, itu tidak akan berjalan atau akan menunggu untuk uninstall yang sedang berjalan saat ini menyelesaikan. Pemasang non-MSI mungkin tidak berlaku seperti ini - karena mereka tidak menggunakan mesin MSI. Tetapi karena keputusan desain keselamatan ini, ini mungkin mengapa appwiz.cplbersikeras hanya membiarkan satu uninstaller dipanggil sekaligus.

CCleaner memungkinkan Anda memulai uninstaller tanpa menunggu yang berjalan sebelumnya selesai. Pemasang MSI kemungkinan masih tidak akan bekerja secara paralel karena hal di atas.

LawrenceC
sumber
29
Satu hal yang perlu diperhatikan adalah bahwa manajer paket pada sistem mirip Unix juga tidak akan mencoba menghapus beberapa paket sekaligus karena alasan yang hampir sama. Jika Anda menghapus beberapa paket, mereka dihapus satu demi satu, mungkin masing-masing dalam transaksi mereka sendiri.
Joey
+1 Jawaban luar biasa! Satu hal yang perlu diperhatikan. Jika Anda memiliki banyak executable mandiri, seperti CPU-Z, dalam sebuah folder maka jangan ragu untuk menghapus (menghapus) semuanya sekaligus.
MonkeyZeus
4
@ Joey Ini benar, tetapi Anda setidaknya dapat menginstruksikan manajer paket * nix untuk melakukan itu dan mereka akan menyelesaikan pesanan. Saya pikir masalah yang lebih besar adalah bahwa Windows tidak memahami konsep ketergantungan pada tingkat manajemen paket.
tudor
4
@tudor: Saya pikir itu hanya perbedaan dalam cara aplikasi dikelola pada OS yang berbeda. Windows mengelola aplikasi , sedangkan pada pengelola paket Unix-like mengelola, baik, paket , yang dapat berupa pustaka, aplikasi, dan hal-hal serupa. Windows dapat mengelola hal-hal seperti itu (itu memang melakukannya secara internal, misalnya ketika Anda mengaktifkan atau menonaktifkan komponen Windows), tetapi memiliki sistem perpustakaan pihak ketiga tidak berjalan dengan baik di akhir 90-an, sehingga aplikasi didorong untuk hanya bundel semua dependensinya.
Joey
@ Joey, saya mengerti maksud Anda, tetapi menyalahkan pengguna (atau pengembang) tidak akan jauh dalam ruang bersama yang terbuka. Pengguna hanya melihat aplikasi, tetapi aplikasi hanyalah sebagian dari paket. Beberapa perpustakaan, bahkan dengan versi dan vendor yang berbeda, hanya perlu dikelola . Mewajibkan pengembang untuk mengelolanya adalah yang terbaik, IMHO, dan menghasilkan mengasapi berat. Windows Store membuat beberapa terobosan dalam hal ini, tetapi masih jauh dari resolusi dependensi automagic, yang membuat * nixes jauh lebih sederhana dalam hal ini.
tudor
19

Ini hanya benar-benar berlaku untuk program yang menggunakan sistem Pemasang Windows .

Jika suatu program menggunakan sistem penginstal mereka sendiri (tidak), maka tidak ada yang menghentikan Anda dari menjalankan uninstaller lain pada saat yang bersamaan.

Pemasang Windows membatasi jumlah instance untuk menghindari konflik yang dibuat oleh banyak program saat mereka mengubah pengaturan dan file di seluruh sistem (sering dibagi).

Sebagian besar pencopot melacak apa yang mereka ubah sehingga mereka dapat berhasil kembali jika ada kegagalan. Jika seseorang tidak mengetahui semua perubahan yang dibuat (oleh uninstaller lain) maka itu mungkin benar-benar membuat hal-hal lebih buruk jika mencoba untuk mengembalikan instalasi yang gagal.

Sistem Pemasang Windows dibuat dengan tujuan menjadi sistem terpadu untuk digunakan oleh semua pengembang aplikasi (pada Windows), untuk membantu menghindari masalah seperti ini.

Ƭᴇcʜιᴇ007
sumber
9

Tugas penghapusan instalasi sering memodifikasi file yang digunakan bersama oleh banyak program, atau file sistem \ Registry (alasan sebagian untuk memerlukan kekuatan administratif untuk melakukannya). Jika beberapa tugas penghapusan instalan berjalan pada saat yang sama, itu bisa konflik. Jika Anda pernah mengalami "DLL Hell", itu akan sama. Program lain atau Windows itu sendiri dapat dibiarkan dalam keadaan tidak konsisten.

KA
sumber
Ini adalah jawaban yang paling tepat. Jika program "A" menginstal Windows DLL "X" non-inti maka program "B" memerlukannya di installer-nya, maka mungkin juga akan menjadi bagian dari uninstaller. Tetapi menghapus DLL "X" akan merusak program "A". Jadi uninstaller biasanya akan bertanya tentang DLL bersama dan file lain JIKA mereka harus dihapus. Jika dijalankan secara bersamaan, bisikan semacam ini tidak bisa berfungsi dengan baik. Terakhir, dan mungkin yang lebih penting, semua orang telah melupakan Windows Registry - yang merupakan komponen inti database-ish yang sering diperbarui dalam installer / uninstallers.
Darrell Teague
-1

Menghapus instalasi program secara bersamaan, selain memiliki masalah potensial yang disebutkan di atas, memiliki manfaat yang sangat kecil: itu tidak akan jauh lebih cepat daripada menghapus instalasi program secara berurutan. Menghapus program adalah tugas yang melibatkan disk IO. Menjalankan beberapa program yang melakukan IO tidak lebih cepat daripada menjalankannya secara berurutan (kecuali jika program diinstal pada dua disk fisik yang terpisah). Faktanya, ini cenderung lebih lambat karena dua tugas IO yang bersaing akan membuat cache disk kurang efisien dan kepala fisik disk harus melompat dari satu tempat ke tempat lain.

Niccolo M.
sumber
Ini tidak relevan sebagai jawaban. Segala sesuatu yang melibatkan disk I / O memiliki potensi untuk melambat jika Anda melakukan terlalu banyak hal sekaligus, tetapi satu-satunya hal yang benar-benar mencegah Anda dari Windows adalah menginstal secara bersamaan. Dan ada alasan bagus untuk ingin dapat melakukan pemasangan secara bersamaan (tidak) - itu akan jauh lebih mudah bagi pengguna untuk dapat mengantri banyak operasi dan membiarkan mereka semua berjalan bersama, vs harus duduk dan menunggu untuk masing-masing selesai pada gilirannya. Juga, masalah pertikaian sudah usang dengan SSD.
Andrew Medico