मैं सॉफ्टवेयर स्थापित करने की कोशिश कर रहा हूं जो CentOS 4.7 पर बनाया गया है। क्या आपको पता है कि यह उबंटू में भी चलेगा? मैंने पढ़ा कि CentOS 100% बाइनरी संगत है। क्या उबंटू के सबसे हाल के संस्करण के लिए भी यही सच है?
मैं सॉफ्टवेयर स्थापित करने की कोशिश कर रहा हूं जो CentOS 4.7 पर बनाया गया है। क्या आपको पता है कि यह उबंटू में भी चलेगा? मैंने पढ़ा कि CentOS 100% बाइनरी संगत है। क्या उबंटू के सबसे हाल के संस्करण के लिए भी यही सच है?
जवाबों:
लिनक्स मानक बेस (एलएसबी) बायनेरिज़ एलएसबी का समर्थन करने वाले डिस्ट्रोस के बीच संगत माना जाता है। CentOS में LSB सपोर्ट है। एलएसबी समर्थन उबंटू में भी उपलब्ध है, लेकिन मुझे नहीं पता कि प्रासंगिक एलएसबी-पैकेज डिफ़ॉल्ट रूप से स्थापित हैं या नहीं। यदि कोई एप्लिकेशन बाइनरी संगत है तो परीक्षण करना संभव है ।
ध्यान दें कि LSB विवादास्पद है, दोनों ही मानक और चाहे / कितना प्रभाव पड़ा हो।
लिनक्स वितरण के लिए संकलित एक निष्पादन योग्य अन्य वितरण पर काम करेगा यदि अन्य वितरण में आवश्यक साझा पुस्तकालय हैं। CentOS में बहुत पुराने पुस्तकालय संस्करण हैं, इसलिए उबंटू के संस्करण बहुत हाल के हो सकते हैं; लेकिन अक्सर अगर उबंटू केवल libfoo5
और libfoo6
और आप की जरूरत libfoo3
आप पहले के एक Ubuntu रिलीज से यह हड़पने कर सकते हैं।
CentOS और Ubuntu अलग पैकेजिंग सिस्टम का उपयोग करते हैं: rpm बनाम deb। आप एक आरपीएम को एक डिबेट में बदल सकते हैं alien
। परिणामी पैकेज आपके लिए आवश्यक निर्भरता है या नहीं, इसके आधार पर इंस्टाल करने योग्य नहीं हो सकता है। आरपीएम को एक सादे संग्रह (फिर से alien
) में बदलना आसान हो सकता है और इसे अलग निर्देशिका में /opt
या उसके नीचे अनपैक कर सकते हैं /usr/local
।
यदि प्रोग्राम निर्भरता की सूची के साथ नहीं आता है, तो आप ldd /path/to/binary
यह देखने के लिए दौड़ सकते हैं कि इसके लिए किन पुस्तकालयों की आवश्यकता है। आप आउटपुट देखेंगे जैसे libfoo.so.4 => not found
कि कुछ गायब है।
alien
एक कमांड लाइन प्रोग्राम है। मुझे नहीं पता कि इसके आसपास कोई जीयूआई है या नहीं। यदि आप कमांड लाइन से अपरिचित हैं, तो मैं उबंटू के लिए एक बाइनरी पैकेज प्राप्त करने की कोशिश कर रहा हूं।
CentOS अपने वाणिज्यिक समकक्ष , RedHat Enterprise Linux के साथ "100% बाइनरी संगत" है । क्योंकि आरएचईएल एक लाइसेंस प्राप्त प्रणाली है जिसमें समर्थन अनुबंध और विभिन्न एंटरप्रीसी चीजें शामिल हैं, हर कोई इसे नहीं चलाना चाहता है। हालाँकि, एक खुले स्रोत की दुनिया में सभी विकास को साझा करना पड़ता है, इसलिए जब वे समर्थन अनुबंध, मीडिया और जो कुछ भी चार्ज करते हैं, उन्हें अभी भी स्रोत को साझा करना होगा। CentOS उस की पुनः पैकेजिंग है, जो इसे समुदाय को मुफ्त में प्रदान करता है।
इसके अलावा, फिर "100% संगतता" केवल आरएचईएल और सेंटोस के बराबर संस्करणों के बीच है । लाइब्रेरी संस्करण प्रत्येक प्रमुख रिलीज़ के साथ बदलते हैं, लेकिन चूंकि ये प्रोजेक्ट सिंक में रिलीज़ होते हैं, आप उनके बीच पैकेजों का आदान-प्रदान कर सकते हैं जब तक कि वे दोनों एक ही प्रमुख संस्करण के लिए सेटअप न हों।
डिस्ट्रोस, विशेष रूप से आरपीएम आधारित डिस्ट्रोस जैसे सेंटोस और डेबियन आधारित वाले जैसे कि उबंटू लेगियन हो सकते हैं, और एक दिया गया पैकेज उनके बीच पोर्टेबल नहीं होगा। हालांकि, समग्र प्रणालियां लगभग समान हैं, एक के लिए विकसित सॉफ्टवेयर आमतौर पर आसानी से दूसरे के लिए संकलित किया जा सकता है, इसे बस संकलित किया जाना चाहिए और थोड़ा अलग तरीके से पैक किया जाना चाहिए। यदि आप सभी सही लाइब्रेरी संस्करणों में खींचने की परवाह करते हैं, तो एक से बायनेरिज़ वास्तव में दूसरे पर काम करेंगे। देखें गिल्स का जवाब ।
CentOS दीर्घकालिक स्थिर है इसलिए इसमें पुराने पुस्तकालय हैं जिन्हें नए सिस्टम पर संकलित बायनेरिज़ के साथ लिंक नहीं किया जाएगा। CentOS rpm पैकेज मैनेजर का उपयोग करता है, और उबंटू डेबियन एपेट का उपयोग करता है। इसलिए पैकेज भी संगत नहीं हैं।
आम तौर पर, यदि आप इसे CentOS पर चाहते हैं और यह पहले से ही नहीं है, तो आपको स्रोत से RPM, किसी अन्य CentOS मशीन पर बनाना होगा।