क्या आप मुझे मेरे सॉफ़्टवेयर निर्भरता मुद्दे के साथ मदद कर सकते हैं?


12

यह संकलन निर्भरता और पैकेज प्रबंधन के बारे में एक कैननिकल प्रश्न है

मेरे पास अपने * निक्स सर्वर पर पोर्ट / सॉफ़्टवेयर संकलित करने या RPM स्थापित करने से संबंधित प्रश्न है। जब मैं ऐसा करने की कोशिश करता हूं तो मुझे लापता निर्भरता के बारे में बहुत सारे संदेश मिलते हैं।

क्या सर्वर फॉल्ट समुदाय की मदद कर सकता है?

जवाबों:


10

सर्वर दोष में आपका स्वागत है। सामान्य तौर पर इस प्रकार का प्रश्न यहाँ विषय पर नहीं है। यह उम्मीद की जाती है कि अधिकांश sysadmins पहले से ही इस मुद्दे का सामना कर चुके होंगे, क्योंकि वे अपने स्वयं के कार्यस्थानों के साथ छेड़छाड़ के माध्यम से एक sysadmin बन गए थे। हालाँकि, Windows बैकग्राउंड से आने वाले sysadmins को इसका सामना नहीं करना पड़ा होगा, इसलिए यहाँ कुछ बातों पर विचार किया गया है:

अपने सर्वर पर सॉफ़्टवेयर स्थापित करने के लिए पैकेज प्रबंधक का उपयोग क्यों नहीं किया जाता है?

पैकेज प्रबंधक जैसे कि yumया आपके aptलिए इन निर्भरताओं को संभालते हैं। इसके अलावा उनका उपयोग आपके सर्वर पर सॉफ़्टवेयर के अपडेट को प्रबंधित करने के लिए भी किया जा सकता है। * Nix के अधिकांश फ्लेवर में डिफ़ॉल्ट रूप से स्थापित एक पैकेज मैनेजर होगा, खासकर VPS पर जो OS प्री-इंस्टॉल के साथ आता है। यदि आप वास्तव में इसके लिए नए हैं, तो अपनी उत्पादन प्रणाली पर इनमें से किसी एक का उपयोग करें, और अपने परीक्षण वातावरण के लिए रक्तस्रावी किनारे RPM को संकलित या स्थापित करने में रोमांच को बचाएं।

लेकिन मुझे अपने पैकेज मैनेजर में जो उपलब्ध है, उसकी तुलना में डेट पैकेज का अधिक उपयोग करने की आवश्यकता है!

अधिकांश पैकेज प्रबंधकों को विभिन्न रिपॉजिटरी का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है - आप पा सकते हैं कि एक ऐसा पैकेज है जो आपको आवश्यक पैकेज प्रदान करता है, और फिर भी आपको अपने पैकेज प्रबंधक के कार्यों का लाभ उठाने की अनुमति देता है।

मुझे जो पैकेज चाहिए वह किसी भी रिपोज या पैकेज मैनेजर के माध्यम से उपलब्ध नहीं है

उस मामले में आप शायद कर बाहर निर्भरता आंकड़ा करने की जरूरत है (या इसे चूसना और सॉफ्टवेयर का एक अधिक स्थिर / सामान्य संस्करण का उपयोग करें)। आपको संभवतः एक परीक्षण वातावरण में निम्नलिखित करना चाहिए और आपके द्वारा किए जाने वाले सावधान नोट्स को लेना चाहिए:

  • आपके द्वारा इंस्टॉल किए जा रहे सॉफ़्टवेयर के लिए दस्तावेज़ पढ़ना सुनिश्चित करें - यह संभवतः सूचीबद्ध करेगा कि आपको पहले क्या स्थापित करना है, लेकिन उस सॉफ़्टवेयर के लिए आवश्यक नहीं है ।
  • ज्यादातर मामलों में इन - चीजें हैं जो आवश्यक हैं स्थापित करने के लिए अपने पैकेज प्रबंधक का उपयोग होगा उपलब्ध हो।
  • एक बार जब आप इसे पूरा कर लेते हैं, तो इंस्टॉल करने का प्रयास करें।
  • यदि आप अभी भी गुम निर्भरता के बारे में संदेश देखते हैं, तो उन सभी पर ध्यान दें, और फिर से अपने पैकेज मैनेजर का उपयोग करके अधिक से अधिक स्थापित करने का प्रयास करें।
  • यदि एक निर्भरता नहीं मिली है, तो आपको इसे एक सबटैक पर विचार करना होगा और इसे पुनरावर्ती रूप से व्यवहार करना होगा (स्रोत टारबॉल ढूंढें, निर्भरता ढूंढें, स्थापित करें)।
  • यह एक पुनरावृत्त प्रक्रिया है।

मुझे अभी भी समस्या हो रही है!

यदि आपने उपरोक्त सभी चरणों का पालन किया है और अभी भी परेशानी हो रही है, तो आप कुछ अजीब मुद्दे पर आ सकते हैं जो अन्य सर्वर फॉल्टर्स के साथ मदद करने के लिए खुश हो सकते हैं। एक नया प्रश्न बनाएं, यह बताने के लिए कि आप किस सॉफ़्टवेयर को स्थापित करने का प्रयास कर रहे हैं, कौन सा संस्करण, और सटीक त्रुटि संदेश जो आप देख रहे हैं।

प्रमुख पैकेज प्रबंधन प्रणालियों के लिए विशिष्ट सलाह

RPM (RHEL / फेडोरा और क्लोन) और DEB (डेबियन / उबंटू और क्लोन) पैकेज प्रबंधन

  • yum whatprovides फ़ाइल नाम पैकेज को खोजने के लिए एक उत्कृष्ट तरीका है जो एक RHEL प्रकार प्रणाली पर एक विशिष्ट फ़ाइल या लाइब्रेरी प्रदान करता है।
  • ./configure && make && make installयदि संभव हो तो आँख बंद करके प्रयोग न करें ! पैकेज प्रबंधन का आविष्कार इस कारण से किया गया था कि कई परस्पर विरोधी फाइलों के अप्राप्य स्थापना के परिणामस्वरूप अजीब और अकल्पनीय गड़बड़ी को रोका जा सके।
  • कई पुस्तकालयों को दो भागों में विभाजित किया जाता है: बाइनरी (साझा वस्तुएं, उदाहरण के लिए) और विकास (हेडर)। इस प्रकार, आप दोनों आवश्यकता होगी libfooऔर libfoo-devel(या -dev) संकुल।
  • Tarballs को स्वच्छ RPM और DEBs में बदलने के लिए fpm( https://github.com/jordansissel/fpm ) के उपयोग पर विचार करें
  • यदि आप अपने स्वयं के पैकेज रोल कर रहे हैं, तो आप अपने अपडेट, परीक्षण और रखरखाव के लिए जिम्मेदार व्यक्ति हैं। यदि आपको इसके लिए कोई बुनियादी ढांचा नहीं मिला है, तो आप निश्चित रूप से बहुत अधिक लक्ष्य कर रहे हैं।

RPM के लिए फ़ाइल नाम से निर्भरता ढूँढना

http://rpmfind.net संकुल के नाम देखने के लिए एक अच्छी जगह है यदि आपको पता है कि फ़ाइल का नाम अधिष्ठापन प्रक्रिया के बारे में शिकायत कर रहा है। अलग-अलग वितरणों से पैकेजों का मिलान और मिश्रण करने की सिफारिश नहीं की जाती है, हालांकि।


मुझे लगता है कि यह एक अनुभाग प्रदान करने के लिए उपयोगी होगा जो पुस्तकालय निर्भरता के मुद्दे पर चर्चा करता है जो हल करने के लिए थोड़ा मुश्किल हो सकता है - लेकिन मुझे इसमें कम अनुभव है - योगदान करने के लिए कोई भी देखभाल?
dunxd

जिन वस्तुओं की मैं अत्यधिक अनुशंसा करता हूं, उनमें src RPM पर विवरण और कस्टम स्थानीय भंडार को कैसे बनाए रखना है। बिल्डिंग डेब्यू या आरपीएम फाइल किसी के टूलबेल्ट का हिस्सा होना चाहिए जिसे ऑफबीट पैकेज आवश्यकताओं के साथ काम करना है।
टिम ब्रिघम

आवेदन के ढेर और उनके नुकसान के विषय को छूने के लिए इसका विस्तार करने लायक हो सकता है। "अधिक अप टू डेट पैकेज" प्रश्न ने मुझे हाल ही में याद दिलाया ।
एंड्रयू बी

यह एक सामुदायिक विकी है इसलिए चीजों को जोड़ने के लिए स्वतंत्र महसूस करें, या निश्चित रूप से अपना जवाब दें :-)
dunxd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.