स्टैंड-अलोन एक्ज़ीक्यूटेबल फ़ाइल और इंस्टॉल्ड एक्सेलेबल के बीच अंतर?


17

मैंने विंडोज पर देखा है, कम से कम, कि आप डायरेक्ट, स्टेटिकली-लिंक्ड निष्पादन योग्य फ़ाइल डाउनलोड कर सकते हैं और इसे सीधे लॉन्च कर सकते हैं, या अपने खुद के प्रोग्राम को लिख सकते हैं और इसे स्थापित करने के बिना इसे (यहां तक ​​कि गतिशील रूप से) निष्पादित कर सकते हैं।

यह मुझे मेरे मुख्य बिंदु पर लाता है ... स्थापना प्रक्रिया का उद्देश्य क्या है? मेरा मतलब इसके अलावा शायद विंडोज रजिस्ट्री से है । हालांकि, व्यावहारिकता और उपयोग के उद्देश्यों के लिए, एक एकल, स्वतंत्र, स्टैंड-अलोन प्रोग्राम होना संभव है, जिसे गैर-वाष्पशील भंडारण पर संग्रहीत किया जा सकता है, और जो भी डिवाइस है, उसके फाइल सिस्टम के माध्यम से एक्सेस किया जा सकता है और ओएस पर निष्पादित किया जा सकता है। तो क्या यह सब "बड़ी आसानी से किसी भी परिमाण के कई कार्यक्रमों को एक अधिष्ठापन विन्यास के माध्यम से बिना पूरी तरह से काम कर सकते हैं" इस "व्यवसाय" के साथ बड़ी बात है? यह मुझे थोड़ा सा पहेली करता है, और एक डेटाबेस या अन्य मेटाडेटा / एक्सेस कॉन्फ़िगरेशन सिस्टम से अलग करता है, यहां वास्तविक अंतर क्या है यदि बाद वाला (एक स्थापित निष्पादन योग्य) प्रदर्शन करता है और एक स्टैंड-अलोन के समान काम करता है?

क्या यहाँ एक अंतर है जो मैं एक गैर-स्थापित प्रोग्राम के साथ अनजान हूँ बनाम एक स्थापित?

पुनश्च: यह सिर्फ विंडोज ओएस पर लागू करने के लिए नहीं है, लेकिन कोई भी जो समान फ़ंक्शन को लागू करता है।

जवाबों:


16

कई कारण हैं कि प्रोग्राम स्टैंडअलोन एक्जीक्यूटिव के बजाय इंस्टॉलर के रूप में क्यों आते हैं:

फ़ाइल का आकार चिंताएं

  • कई, बड़ी निर्भरता वाले प्रोग्राम वेब-आधारित इंस्टालर को बंडल कर सकते हैं जो निर्भरता को डाउनलोड करते हैं और उन्हें एक सामान्य स्थान पर रखते हैं, ताकि उन्हें कई कार्यक्रमों द्वारा साझा किया जा सके। उदाहरण के लिए, DirectX एक बहुत बड़ी लाइब्रेरी है। यदि आपके सिस्टम का हर एक प्रोग्राम जो DirectX पर निर्भर करता है, तो इसके साथ पूरे DirectX रनटाइम को बंडल किया जाता है, यह एक अच्छे स्थान का उपभोग करेगा। यह 4 टीबी हार्ड डिस्क की उम्र में बात नहीं लगती है, लेकिन विचार करें कि एसएसडी क्षमता में काफी छोटे हैं, और वे अल्ट्राबुक पर आम उपयोग में आ रहे हैं, कुछ के साथ 64 जीबी का भंडारण भी कम है। और निश्चित रूप से डायरेक्टएक्स से अलग कई अन्य साझा पुस्तकालय हैं।

  • प्रोग्राम जो बहुत बड़े और लगातार अपडेट दोनों हैं, उन्हें कई छोटी फ़ाइलों के संग्रह के रूप में वितरित किया जाता है, एक लॉन्चर या अपडेटर प्रोग्राम के साथ, जो एक अपडेट के लिए इंटरनेट की जांच करता है, और यदि कोई अपडेट मौजूद है, तो केवल आवश्यक परिवर्तन डाउनलोड करें। यदि सभी बड़े कार्यक्रमों को एकल अखंड निष्पादन योग्य के रूप में भेज दिया जाता है, तो यह बहुत संभावना है कि पैच प्रक्रिया को पूरे निष्पादन योग्य को फिर से डाउनलोड करने की आवश्यकता होगी, क्योंकि डिस्क पर चल रहे निष्पादन योग्य फ़ाइल को पैच करना फ़ाइल लॉक के कारण असंभव है। इसके अलावा, क्योंकि updater को यह जानने की जरूरत है कि इसकी फाइलें कहां हैं, यह अक्सर रजिस्ट्री में एक प्रसिद्ध स्थान पर उस निर्देशिका पथ को संग्रहीत करता है।

उपयोगकर्ता सुविधा चिंताएं

  • विजुअल स्टूडियो और माइक्रोसॉफ्ट ऑफिस जैसे बहुत बड़े कार्यक्रमों के लिए इंस्टॉलर, उपयोगकर्ता को कुछ विशेषताओं की स्थापना को डी-सेलेक्ट करने की अनुमति देते हैं, अगर उपयोगकर्ता जानता है कि उन्हें कभी भी उनकी आवश्यकता नहीं होगी। इसके 3 संभावित लाभ हैं: यह डिस्क स्थान की खपत को कम करता है; यदि इंस्टॉलर एक वेब डाउनलोडर है तो यह डाउनलोड समय और बैंडविड्थ की खपत को कम कर सकता है; और यह उपयोगकर्ता की मशीन पर "अव्यवस्था" और "ब्लोट" को कम कर सकता है, कम प्रारंभ मेनू / डेस्कटॉप शॉर्टकट, कम स्टार्टअप प्रोग्राम आदि।

  • जटिल कार्यक्रमों के लिए इंस्टॉलर अक्सर कॉन्फ़िगरेशन विकल्पों के साथ आते हैं जो उपयोगकर्ता इंस्टॉलर के हिस्से के रूप में उपयोगकर्ता के अनुकूल ग्राफ़िकल इंटरफ़ेस का उपयोग करके सेट कर सकता है। उदाहरण के लिए देखें MySQL या SQL सर्वर इंस्टॉलर, जो आपको इंस्टॉलर पर "समाप्त" पर क्लिक करने से पहले अपने डेटाबेस सर्वर को प्राप्त करने और चलाने की पूरी प्रक्रिया के माध्यम से ले जा सकता है।

  • इंस्टॉलर्स उपयोगकर्ता को आवश्यक जानकारी के लिए संकेत दे सकते हैं, जैसे कि लाइसेंस कुंजी, जिसे केवल एक बार दर्ज करने की आवश्यकता होती है। यह कार्यक्रम के डिजाइन को सरल बना सकता है, और इसे शुरू करने के लिए चीजों की संख्या को कम करना होगा। इससे उपयोगकर्ता को यह विश्वास भी हो जाता है कि, एक बार प्रोग्राम सफलतापूर्वक स्थापित हो जाने के बाद, उसे "बस काम" करना चाहिए - प्रोग्राम के भीतर कोई और "गोच" नहीं है जो उन्हें इसका उपयोग करने से रोक सकता है।

संगतता चिंताएं

  • कुछ कार्यक्रम अन्य कार्यक्रमों के साथ संघर्ष करते हैं। यह सॉफ्टवेयर इंजीनियरिंग का एक सरल और दुर्भाग्यपूर्ण तथ्य है। एक प्रोग्राम स्थापित करने से पहले जो अन्य कार्यक्रमों के साथ संघर्षों को जानता है, अक्सर यह देखने के लिए सिस्टम की जांच करने में मदद मिलती है कि क्या कोई असंगत प्रोग्राम स्थापित है। यदि ऐसा है तो उपयोगकर्ता को सतर्क किया जा सकता है। उदाहरण के लिए, VMware और वर्चुअलबॉक्स के पुराने संस्करणों में एक बहुत ही खतरनाक असंगति है, जिसके परिणामस्वरूप ब्लू स्क्रीन ऑफ डेथ होती है, क्योंकि एक प्रोग्राम एक विशेष वर्चुअलाइजेशन प्रोसेसर निर्देश का उपयोग करने की कोशिश करेगा क्योंकि यह पहले से ही दूसरे उत्पाद द्वारा उपयोगकर्ता के लिए आरक्षित था। । यदि आप केवल इंस्टॉलर के बिना उपयोगकर्ता को अंतिम उत्पाद प्रदान करने के लिए थे, तो आपको प्रत्येक पर असंगत उत्पादों की उपस्थिति की जांच करनी होगी अपने कार्यक्रम की शुरुआत, जो कार्यक्रम के स्टार्टअप को धीमा कर सकता है।

  • प्रोग्राम में अन्य सिस्टम घटकों पर निर्भरता हो सकती है जो केवल सिस्टम-वाइड स्तर पर स्थापित की जा सकती हैं, न कि प्रति-उपयोगकर्ता स्तर पर। इन विशेष सिस्टम घटकों को स्थापित करने के लिए, आमतौर पर प्रशासनिक विशेषाधिकारों की आवश्यकता होती है, और आमतौर पर एक इंस्टॉलर चलाना पड़ता है।

उन्नत विशेषाधिकार और विशेष सेवाएं

  • कुछ प्रोग्राम अपनी कार्यक्षमता के लिए ऑपरेटिंग सिस्टम में परिवर्तन पर निर्भर करते हैं, और इन परिवर्तनों को प्रशासनिक विशेषाधिकारों की देखभाल के लिए किसी प्रकार के इंस्टॉलर के बिना आसानी से लागू नहीं किया जा सकता है। उदाहरण के लिए, ऐसे प्रोग्राम जो ड्राइवर या कर्नेल मॉड्यूल को स्थापित करते हैं, जैसे कि Wireshark, बस नहीं कर सकतेचलाया जा सकता है, क्योंकि आपको पूरी तरह से कर्नेल-मोड घटकों को अलग-अलग फ़ाइलों में शिप करना होगा। निरपेक्ष सर्वश्रेष्ठ मामले में, आपको अभी भी उपयोगकर्ता के पास एक संग्रह को मैन्युअल रूप से अनज़िप करना होगा, और फिर डिवाइस ड्राइवर के लिए किसी प्रकार का इंस्टॉलर चलाना होगा। सेवाएँ उस चीज का एक और उदाहरण है जिसे स्थापित करने के लिए प्रशासनिक विशेषाधिकारों की आवश्यकता होती है। इंस्टालर सॉफ्टवेयर विशेष रूप से एक सुरुचिपूर्ण तरीके से व्यवस्थापक अधिकार प्राप्त करने में अच्छा है, यह आवश्यक नहीं है कि मुख्य कार्यक्रम खुद ही हर बार इसे चलाने के अधिकार का अनुरोध करे (यह कई मामलों में एक अनावश्यक सुरक्षा जोखिम होगा)।

इंस्टॉलर क्यों उपयोगी हैं, इन सभी कारणों को देखते हुए, यहां दूसरी तरफ से कुछ टिप्पणियां दी गई हैं:

  • कई प्रोग्राम, यहां तक ​​कि जो केवल इंस्टॉलर के रूप में डाउनलोड के लिए उपलब्ध हैं, जिनके लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता होती है, उनके इंस्टॉलर से जबरन "अनपैक्ड" हो सकते हैं और उन्हें स्थापित किए बिना सीधे चला सकते हैं। अन्य प्रोग्राम, विशेष रूप से ओपन सोर्स वाले, पोर्टेबलएप्स द्वारा स्व-निहित निष्पादनों में वापस कर दिए जाते हैं । यह उल्लेखनीय है कि कुछ प्रोग्राम, जब उनके इंस्टॉलर से अनपैक किए गए हैं, तो कार्यक्षमता कम हो जाएगी, त्रुटियों या अन्य समस्याओं का प्रदर्शन होगा।

  • विंडोज के अलावा अन्य ऑपरेटिंग सिस्टमों पर, रूट प्राप्त किए बिना, प्रोग्रामों को केवल डाउनलोड (संकलन) करना और उन्हें नियमित रूप से चलाना लगभग हमेशा संभव होता है। पैकेज के संबंध में कुछ अपवाद हैं जो ऑपरेटिंग सिस्टम का एक मुख्य हिस्सा हैं, लेकिन अधिकांश उपयोगकर्ता अनुप्रयोगों के लिए, आप इसे पैकेज प्रबंधक का उपयोग करके सिस्टम-वाइड स्थापित किए बिना अपने घर निर्देशिका में चला सकते हैं। विंडोज एक विशेष मामला है, जिसमें विंडोज के अधिकांश डेस्कटॉप प्रोग्राम में एक इंस्टॉलर होता है, और आमतौर पर इसे किसी अन्य तरीके से स्थापित नहीं किया जा सकता है।

  • गैर-विंडोज प्लेटफॉर्म पर भी, ऐसे प्रोग्राम जिन्हें कर्नेल मॉड्यूल को लोड करने की क्षमता की आवश्यकता होती है, वे किसी प्रकार के इंस्टॉलर के साथ आते हैं, जो कर्नेल मॉड्यूल को संकलित करता है और इसे सही निर्देशिका में स्थापित करता है। आप इस घटना में एक इंस्टॉलर को देखने की उम्मीद कर सकते हैं कि प्रोग्राम एक डेमन है जिसे सिस्टम सेवा स्क्रिप्ट का उपयोग करके शुरू किया जाएगा, उदाहरण के लिए /etc/init.d। इस प्रकार का "सिकुड़ा हुआ बाइनरी" जीएनयू / लिनक्स पर एक कम सामान्य वितरण विधि है, लेकिन अधिकांश लिनक्स वितरण अभी भी इंस्टॉल किए जाने योग्य पैकेज के रूप में अधिकांश सॉफ़्टवेयर प्रदान करते हैं, जिनमें से प्रत्येक को इंस्टॉल करने के लिए रूट एक्सेस (एडमिन एक्सेस) की आवश्यकता होती है।


निष्कर्ष

आपने पूछा कि हमें इंस्टॉलरों की आवश्यकता क्यों है। संक्षिप्त जवाब यह है कि हम नहीं - कड़ाई से नहीं बोल रहे हैं, वैसे भी। उन अनुप्रयोगों के कुछ उदाहरण गायब हैं जो सिद्धांत रूप में, बिना किसी संसाधन, किसी इंस्टॉलर आदि के साथ एक एकल आत्म-निष्पादन योग्य में बंडल किए जा सकते हैं , यहां तक ​​कि कुछ भी जटिल जैसे कि VMware वर्कस्टेशन स्वचालित रूप से व्यवस्थापक विशेषाधिकार प्राप्त कर सकता है, हाइपरवाइजर कर्नेल का उपयोग लिख सकता है डिस्क पर एक फ़ाइल, और इसे प्रोग्राम स्टार्टअप पर गतिशील रूप से स्थापित करें, और अपने सभी संसाधनों (छवियों, ध्वनियों, आदि) को निष्पादन योग्य के डेटा अनुभाग के अंदर बंडल करें।

इंस्टॉलर का उपयोग करना या न करना एक विकल्प है जो सॉफ्टवेयर उत्पादकों को बनाना है। इंस्टॉलर का उपयोग करने के फायदे और नुकसान हैं। कई विक्रेताओं उनके सॉफ्टवेयर वितरित करने के लिए चुनें दोनों एक इंस्टॉलर के रूप में, और एक स्टैंडअलोन बाइनरी के रूप में, या एक ज़िप फ़ाइल कि बस पैक और चलाया जा सकता है के रूप में कम से कम। सॉफ़्टवेयर के लिए जिसे बिल्कुल इंस्टॉलर की आवश्यकता नहीं है, यह जाने के लिए एक बहुत ही व्यावहारिक तरीका है, और सभी को खुश करता है। आमतौर पर, सॉफ्टवेयर जो इंस्टॉलर के अलावा किसी अन्य रूप में जहाज नहीं करता है वह सॉफ्टवेयर है जिसमें आवश्यक विशेषाधिकारों को प्राप्त करने के लिए प्रशासकीय विशेषाधिकारों की आवश्यकता होती है, क्योंकि इंस्टॉलर एक बहुत ही सुंदर तरीका है।

निजी तौर पर, मैं अपने काम करने के लिए अपने दिन-प्रतिदिन के काम में बहुत परेशान लोगों को स्थापित करता हूं, क्योंकि कभी-कभी मैं उस प्रोग्राम को चलाना चाहता हूं जब मेरे पास उस कंप्यूटर पर प्रशासनिक अधिकार नहीं हैं जिसका मैं उपयोग कर रहा हूं। मेरे पास प्रोग्राम फ़ाइलों को निकालने के लिए इंस्टॉलर को मैन्युअल रूप से अनपैक करने का काफी अनुभव है, और फिर उन फाइलों को सही तरीके से चलाने के लिए। हालांकि, घर पर मेरे व्यक्तिगत पीसी पर, जहां मुझे हमेशा प्रशासनिक पहुंच होती है, मुझे इंस्टॉलर्स लाभकारी और सुविधाजनक लगते हैं, क्योंकि अधिकांश इंस्टॉलर मुझे उपयोगी विकल्प देते हैं, जैसे कि डेस्कटॉप शॉर्टकट बनाने के लिए, कि मुझे इसके बिना मैन्युअल रूप से करना होगा।


शानदार उत्तर, लेकिन डायरेक्टएक्स और रनटाइम के साथ आपका उद्घाटन समझ में नहीं आता है। सबसे पहले, डायरेक्टएक्स का एकमात्र रनटाइम उस भाषा के भीतर है, जो अपने आप में लिखी गई है, जो C. है

@TomTurkey उम ... क्या? यह क्यों मायने रखता है कि यह किस भाषा में लिखी गई है? निश्चित रूप से, आप किसी भी DirectX घटकों को सांख्यिकीय रूप से लिंक कर सकते हैं, जिनकी आपको सीधे अपने निष्पादन योग्य में आवश्यकता होती है, लेकिन जैसे मैंने कहा, कि फ़ाइल आकार की समस्या को प्रस्तुत करता है यदि कई प्रोग्राम बड़े पुस्तकालयों (Qt 4.x) के साथ ऐसा करना शुरू करते हैं, उदाहरण के लिए, लगभग 40 एमबी। )। कोड कहीं होना चाहिए, और आप बस यह नहीं मान सकते हैं कि आपके द्वारा आवश्यक डायरेक्टएक्स संस्करण पहले से ही सिस्टम पर स्थापित है, या आपको कोई त्रुटि मिलेगी जब कोई व्यक्ति आपके प्रोग्राम को Windows XP SP2 पर खोलता है जिसे पैच नहीं किया गया है उम्र।
२०:२०

4
ओह, मुझे लगता है कि आपने मुझे गलत समझा - मेरे जवाब में, मैं खुद डायरेक्टएक्स को स्थापित करने के बारे में बात नहीं कर रहा था ; मैं एक प्रोग्राम स्थापित करने के बारे में बात कर रहा था जो डायरेक्टएक्स पर निर्भर करता है । उस निर्भरता को संतुष्ट करने के लिए, आप या तो डायरेक्टएक्स को सीधे अपने आवेदन में संकलित कर सकते हैं, इस प्रकार व्यर्थ डिस्क स्थान की खपत को बढ़ा सकते हैं, या आप अपने इंस्टॉलर में एक छोटे ऐप को बंडल कर सकते हैं जो यह जांचता है कि क्या आपके पास उपयुक्त डायरेक्टएक्स रनटाइम स्थापित हैं, और यदि नहीं, तो उन्हें डाउनलोड करें। उन्हें एक केंद्रीकृत सिस्टम स्थान पर रखता है। डिस्क स्थान और डाउनलोड आकार के संदर्भ में उत्तरार्द्ध बहुत अधिक कुशल है।
Allquixotic

3
@allquixotic इसके अलावा, लाइसेंसिंग। कभी-कभी, एक पुस्तकालय को अपने इंस्टॉलर से स्वतंत्र पुनर्वितरण के लिए लाइसेंस नहीं दिया जा सकता है। डायरेक्टएक्स श्रेणी में आ सकता है, मुझे यकीन नहीं है। .NET फ्रेमवर्क करता है, मुझे लगता है। यह एक तकनीकी प्रतिबंध नहीं है, लेकिन एक कानूनी है। (.नेट फ्रेमवर्क में अतिरिक्त तकनीकी प्रतिबंध हैं, हालांकि यह बहुत कसकर ओएस में एकीकृत है।)
बॉब

1
BOOP । उठी हुई टिप्पणी की आवाज। मेरे सिर में।
एलक्विक्सोटिक

3

स्थापना प्रक्रिया इन वस्तुओं को मानती है:

  1. क्या आपको लाइब्रेरी (एपीआई) की आवश्यकता है, जैसे कि .net फ्रेमवर्क संस्करण, या प्रत्यक्ष एक्स।

  2. कुछ अतिरिक्त सिस्टम DLL फ़ाइलों को सिस्टम फ़ोल्डर में स्थापित करें। यदि सिस्टम फ़ोल्डर में पहले से ही ये फ़ाइलें (समान संस्करण) हैं, तो इस चरण को अनदेखा करें। इस तरह आपको एक ही DLL फ़ाइलों की कई प्रतियों की आवश्यकता नहीं है।

  3. एप्लिकेशन को जल्दी से शुरू करने में मदद करने के लिए अपने प्रारंभ मेनू या डेस्कटॉप में शॉर्टकट स्थापित करें।

  4. जैसा कि आपने कहा, रजिस्ट्री संशोधन। यह कदम वास्तव में तब किया जा सकता है जब इस कंप्यूटर में एप्लिकेशन को पहली बार निष्पादित किया जाता है, इसलिए यह अतिरिक्त महत्वपूर्ण नहीं है।

  5. बहुत महत्वपूर्ण: चाहे एक सॉफ्टवेयर बंडल करना (जैसे Google डेस्कटॉप बार या याहू-बार आपके IE में)। यह एक तरह से स्वतंत्र सॉफ्टवेयर है जो डेवलपर को राजस्व देता है। यदि आप मुफ्त सॉफ्टवेयर का उपयोग कर रहे हैं, तो इसे न भूलें।

क्योंकि हम "निष्पादन योग्य" अनुप्रयोग पर विचार कर रहे हैं, हमें उन चरणों पर चर्चा करने की आवश्यकता नहीं है जो IE ऐड-ऑन या संबंधित चीजों को स्थापित कर सकते हैं।


3

स्टैंड-अलोन प्रोग्राम की कोई बाहरी निर्भरता नहीं है।

यह केवल .exe फ़ाइल होना आवश्यक नहीं है, इसमें पुस्तकालयों और डेटा फ़ाइलों के साथ हो सकता है: संग्रह को फ़ोल्डर में अनपैक करें और निष्पादन योग्य चलाएं। यदि आप किसी संग्रह को अनपैक करते हैं, तो प्रारंभ मेनू में कोई शॉर्टकट नहीं जोड़ा जाता है, इसलिए आपको उस फ़ोल्डर में नेविगेट करना होगा जहां अनपैक्ड एप्लिकेशन स्थित है और इसे वहां से प्रारंभ करें, या मैन्युअल रूप से प्रारंभ मेनू में इसके लिए एक शॉर्टकट बनाएं। कई कंप्यूटर उपयोगकर्ताओं को यह मुश्किल लगता है।

उपयोग करने में आसान

इंस्टॉलर इंस्टॉलेशन प्रक्रिया के माध्यम से उपयोगकर्ताओं का मार्गदर्शन करता है। आप इंस्टॉलर, .exe या .msi (पूर्व गैर-उन्नत उपयोगकर्ताओं के लिए बेहतर है) डाउनलोड करें, और इसे चलाएं। यह स्थापना फ़ोल्डर को उठाता है, आमतौर पर Program Filesफाइलों की प्रतिलिपि बनाता है, स्टार्ट मेनू में शॉर्टकट बनाता है। आप कर रहे हैं: मामलों के बहुमत में आप बस क्लिक करें अगली बार कई बार।

फिर स्टार्ट मेनू पर जाएं और एप्लिकेशन को चलाएं। कुछ इंस्टॉलर इंस्टॉलेशन पूरा होने पर एप्लिकेशन को शुरू करने का विकल्प प्रदान करते हैं।

यदि एप्लिकेशन कुछ प्रकार की फ़ाइलों या दस्तावेजों को खोलता है, तो इंस्टॉलर इसे शेल के साथ पंजीकृत करता है। ताकि आप इसे खोलने के लिए फ़ाइल पर क्लिक कर सकें।

लाइसेंस समझौता

कई अनुप्रयोग, दोनों वाणिज्यिक और मुफ्त वाले, आपको उनके आवेदन का उपयोग करने से पहले लाइसेंस समझौते को स्वीकार करने की आवश्यकता होती है। स्थापना तब तक आगे नहीं बढ़ती जब तक आप स्वीकार नहीं करते कि आप लाइसेंस शर्तों से सहमत हैं। यदि आपने लाइसेंस नहीं पढ़ा है, तो भी आप इसके लिए सहमत हैं।

निर्भरता

कभी-कभी यह केवल निष्पादन योग्य फ़ाइलों की प्रतिलिपि बनाने के लिए पर्याप्त नहीं है। एप्लिकेशन अक्सर साझा किए गए घटकों या विशेष रनटाइम लाइब्रेरी का उपयोग करते हैं। उदाहरण के लिए, .Net फ्रेमवर्क रनटाइम को .Net के लिए लिखे गए एप्लिकेशन को चलाने के लिए इंस्टॉल करना पड़ता है; यहां तक ​​कि विजुअल C ++ रनटाइम, अगर यह स्टेटिक रूप से लिंक नहीं है, तो इंस्टॉल करना होगा। इंस्टॉलर सुनिश्चित करता है कि सभी आश्रित संतुष्ट हैं।

यदि किसी अनुप्रयोग में कई .exe और / या .dll फ़ाइलें हैं, तो Visual C ++ रनटाइम से डायनेमिक लिंक डिस्क स्थान को कम करता है। यदि .exe और .dll को स्टेटिक रूप से लिंक किया जाता है, तो रनटाइम को प्रत्येक फ़ाइल में दोहराया जाता है।

किसी लायब्रेरी की लाइसेंस शर्तें स्टेटिक लिंकिंग की अनुमति नहीं दे सकती हैं।

सुरक्षा

यदि रनटाइम में कोई भेद्यता पाई जाती है, तो इसे एप्लिकेशन से अलग से अपडेट किया जा सकता है। .Net और Visual C ++ रनटाइम के लिए अद्यतन Windows अद्यतन के माध्यम से स्वचालित रूप से स्थापित होते हैं।

यदि निष्पादन योग्य और पुस्तकालय सांख्यिकीय रूप से जुड़े हुए हैं, तो आवेदन विक्रेता को आवेदन को फिर से जमा करना होगा और अद्यतन संस्करण को जारी करना होगा। इसलिए साझा रनटाइम का उपयोग करने से डेवलपर्स और विक्रेताओं के लिए आवेदन रखरखाव की लागत कम हो जाती है।

स्थापित करना और Program Filesभी अधिक सुरक्षित वातावरण प्रदान करता है: प्रशासक विशेषाधिकारों के बिना वहां फ़ाइलों को संशोधित या हटाया नहीं जा सकता है।

रजिस्ट्री

कई विंडोज एप्लिकेशन रजिस्ट्री में प्रविष्टियों पर भरोसा करते हैं। यदि अनुप्रयोग COM का उपयोग करता है, तो सभी वस्तुओं को पंजीकृत होना चाहिए अन्यथा आवेदन आवश्यक वस्तु बनाने में विफल हो जाएगा और शुरू नहीं होगा।


1
साझा घटकों के लिए सुरक्षा अद्यतन के लिए +1 - मैंने अपने उत्तर में ऐसा लिखना नहीं सोचा था।
allquixotic

0

संक्षिप्त उत्तर: एक स्टैंड-अलोन exe को चलाने के लिए कंप्यूटर पर कोई लाइब्रेरी स्थापित करने की आवश्यकता नहीं होती है, और रजिस्ट्री प्रविष्टियों या अन्य घटकों की आवश्यकता नहीं होती है।

एक इंस्टॉल्ड फ़ाइल इंस्टॉलर पैकेज में एक स्टैंड-अलोन हो सकती है, लेकिन आम तौर पर इसके साथ स्थापित कई घटकों और पुस्तकालयों पर निर्भर होती है।

कई मामलों में, यूनिवर्सल एक्स्ट्रेक्टर (अनौपचारिक अद्यतन: यहां ) के माध्यम से, आप एक इंस्टॉलर की सामग्री को निकाल सकते हैं और विंडोज़ में प्रशासनिक निजीकृत के बिना एक कार्यक्रम चला सकते हैं। MSI इंस्टॉलर को लोम्सी के साथ अनपैक किया जा सकता है ।

अधिकांश अन्य ऑपरेटिंग सिस्टम में, उपयोगकर्ता-विशिष्ट 'बिन', 'लीब', और होम डायरेक्टरी में अन्य निर्देशिकाओं के माध्यम से सभी प्रोग्राम बिना रूट / प्रशासक के निजीकरण के बिना चलाए जा सकते हैं। व्यक्तिगत रूप से, मैं समय के बहुमत को स्थापित करने से घृणा करता हूं, क्योंकि जब वे मेरे पास नहीं होते हैं तो वे मेरे लिए प्रशासनिक निजी कार्यक्रमों के साथ कार्यक्रमों का उपयोग करना कठिन बनाते हैं। लेकिन वे बड़ी कंपनियों द्वारा इस तरह से पैक किए जाते हैं कि औसत अंत उपयोगकर्ता के लिए प्रक्रिया को सरल बनाया जा सके।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.