2011-11-24 12 views
10

मैं एक RPM पैकेज कहते हैं, में अपने आवेदन, myapp.rpm पैक है। इस एप्लिकेशन को इंस्टॉल करते समय, मैं उपयोगकर्ता से कुछ इनपुट प्राप्त करना चाहता हूं (इनपुट के लिए एक उदाहरण हो सकता है - पर्यावरण जहां ऐप इंस्टॉल हो रहा है - "dev", "qa", "uat", "prod")। इनपुट के आधार पर, एप्लिकेशन उपयुक्त फाइलों को स्थापित करेगा। आवेदन स्थापित करते समय पैरामीटर पास करने का कोई तरीका है?आरपीएम - स्थापित समय मानकों

पी.एस .: सम्भावित समाधान प्रत्येक परिवेश के लिए एक RPM पैकेज बनाने के लिए हो सकता है। हालांकि, हमारे परिदृश्य में, यह एक व्यवहार्य विकल्प नहीं है क्योंकि हमारे पास लगभग 20 वातावरण हैं और हम एक ही आवेदन के लिए 20 अलग-अलग पैकेज नहीं चाहते हैं।

उत्तर

16

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

भी अंतिम-उपयोगकर्ता बातचीत के रूप में किसी प्रकार की गिनती की एक पैरामीटर गुजर। मुझे लगता है कि आप जो चाहते हैं वह है कि आप अपनी पूर्व या इंस्टॉल स्क्रिप्ट्स को किसी भी तरह पर्यावरण का पता लगा सकें, हो सकता है कि फ़ाइल कहीं से वे जांच कर सकें। मैं यह भी बताऊंगा कि आरपीएम उपयोगकर्ता के परिप्रेक्ष्य से, * -qa.rpm नामक पैकेज होने से कुछ यादृच्छिक पैरामीटर गुजरने से बहुत अधिक सहज ज्ञान युक्त होता है।

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

यह एक निर्माण प्रणाली है कि 20 संकुल है कि सभी ज्यादातर समान हैं थूक से बाहर कर सकते हैं बनाने के लिए मुश्किल नहीं है। मैंने इसे एक टेम्पलेट-आईएसएच स्पेक फ़ाइल के साथ किया है और कुछ स्क्रिप्ट्स द्वारा बनाई गई हैं जो विभिन्न spec फ़ाइलों को बनाएगी और RPM का निर्माण करेगी। विनिर्देशों को जानने के बिना, ऐसा लगता है कि आपके पास एक मूल पैकेज भी हो सकता है कि सभी 20+ पर्यावरण संकुल इस पर निर्भर करते हैं, फिर पर्यावरण विशिष्ट संकुल जो भी उनके लक्षित वातावरण के लिए विशिष्ट हैं स्थापित करते हैं।

+0

उत्तर के लिए धन्यवाद। उपयोगकर्ता को कुछ दर्ज करने के लिए प्रेरित करने के रूप में मुझे वास्तव में किसी उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं होती है। जो मैं खोज रहा हूं वह अधिष्ठापन कमांड के साथ पैरामीटर को पास करने का एक तरीका है। उदाहरण के लिए, ** rpm -i myapp.rpm -dev **। उचित मूल्य वाले फ़ाइल को पॉप्युलेट करने का एक तरीका है, ताकि आरपीएम इंस्टॉलर इसे पढ़ सके और आवश्यक मान पुनर्प्राप्त कर सके। मैं उससे ज्यादा सुंदर दिख रहा हूं। –

+1

मैं उस उपयोगकर्ता की बातचीत के रूप में गिनता हूं।मुझे लगता है कि आप जो चाहते हैं वह है कि आप अपनी पूर्व या इंस्टॉल स्क्रिप्ट्स को किसी भी तरह पर्यावरण का पता लगा सकें, हो सकता है कि फ़ाइल कहीं से वे जांच कर सकें। मैं यह भी बताऊंगा कि आरपीएम उपयोगकर्ता के परिप्रेक्ष्य से, * -qa.rpm नामक पैकेज होने से कुछ यादृच्छिक पैरामीटर गुजरने से बहुत अधिक अंतर्ज्ञानी होता है। – kbyrd

+0

मैंने ऊपर दिए गए टिप्पणी से मेरी उत्तर में जानकारी जोड़ दी। – kbyrd

3

आप को स्थानांतरित विकल्प इस्तेमाल कर सकते हैं, उदाहरण के लिए

rpm -i --relocate /env=/uat somepkg.rpm 

और अपनी स्क्रिप्ट "env" निर्देशिका में स्थित एक फ़ाइल से चर डेटा को देखने के लिए है

0

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

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