RedHat: RPM को बनाने के लिए एक प्रकार के नकली वातावरण में संकुल को स्थापित करना संभव है


10

क्या कोई ऐसा उपकरण है जो RPM की निर्भरता को एक पृथक वातावरण में स्थापित करने की अनुमति देता है। मैं सिस्टम पर विश्व स्तर पर इस तरह की निर्भरताएं स्थापित नहीं करूंगा और मैं ऐसा नहीं कर पा रहा हूं क्योंकि मेरे पास रूट विशेषाधिकार नहीं हैं।

कारण

मैं एक पैकेज बनाना चाहता हूं जो बी के नए संस्करण पर निर्भर करता है (जो सिस्टम पर विश्व स्तर पर स्थापित नहीं किया जा सकता है)।

मैं के नए संस्करण का निर्माण करना चाहते बी और निर्माण उपकरण स्थापित करते हैं बी 'एस -develएक अलग वातावरण में यह के निर्माण के लिए सभी आवश्यक फ़ाइलें प्रदान करने के लिए एक

समाधान

  • क्या ऐसा करने के लिए कोई उपकरण हैं?
  • यदि नहीं, तो कहने के साथ ऐसा करने के लिए मुझे क्या ध्यान रखना चाहिए chroot?
  • क्या यह एक बुरा अभ्यास होगा?

जवाबों:


8

हां, टूल को कॉल किया गया है mockऔर यह EPEL में है।

विशिष्ट उपयोग:

rpmbuild -bs mypackage.spec
mock -r epel-6-x86_64 mypackage-0.1-1.src.rpm

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

आप फ़ाइलों /etc/mockको अपने स्वयं के पैकेज, निजी रेपो इत्यादि में खींचने के लिए संशोधित कर सकते हैं , या mockमैन्युअल रूप से चिरोट वातावरण में पैकेज कैसे जोड़ें, इसकी जानकारी के लिए डॉक्स की जांच करें।

ध्यान दें कि mockउपयोग करने की अनुमति के लिए उपयोगकर्ताओं को समूह में जोड़ा जाना चाहिए mock

संयोग से नहीं, kojiRed Hat का उपयोग mockकरने वाला बिल्ड सर्वर प्रत्येक व्यक्तिगत पैकेज बनाने के लिए कॉल करता है । यदि आपको हर समय बहुत सारे पैकेजों का निर्माण करना है , तो यह एक kojiबिल्ड सर्वर स्थापित करने के लायक हो सकता है ।


धन्यवाद माइकल। यह बहुत अच्छा लगता है मुझे खुशी है कि मेरा सवाल उतना मूर्ख नहीं था जितना मैंने सोचा था। ;)
कोशिश-कैच-अंततः

3

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

  1. अपने डेस्कटॉप / लैपटॉप पर वर्चुअलबॉक्स या समान टूल इंस्टॉल करें
  2. उत्पादन में आपके द्वारा उपयोग किए जाने वाले OS के 32/64 VMs बनाएं
  3. आमतौर पर नकली, rpmbuild, आदि उपकरण स्थापित करें
  4. पैकेज के लिए आरपीएम बनाएं और आपके वीएम पर दोनों आर्क के लिए कोई अतिरिक्त डिपो
  5. अपने सर्वर पर वितरण के लिए आंतरिक रेपो में RPM का परीक्षण करने के बाद
  6. यह सुनिश्चित करने के लिए फिर से परीक्षण करें कि उचित निर्भरता में खींच लिया जा रहा है
  7. अपने कॉन्फ़िगरेशन प्रबंधन के माध्यम से रिलीज़ करें।

यह काम करेगा। यह नकली का उपयोग करने से बेहतर कैसे है? मुझे लगता है कि मज़ाक करना आसान होगा, लेकिन मुझे संदेह है कि या तो वैसे ही बहुत कुछ हो रहा है।
एमोरी

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

बहुत बढ़िया बिंदु। मैं उस पर विचार करने में विफल रहा। इसे ध्यान में रखते हुए, मुझे लगता है कि यह सही उत्तर है।
एमोरी

@ आपकी प्रतिक्रिया के आधार पर मैंने स्पष्ट किया कि मुझे क्यों लगता है कि वीएम का निर्माण बेहतर समाधान है जो मुझे लगता है कि बेहतर उत्तर है। मुझे धन्यवाद देने के लिए। :-)
रामिन

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

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