मैं पीईक्यूटी के आधार पर एक क्रॉस प्लेटफॉर्म एप्लिकेशन बनाए रखता हूं जो लिनक्स मैक और विंडोज़ पर चलता है।स्वयं अपडेटिंग py2exe/py2app एप्लिकेशन
विंडोज़ और मैक संस्करणों को py2exe और py2app का उपयोग करके वितरित किया जाता है, जो काफी बड़े बंडल (~ 40 एमबी) उत्पन्न करता है।
मैं डाउनलोड आकार को सीमित करने के लिए एक "ऑटो अपडेट" कार्यक्षमता, पैच के आधार पर जोड़ना चाहते हैं:
- एक http सर्वर पर नए संस्करणों के लिए जाँच
- पैच पिछले करने के लिए अद्यतन करने के लिए आवश्यक डाउनलोड संस्करण
- पैच सूची लागू करते हैं और अनुप्रयोग फिर से आरंभ
मैं कुछ सवाल हैं:
- विंडोज़ एप्लिकेशन को अपडेट करने का पसंदीदा तरीका क्या है क्योंकि खुली फाइलें लॉक हैं और ओवरराइट नहीं की जा सकती हैं?
- मैं पैच तैयार और लागू कैसे करूं? शायद bsdiff/pspatch का उपयोग कर रहे हैं? (मेरे ऐप के दो py2exe संस्करणों ~ 75 MB असम्पीडित पर एक diff:
[अद्यतन]
मैं bsdiff साथ पैच बनाने के लिए एक सरल वर्ग है, जो बहुत ही कुशल के रूप में अपनी साइट पर विज्ञापित है बनाया) एक 44 केबी पैच पैदा करता है! मेरे लिए काफी छोटा, मैं इस प्रारूप में रहूंगा।
कोड pyflu के 'अद्यतन' पैकेज में उपलब्ध है, जो पायथन कोड की एक छोटी लाइब्रेरी है।
ब्याज से आप कई संस्करणों/अपडेटों के साथ अद्यतनों से निपटने की योजना कैसे बनाते हैं। जैसे उपयोगकर्ता के पास 1.0 है, फिर जब तक वे इसे चलाने का प्रयास करते हैं तो वहां 10 अपडेट होते हैं? क्या आप मांग पर पैच उत्पन्न करेंगे? कैशिंग के साथ मुझे लगता है कि यह बहुत बुरा नहीं होगा, लेकिन मान लें कि आपके पास कुछ सर्वर-साइड कोड उपलब्ध है ... –
यदि उपयोगकर्ता 10 अपडेट चूक गया तो अद्यतनकर्ता नवीनतम संस्करण तक पहुंचने के लिए आवश्यक 10 पैच डाउनलोड करेगा और उन्हें लागू करेगा एक - एक करके। कोई सर्वर साइड कोड नहीं है, केवल एक सरल अपाचे सर्वर निर्देशिका सामग्री दिखा रहा है। –