होमब्रे और केग-केवल निर्भरता को समझें


120

मैंने हाल ही में होमब्रे का उपयोग करना शुरू किया है, और मैं थोड़ा उलझन में हूं कि क्या होता है जब मैं अपने सिस्टम पर कुछ काढ़ा करता हूं, लेकिन इसकी पीसा निर्भरताएं केग-केवल हैं, जिसका अर्थ है कि वे नीचे से जुड़े हुए हैं /usr/local

उदाहरण के लिए, मैं vips (एक इमेज प्रोसेसिंग लाइब्रेरी) स्थापित कर रहा हूं। इसकी कई निर्भरताओं में से एक पिक्समैन है। पिक्समैन को केग-केवल के रूप में स्थापित किया गया है क्योंकि जाहिरा तौर पर मैक ओएसएक्स (इस मामले में हिम तेंदुआ) पहले से ही इसके साथ जहाज (या इसका एक संस्करण) है।

इसका मतलब यह है कि vips Pixman के सिस्टम संस्करण का उपयोग करेगा? यदि ऐसा है, तो निर्भरता संस्करण के बजाय सिस्टम संस्करण का उपयोग करने से संबंधित संभावित संस्करण समस्याएँ नहीं हैं (यह मानते हुए कि वे भिन्न हैं)?

जवाबों:


197

एक सॉफ्टवेयर होने के लिए "केवल-पीपा" का अर्थ है उस में स्थापित किया गया है /usr/local/Cellar, लेकिन नहीं जैसी जगहों में लिंक /usr/local/bin, /usr/local/libआदि इसका मतलब है कि अन्य सॉफ्टवेयर निर्भर करता है कि उस में फ़ाइलों का उपयोग करने के लिए विशेष निर्देश के साथ संकलित किया जाना है पर /usr/local/Cellar। यह स्वचालित रूप से brew installतब होता है जब कोई सूत्र केवल-निर्भरता निर्दिष्ट करता है।

केग-केवल निर्भरता को निर्दिष्ट करने वाले सूत्र यह सुनिश्चित करते हैं कि समकक्ष सिस्टम लाइब्रेरी का उपयोग नहीं किया जाता है। वीआइपीएस की आपकी स्थापना पिक्समैन के एक विशिष्ट संस्करण के खिलाफ जुड़ी हुई है /usr/local/Cellar/pixman/<version>, इसलिए यह पिक्समैन के सिस्टम संस्करण या पिक्समैन के किसी भी अन्य होमब्रेव संस्करणों से प्रभावित नहीं होता है जिन्हें आप इंस्टॉल कर सकते हैं।


9
अच्छे खर्च! आप अक्सर यह देखने के otool -L /usr/local/Cellar/vips/???/lib/*.dylibलिए जांच कर सकते हैं कि इसके खिलाफ कौन से अन्य परिवाद लिंक हैं।
सैमुअल जॉन

मेरे पास होमबॉव द्वारा स्थापित एक Opensl 1.0.2 है और मेरे मैक ओएस में LibreSSL 2.6.5 है। जब मैं करता हूं openssl version, तो यह हमेशा ओएस (LibreSSL) से दिखाता है, लेकिन जब मैं अपने अजगर को इंटरैक्टिव मोड में चलाता हूं, तो यह वास्तव में Opensl का उपयोग कर रहा है। क्या आप मुझे यह समझने में मदद कर सकते हैं कि अजगर ने सही ओपनसेल को कैसे उठाया? @echristopherson
एलेक्स

1
@ एलेक्स लाइक इक्रिस्टोफरसन ने कहा: यह (स्थापना के दौरान) के एक विशिष्ट संस्करण के खिलाफ जुड़ा हुआ हैopensslpythonब्रू फॉर्मूला पर एक नजर ; वहां आप देख सकते हैं कि openssl@1.1सूत्र के पथ (काढ़ा उपसर्ग) का उपयोग किया जाता है arg, जो बदले में उपयोग किया जाता है configure
ईंजोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.