2009-08-11 10 views
5

यह कुछ हद तक this question से संबंधित है। मान लें कि मेरे पास एक पैकेज है जिसे मैं आरपीएम के माध्यम से तैनात करना चाहता हूं क्योंकि मुझे पोस्ट-इंस्टॉलेशन पर कुछ फाइल कॉपी करने की ज़रूरत है और मेरे पास कुछ गैर-पायथन निर्भरताएं हैं जिन्हें मैं घोषित करना चाहता हूं। लेकिन आइए यह भी कहें कि मेरे पास कुछ पायथन निर्भरताएं हैं जो पीईपीआई में आसानी से उपलब्ध हैं। ऐसा लगता है जैसे मैं सिर्फ अंडे के रूप में पैकेज करता हूं, python setup.py install के बाद एक अनजिप स्वचालित रूप से मेरी पायथन निर्भरताओं का ख्याल रखेगा, किसी भी पोस्ट-इंस्टॉलेशन कार्यक्षमता और गैर-पायथन निर्भरताओं को खोने के खर्च पर।पोस्ट-इंस्टाल और पायथन निर्भरताओं के साथ setuptools का उपयोग कर

क्या ऐसा करने का कोई अनुशंसित तरीका है? मुझे लगता है कि मैं इसे प्री-इंस्टाल स्क्रिप्ट में निर्दिष्ट कर सकता हूं, लेकिन फिर मुझे जानकारी डुप्लिकेशंस मिल रहा है और वास्तव में कुछ भी के लिए setuptools का उपयोग नहीं कर रहा है।

(मेरे मौजूदा सेटअप setup, जो python setup.py bdist_egg और unzip my_package.egg; python my_package/setup.py install के लिए काम करता है, लेकिन python setup.py bdist_rpm --post-install post-install.sh और rpm --install my_package.rpm के लिए नहीं करने के लिए install_requires = ['dependency_name'] गुजर शामिल है।)

उत्तर

7

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

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

+0

जब तक कि मैं एक संबंधित अनइंस्टॉल स्क्रिप्ट नहीं लिखता, जो कि अधिक डुप्लिकेशंस है। अच्छा निर्णय। –

संबंधित मुद्दे