सभी एप्लिकेशन 'पोर्टेबल' क्यों नहीं हैं?


45

मैं हाल ही में अपने विंडोज मशीन पर सामान को बहुत कम 'इंस्टॉल' करने की कोशिश कर रहा हूं (मुझे इंस्टॉलर्स से नफरत है - मुझे यह जानने की जरूरत है कि प्रोग्राम कहां सामान डालते हैं ...), इसके बजाय अनुप्रयोगों के पोर्टेबल या स्टैंडअलोन संस्करणों का उपयोग करना।

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

ऑफिस और क्रिएटिव सूट जैसे अनुप्रयोगों के लिए मुझे अभी भी बहुत लंबी स्थापना प्रक्रिया से गुजरना पड़ता है जहां एक हजार यादृच्छिक पुस्तकालय और उपकरण पूरे सिस्टम में फेंक दिए जाते हैं।

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


3
प्रश्न के उत्तर जिज्ञासु "क्यों" की व्याख्या करते हैं। हालाँकि, विस्मयादिबोधक "लेकिन क्यों" अभी भी बना हुआ है (जैसा कि "लेकिन हम सभी सिर्फ साथ क्यों नहीं कर सकते")।
dbkk101

2
मैं installers से नफरत है, भी। आपके साथ कुछ भी गलत नहीं है
निक

2
यह गलत प्रश्न लगता है। यदि आप पोर्टेबल ऐप्स का उपयोग करना चाहते हैं, तो सही प्रश्न प्रतीत होगा: "कौन से प्रोग्राम पोर्टेबल हैं?"। उदाहरण के लिए, आप सोच सकते हैं कि आपको MS Word की आवश्यकता है, जब आपको वास्तव में एक प्रोग्राम की आवश्यकता होती है जो डेटा फ़ाइलों को पढ़ और लिख सकता है। ओपन ऑफ़िस करेगा कि ... और, एमएस वर्ड के विपरीत, यह एक पोर्टेबल प्रारूप में उपलब्ध है ... मुझे एक फ्लैश ड्राइव पर इसकी एक प्रति (और एबियॉर्ड) मिली है जो अपने लैपटॉप में प्लग किए गए अपने सभी समय को खर्च करती है। काफी पोर्टेबल ऐप्स हैं। portablelinuxapps.org लिनक्स के लिए 184 प्रदान करता है, जबकि portableapps.com/apps प्रदान करता है 232 +

बिल की शेष टिप्पणी: ... विंडोज के लिए एक मेनू ऐप [यकीनन, दोनों में तुच्छ उपयोगिताओं का एक अच्छा चयन शामिल है]]। उन लोगों को चुनें जिन्हें आप चाहते हैं और उन गैर-पोर्टेबल प्रोग्रामों को जेनेटिस करें जो आप बिना कर सकते हैं ... मेरे अधिकांश ऐप यूएसबी की पर रहते हैं। यह, बहुत कम से कम, आपके HD पर फ़ाइलों के स्पेगेटी सूप को सरल करेगा।
studiohack

यह भी मुझे लगता है कि सबसे अच्छा उपकरण पोर्टेबल हैं। मैं पक्षपाती हो सकता हूं।
Vlastimil Ovčáčík

जवाबों:


35

इंस्टॉलर विकास के वर्षों का परिणाम हैं और थोड़ा सा (सरलीकृत) इतिहास यह समझने में मदद करता है कि वे ऐसा क्यों करते हैं।

अनुलिपि और व्यर्थ डिस्क स्थान को रोकने के लिए सिस्टम फ़ोल्डर में जाने वाले साझा कामगार का समर्थन करने के साथ विंडोज़ 3.1 मॉडल ने सुझाव दिया।

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

आवेदनों की सफाई नहीं होने के कारण रजिस्ट्री फुल हो गई। डीएलएल नरक एक ही साझा पुस्तकालयों के एक दूसरे को अधिलेखित करने के कई संस्करणों के परिणामस्वरूप हुआ।

.NET ने app.config का कॉन्सेप्ट पेश किया (लगभग ini files mark 2, इस बार थोड़ा और स्ट्रक्चर सेव करने वाले डेवलपर्स ने मैनुअल पार्सर लिखते हुए समय बर्बाद किया)। DLL नर्क को रोकने के प्रयास में GAC को संस्करण साझा असेंबली में पेश किया गया था।

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

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

.. और इससे पहले कि आप उपयोगकर्ता खातों को कॉन्फ़िगर करें, और सेटअप करें और सुरक्षा अनुमतियाँ सुनिश्चित करें, और अपडेट डाउनलोड करें, और विंडोज़ सेवाएं स्थापित करें ...

xcopy "सरल मामला" है और निश्चित रूप से सब कुछ के लिए सबसे अच्छा फिट नहीं है।


1
अच्छा, सरल व्याख्या!
एलेक्स

7
इंस्टॉलरों के लिए एक और बड़ा कारण (विशेषकर कार्यालय की तरह) यह है कि कोई भी उपयोगकर्ता एक ही सिस्टम पर किसी अन्य उपयोगकर्ता को प्रभावित करने में सक्षम नहीं होना चाहिए, अगर वे एक व्यवस्थापक नहीं हैं। Office 2007 में लगभग 500MB वजन के साथ, यदि कोई उपयोगकर्ता इसका उपयोग करना चाहता है, तो उनके पास अपनी स्थानीय प्रति होनी चाहिए। यह एक ही सिस्टम पर 3 उपयोगकर्ताओं के लिए 1.5GB होगा! Google Chrome आपके स्थानीय उपयोगकर्ता निर्देशिका में स्थापित होता है, इसलिए यदि आपके पास 10 उपयोगकर्ता हैं, जिनके पास Chrome है, तो 10 अलग-अलग संस्करण हैं जिन्हें अद्यतन और रखरखाव किया जाना है। जाहिर है कि एक केंद्रीय प्रतिनियोजन बनाम प्रति उपयोगकर्ता स्थापित करने के लिए पेशेवरों और विपक्ष हैं।
जोशुआ

1
फ़ोटोशॉप (कम से कम प्री-CS4) जैसे कुछ एप्लिकेशन, बस कॉपी किए जा सकते हैं और जब शुरू किए जाते हैं - उपयोगकर्ता कॉन्फ़िगरेशन स्टोर और आवश्यक फाइलें बनाएंगे। अधिकांश .NET अनुप्रयोग डिज़ाइन द्वारा पोर्टेबल होते हैं लेकिन, एंड्यूज़र्स अगले अगले इंस्टॉलर की अपेक्षा करते हैं - बहुत से लोग जो यह भी नहीं जानते हैं कि फ़ाइल सिस्टम क्या है।
ओस्कर डुवॉर्न

यह भी ध्यान दिया जा सकता है कि भले ही आवेदन पत्र कर रहे हैं मतलब विभाजन सेटिंग्स / पुस्तकालयों / विभिन्न स्थानों में बारीकियों को, यह एक अच्छी तरह से फैल कस्टम नहीं है। मैं अक्सर अपने प्रोग्राम निर्देशिकाओं में फ़ाइलों में संग्रहीत विभिन्न अनुप्रयोगों के लिए सेटिंग्स ढूंढता हूं, और बहुत बार पुस्तकालयों को साझा किया जा सकता है जो प्रोग्राम डायरेक्टरी में स्टेटिक रूप से जुड़े हुए हैं। चूंकि प्रोग्रामर के लिए चीजों को एक तरह से या दूसरे तरीके से करने का कोई वास्तविक लाभ नहीं है, इसलिए नियमों का पालन करने का प्रोत्साहन कमजोर है और जंगली पश्चिम अनुप्रयोग विकास होता है :-)। इसके अलावा, मुझे लगता है कि परंपरा मजबूत है।
डैनियल एंडरसन

GAC, DLL नर्क का दूसरा आगमन है। अच्छी अवधारणा है, लेकिन वास्तविक जीवन में आप भ्रम के साथ समाप्त होते हैं क्योंकि विभिन्न निष्पादनयोग्य एक ही फ़ाइल के विभिन्न संस्करणों के साथ बाँधते हैं, और उन फ़ाइलों के कुछ संस्करणों में सुरक्षा दोष हो सकते हैं। यदि आपको एक सुरक्षित वातावरण की आवश्यकता है, तो इससे निपटने के लिए यह एक कठिन गड़बड़ है। अब आपको वास्तव में उसी सुरक्षा छेद को पैच करने के लिए एक ही फ़ाइल के विभिन्न संस्करणों को पैच करना होगा। हुर्रे! यह ध्यान दिया जाना चाहिए कि नीतियां और अनिवार्य पुनर्निर्देशन मदद कर सकते हैं, लेकिन यह कहना है कि एक बैंड सहायता खुले घावों के खिलाफ मदद करती है।
स्टीन Steस्मुल

12

XCOPY तैनाती के रूप में माइक्रोसॉफ्ट द्वारा घोषणा की गई थी एक जोड़ी साल पहले भविष्य के रास्ते। अब तक कुछ भी नहीं :)

इस बीच, आपको PortableApps.com प्लेटफॉर्म में रुचि हो सकती है।


7

महान सवाल, मैंने कुछ समय पहले स्टैक ओवरफ्लो पर संबंधित प्रश्न पूछा था।

उत्तर अक्सर "ऐसा लगता है क्योंकि हमने इसे अतीत में किया है"। क्षमा करें, लेकिन यह मेरे साथ नहीं धोता है।

कुछ अन्य लोगों ने कहा है कि रजिस्ट्री का मुख्य कारण है। यदि आप डिवाइस ड्राइवर या कुछ अन्य COM घटक आदि के बारे में बात कर रहे हैं, तो हाँ यह आवश्यक हो सकता है, लेकिन GUI अनुप्रयोगों जैसे वर्ड प्रोसेसर या स्प्रेडशीट के लिए नहीं।

ऐसा एप्लिकेशन लिखना संभव है जो या तो आवश्यक रजिस्ट्री सेटिंग्स के लिए स्टार्ट-अप पर जांच करता है, और उपयोगकर्ता को उनके लिए संकेत देता है / चूक का उपयोग करता है। या, वर्तमान में जितने भी प्रोटेक्टिव ऐप्स हैं, jst यूजर को यह बता देता है कि OS इंटीग्रेशन वर्तमान में सीमित है क्योंकि आप पोर्टेबल मोड में चल रहे हैं।

इंस्टॉलरों में अक्सर यह भी बहुत "ज्ञान" होता है कि आवेदन कैसे काम करता है। फिर जब एप्लिकेशन बदलता है, तो आपको अक्सर इंस्टॉलर को भी अपडेट करना होगा। यह बग / समस्याओं का एक क्लासिक कारण है जो मैंने अपने समय प्रोग्रामिंग में देखा है।

यह एक आकार फिट के सभी दृष्टिकोण है।


6

सरल और कुंद जवाब: यह बस एक सवाल है कि किसका नियंत्रण है। आजकल अधिकांश सॉफ्टवेयर कॉर्पोरेट दिग्गजों द्वारा कॉर्पोरेट या संस्थागत वातावरण के लिए डिज़ाइन किए जाते हैं, जहाँ उपयोगकर्ताओं को बताया जाता है कि वे अपने कंप्यूटर को यह बताने के बजाय क्या करें कि उनके लिए क्या करना है।

आपका प्रश्न अत्यंत महत्वपूर्ण है, क्योंकि यह व्यक्तिगत अधिकारों और स्वतंत्रता के बारे में एक मौलिक प्रश्न उठाता है, जो पुराने समाजों में अत्याचारियों द्वारा नहीं, बल्कि कॉर्पोरेट लालच और कई को नियंत्रित करने के लिए कुछ की आवश्यकता के कारण अधिक से अधिक मिटता जा रहा है।

तथ्य के रूप में, हम यह भूल गए हैं कि ठीक वही लोग जो आईबीएम जैसे दिग्गजों के अत्याचार को कम करते थे, वे इस दिन और उम्र के आईबीएम बन गए हैं ... बस Microsoft, Apple की व्यावसायिक प्रथाओं को करीब से देखें और एडोब ने कुछ का नाम दिया और मुझे एक सीधे चेहरे के साथ बताया कि उनके प्रतिबंधात्मक लाइसेंस आईबीएम की व्यावसायिक प्रथाओं की तुलना में अधिक सौम्य हैं, वही आईबीएम जिन्होंने अपने खुलेपन से वास्तव में व्यक्तिगत कंप्यूटिंग क्रांति का मार्ग प्रशस्त किया ...

मैं वर्षों से कई स्व निहित, पोर्टेबल ऐप्स का उपयोग कर रहा हूं और अपवाद के बिना वे सबसे प्रभावी, सबसे तेज़ और सबसे छोटा साबित हो रहा है पदचिह्न और संसाधनों के मामले में और अंतिम लेकिन कम से कम, न केवल वे अपने ब्लोटवेयर से बेहतर हैं समकक्ष, लेकिन ज्यादातर समय, वे स्वतंत्र हैं।

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


5

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


ठीक ठीक। ओएस एक निश्चित स्थान के बिना लोड करने के लिए EXE या DLL कैसे पा सकता है? "सेट oExcelApp = CreateObject (" EXCEL.APPLICATION ")" को किसी तरह काम करने की आवश्यकता है।
ज़ैन लिंक्स

4

ज्यादातर विंडोज़ रजिस्ट्री के कारण - भले ही आपके प्रोग्राम एक निश्चित निर्देशिका में हों, लेकिन सेटिंग्स को अक्सर रजिस्ट्री में संग्रहीत किया जाता है।

यह इसलिए भी हो सकता है क्योंकि प्रोग्राम आपके कंप्यूटर पर इंस्टॉल डायरेक्टरी (उदाहरण के लिए सिस्टम 32) के अलावा अन्य निर्देशिकाओं में फाइलें डालता है।


3

Xcopy / पोर्टेबल इंस्टॉलेशन प्रकार पर इंस्टॉल करने वालों के लिए एक बड़ा लाभ स्वयं-मरम्मत है।

एक ऐप जो विंडोज इंस्टालर सिस्टम का सही इस्तेमाल करता है, उसमें आपके मशीन पर विंडोज इंस्टालर डेटाबेस में सेव की गई सभी तरह की जानकारी होगी, साथ ही अक्सर सेटअप फाइल्स के महत्वपूर्ण हिस्सों का कैश भी होगा।

यदि एप्लिकेशन किसी कारण से टूट जाता है (कुछ और फ़ाइल को हटा / बदल देता है, तो रजिस्ट्री दूषित हो जाती है, डिस्क की समस्या, उपयोगकर्ता शॉर्टकट आदि को हटा देता है) तो यदि इसका "विज्ञापित शॉर्टकट" इंस्टॉलर वास्तव में कुंजी फ़ाइलों और कुंजियों की जांच करता है, तो यह हर बार शुरू होता है और यदि वे मौजूद नहीं हैं तो रिप्लेसमेंट, या आप प्रोग्राम जोड़ें / निकालें और ऐप पर मरम्मत पर क्लिक कर सकते हैं।


एडोब रीडर डेस्कटॉप आइकन को पढ़ते समय केवल एक ही चीज मेरे बारे में क्यों सोच सकती है? यह इतना
पागलपनपूर्ण

2

मुझे लगता है कि यह आंशिक रूप से बड़ी मात्रा में cruft विंडोज़ ऐप्स की आवश्यकता है। उदाहरण के लिए, रजिस्ट्री कुंजी, उपयोगकर्ता डेटा (/ उपयोगकर्ता // AppData)। शायद OSX सिर्फ इस बेहतर / अलग तरीके से संभालता है।

फिर फिर से ऐसे ऐप्स बनाना असंभव नहीं है जिन्हें आप केवल एक संग्रह से निकाल सकते हैं - मैं हमेशा खुश रहता हूं जब यह मामला होता है।


2

.Net फ्रेमवर्क इस प्रकार की कार्यक्षमता को सक्षम करने के लिए मंच है, और ज्यादातर इंस्टॉलर का उपयोग सिर्फ इसलिए किया जाता है क्योंकि यह सामान्य उपयोगकर्ताओं के लिए उपयोग किया जाता है। मैक यूजर्स का उपयोग एप्लिकेशन फोल्डर में फाइल कॉपी करने के लिए किया जाता है।

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


2

कुछ कार्यक्रमों के लिए यह आवश्यक है कि इंस्टॉल स्थान रजिस्ट्री में हो, अन्य लोगों के कार्यक्रम में उनके स्थान हार्ड-कोडित हो सकते हैं (यह perl.exe के लिए मामला था)।

मूल रूप से मुख्य कारण प्रोग्रामर हैं जिन्होंने आसान तरीके से काम लिया, और कार्यक्रमों में कुछ को या तो रजिस्ट्री कुंजी, या वास्तविक हार्ड-कोडेड रास्तों में हार्ड-कोड किया गया।


2

कई विंडोज अनुप्रयोगों को सिस्टम वातावरण या सेवाओं का उपयोग करना चाहिए, जैसे कि SQL सर्वर, IIS, WMI, सुरक्षा डोमेन, सक्रिय निर्देशिका और कई अन्य। एक विशिष्ट उपयोगकर्ता को पता नहीं हो सकता है कि उन्हें कैसे कॉन्फ़िगर किया जाए, या उनके पास भी पहुंच न हो।

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

dbkk101 पूछता है कि विंडोज ऐप्स "सभी सिर्फ साथ नहीं ले सकते"। वे कर सकते हैं, कि क्या installers के लिए कर रहे हैं।


2

कुछ कार्यक्रमों के साथ, स्थापना मूर्खतापूर्ण है, लेकिन "प्रोग्राम निर्देशिका में एक फ़ाइल को खींचने" की तुलना में बहुत अधिक है।

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

फिर साझा फ़ाइलें हैं - यह लिनक्स दुनिया में विशेष रूप से सच है हालांकि विंडोज आईएमओ में इतना नहीं है।

सबसे महत्वपूर्ण बात यह है कि मशीन के लिए कुछ कार्यक्रमों को कॉन्फ़िगर करने की आवश्यकता है और कुछ (मैं कम से कम अनुमान लगाता हूं) मशीन के आधार पर अनुकूलन करने का प्रयास करता हूं या कम से कम यह कहता है कि एडोब के संवाद से मुझे विश्वास होता है।

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

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