जवाबों:
शुद्धता की गारंटी देना बहुत जटिल होगा, जब समवर्ती स्थापनाएं होती हैं - यह मानते हुए कि वे कुछ फाइलों को साझा करते हैं। इसके लिए कुछ प्रकार के लेनदेन की आवश्यकता होगी।
इन अवधारणाओं को ट्रांसेक्शनल डेटाबेस से जाना जाता है - लेकिन विषय तुच्छ नहीं है, और आप आमतौर पर फ़ाइल सिस्टम में पूरी तरह से ट्रांसेक्शनल इन्फ्रास्ट्रक्चर नहीं पाते हैं (भले ही जर्नलिंग फ़ाइल सिस्टम उस का एक हिस्सा प्रदान करते हैं)। एक समस्या यह है, कि कई ताले एक गतिरोध का कारण बन सकते हैं - फिर आपको गतिरोध का पता लगाने की आवश्यकता होती है (या दोनों इंस्टॉलर हमेशा के लिए लटके रहेंगे), और इसका इलाज करने का एक तरीका है। डेडलॉक से बचा जा सकता है (जैसे हमेशा एक ही क्रम में फ़ाइलों को लॉक करके), लेकिन अन्य समस्याएं भी हैं:
यदि आप सभी आवश्यक फ़ाइलों को सामने बंद कर देते हैं, तो आपके पास प्रभावी रूप से आपके पास क्या है: एक इंस्टॉलर को दूसरे के समाप्त होने तक इंतजार करना होगा। यदि आप सभी आवश्यक फ़ाइलों को सामने बंद नहीं करते हैं, और जारी रखते हैं, तो आप जोखिम उठाते हैं कि "लेनदेन" विफल हो जाएगा। इसका मतलब होगा, कि इंस्टॉलर में से एक को फिर से शुरू करना होगा।
तब आपको लेनदेन के अलगाव के स्तर के बारे में सोचना पड़ सकता है - पूरी तरह से सही होने के लिए, आपके लेनदेन को "क्रमबद्ध" होना होगा - लेकिन यह आसान नहीं है, यहां तक कि कई डेटाबेस के लिए भी।
समस्याओं से निपटने के लिए वैकल्पिक रणनीतियाँ भी हो सकती हैं, जो पूर्ण अलगाव को दरकिनार करती हैं, लेकिन आमतौर पर उनकी शुद्धता को साबित करना और भी कठिन होगा।
मेरा मानना है कि समवर्ती स्थापना के साथ, हमारे पास बहुत अधिक अट्रैक्टिव पोस्ट-इंस्टॉलेशन समस्याएं होंगी - खासकर क्योंकि मुझे नहीं लगता है, एक ओएस विक्रेता (या वितरण) इसे 100% साफ करने के लिए सभी परेशानी से गुजरना होगा। इसलिए मैं इसे उपयोग नहीं करना पसंद करूंगा, भले ही यह ओएस द्वारा पेश किया गया हो।
ध्यान दें
लेकिन शायद जो आप वास्तव में चाहते हैं वह "एक ही समय में" भी स्थापित नहीं हो रहा है। शायद यह पर्याप्त होगा, यदि आप प्रतिष्ठानों को कतारबद्ध कर सकते हैं, जो तब एक के बाद एक निष्पादित होते हैं (आदर्श रूप से बीच में कोई प्रश्न पूछे बिना)। और यह वास्तव में कुछ है, कुछ अन्य ओएस (वितरण) बहुत बेहतर संभालते हैं।
यह डिज़ाइन द्वारा है, एक ही फाइल / फ़ोल्डर / रजिस्ट्री कुंजी / आदि में हेरफेर करने वाले दो प्रतिष्ठानों से बचने के लिए; यह शायद अलग-अलग तरीकों से किया जा सकता था, लेकिन Microsoft ने यह विकल्प बनाया।
आप एक बैच फ़ाइल का उपयोग करके एक के बाद एक तेजी से अनुक्रम में स्थापित करने के लिए कई MSI फ़ाइलों को किक कर सकते हैं। आप दो MSI फ़ाइलों को एक साथ इस अर्थ में नहीं चला सकते हैं कि वे दोनों एक ही समय में डिस्क पर लिखते हैं।
कारण यह है कि MSI इंस्टॉलेशन का एक भाग "लेनदेन" के रूप में चलाया जाता है - उन परिवर्तनों का एक क्रम जो या तो प्रतिबद्ध हैं या इस आधार पर वापस लुढ़के हैं कि क्या लेनदेन सूची में कार्रवाई बिना त्रुटि के पूरी हो गई है। सभी को त्रुटि के बिना पूरा करना होगा, और फिर लेनदेन के लिए प्रतिबद्ध है, अन्यथा सभी परिवर्तनों का एक पूरा रोलबैक होता है। यह इस प्रकार है कि किसी भी समय केवल एक ही लेनदेन सक्रिय हो सकता है।
तकनीकी MSI स्तर पर, केवल मानक क्रियाओं के बीच की क्रियाएं InstallExecuteSequence में InstallInitialize और InstallFinalize के बीच की क्रिया को लेन-देन के रूप में चलाया जाता है। इन क्रियाओं के बाहर कोई सिस्टम परिवर्तन नहीं होना चाहिए, लेकिन कभी-कभी MSI फ़ाइलों को अन्य अनुक्रमों में परिवर्तन करने के लिए डिज़ाइन किया जाता है।