Gentoo में एक ही पैकेज के कई संस्करण कैसे स्थापित करें?


9

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

मुझे स्लॉट्स के बारे में पता है, लेकिन ये ईबिल्ट फाइल्स में निर्दिष्ट हैं, और मान लेते हैं कि मैं कई कारणों से किसी भी ईबिल्ट फाइल को एडिट नहीं करना चाहता।

मैं संस्थापित संस्करणों को विश्व पैकेज का हिस्सा बनाना चाहूंगा, ताकि उन्हें हमेशा की तरह पुनर्स्थापित या अनइंस्टॉल किया जा सके।

क्या एक ही पैकेज के कई संस्करण स्थापित करने का कोई तरीका है? क्या आप इसे हासिल करने के लिए कुछ पोर्टेज ट्रिक्स के बारे में जानते हैं?


स्लॉट्स किस लिए हैं यदि पैकेज को स्लेट नहीं किया गया है, तो केवल एक चीज जो मैं सोच सकता हूं, वह है निजी ओवरले बनाना और एक नया पैकेज / ईवोल्यूशन जो स्लेट किया गया है।
कीथ

@ कीथ - यह सही उत्तर है, इसे उत्तर के रूप में क्यों नहीं पोस्ट करें?
हेजमैज

@ कीथ: यदि यह वास्तव में ऐसा करने का एकमात्र तरीका है, तो इसे उत्तर के रूप में पोस्ट करें और मैं इसे सहर्ष स्वीकार करूंगा।
लॉरेंट पीरिन

जवाबों:


9

स्लॉट्स किस लिए हैं यदि पैकेज को स्लेट नहीं किया गया है, तो केवल एक चीज जो मैं सोच सकता हूं, वह है निजी ओवरले बनाना और एक नया पैकेज / ईवोल्यूशन जो स्लेट किया गया है।


2
स्लॉट्स का उपयोग करने के लिए एक व्यावहारिक तरीके की ओर एक छोटा सा संकेत न्यूबॉब्स की मदद करेगा :)
स्टीफनो

1

मुझे लगता है कि सिद्धांत में आप कुछ मूर्खतापूर्ण कर सकते हैं जैसे:

$ ROOT=~/package-1.0 emerge =package-1

लेकिन मूल रूप से सभी गैर-उपरिशायी सामान कुछ अतिरिक्त सीमाओं और आवश्यकताओं के अधीन है, जिसके बारे में अधिक जानकारी नहीं है।


1

आप क्या प्रयास कर सकते हैं (मुझे यकीन नहीं है कि यह उम्मीद के /etc/portage/envमुताबिक काम करता है) विशेष पैकेज संस्करणों के स्लॉट को सेट करने के लिए उपयोग करना है। यह मेटाडेटा कैशिंग के कारण काम नहीं कर सकता है। यहां तक ​​कि अगर यह काम करता है यह एक थक्का है और अप्रत्याशित व्यवहार हो सकता है। हमेशा की तरह, अगर यह टूट जाता है, तो आपको टुकड़े रखने होंगे।


1

यह एक पुराना प्रश्न है, लेकिन अभी भी मान्य है, और किसी ने भी निम्नलिखित सरल दृष्टिकोण का प्रस्ताव नहीं दिया है:

यदि आप स्लॉट नहीं बनाना चाहते हैं, और आप जानते हैं कि फाइलें टकराती नहीं हैं, तो बस अपने स्थानीय ओवरले में एक नया पुनर्निर्माण बनाएं (स्थानीय ओवरले को मेक.फॉन्फ़ में सेट करने के बाद) और इसे अलग नाम दें। शायद 'mypkg.ebuild' जैसा कुछ। ऐसा कोई कानून नहीं है जो बताता है कि पुनर्निर्माण नाम और इसे स्थापित करने वाली फ़ाइलों को समान नाम साझा करना है। पोर्टेज की pkg.ebuild फाइल को /usr/local/portage/app-class/mypkg-newversion.ebuild पर कॉपी करें, नए संस्करण के लिए आवश्यक बदलाव करें, इसे बनाएं और इसे उभरें।

ध्यान रखें कि आप स्रोतों को लाते समय कुछ पूर्वनिर्धारित चर नामों ($ {P} et al) का उपयोग नहीं कर पाएंगे।


0

एक और संभावित बात का पता लगाने के लिए Gentoo उपसर्ग है

यदि आप "वैकल्पिक" पैकेज प्रदान करने के लिए जेंटू के 2 पारिस्थितिक तंत्र को बनाए रखने में कोई आपत्ति नहीं करते हैं तो यह एक व्यवहार्य विकल्प हो सकता है।

यह अनिवार्य रूप से किसी दिए गए प्रोजेक्ट स्कोप के लिए "सब-स्पेस" बना रहा है, और फिर उस प्रॉजेक्ट स्कोप में जेंटू का अलग-अलग उपयोग कर रहा है।

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