होमबॉव और मैकपोर्ट्स को सह-अस्तित्व के लिए मजबूर करना?


10

मेरे पास एक MacOSX सिस्टम है जो मैं कई वर्षों से उपयोग कर रहा हूं, और इस समय के दौरान, मैंने मैकपोर्ट्स के माध्यम से काफी कुछ पैकेज स्थापित किए हैं।

मैं अब Homebrew की कोशिश करना चाहता हूं, लेकिन मैंने यहां और अन्य जगहों पर जो पढ़ा है, उससे यह स्पष्ट है कि Homebrew और Macports की डिफ़ॉल्ट स्थापना आसानी से सह-अस्तित्व में नहीं आ सकती है।

मैकपोर्ट की स्थापना रद्द करना मेरे लिए एक व्यवहार्य विकल्प नहीं है, क्योंकि मेरे दैनिक मैकओएसएक्स काम में बहुत सारे मैकपोर्ट-इंस्टॉल किए गए उपयोगिताओं का उपयोग करना शामिल है। इसके अलावा, मेरी खुद की कई, घरेलू उपयोगिताओं अब Macports के साथ अन्योन्याश्रित हैं। और अंत में, बहुत सारे निष्पादन योग्य और साझा किए गए पुस्तकालय जिन्हें मैं नियमित रूप से उपयोग करता हूं, अब / usr / लोकल के तहत इंस्टॉल किए जाते हैं, और अगर मैं उस निर्देशिका ट्री को क्लियर कर देता हूं तो मेरा सिस्टम जल्दी बेकार हो जाएगा।

तो मेरा सवाल यह है: क्या कोई भी Homebrew स्थापित करने के लिए एक वैकल्पिक तरीका के साथ आया है जो Macports के साथ सह-अस्तित्व में हो सकता है? विशेष रूप से, क्या किसी को पता चला है कि होमब्रे को डायरेक्टरी ट्री जैसे / usr / local / homebrew के बजाय / usr / लोकल का उपयोग कैसे करना है?

डॉक्स के लिए किसी भी सुझाव या संकेत के लिए अग्रिम धन्यवाद।


यदि आप बस कोशिश करना चाहते हैं, तो ओएस एक्स वर्चुअल मशीन क्यों नहीं स्थापित करें? यह ओएस एक्स 10.7 के लिए एप्पल के टीओएस के खिलाफ नहीं है और आप जो चाहें वहां प्रयोग कर सकते हैं। यहां तक कि यह एक तरह काम करता है के अगर समानांतर में दोनों का उपयोग करने के, मैं अगर चीजें तोड़ने शुरू कर दिया हैरान नहीं किया जाएगा ...
डैनियल बेक

बहुत बहुत धन्यवाद, लेकिन मैं एक ही OSX वातावरण में चल रहे दोनों पैकेज प्रबंधकों को प्राप्त करना पसंद करता हूं, अगर ऐसा करने का कोई तरीका है। ऐसा इसलिए है क्योंकि अगर मुझे Homebrew पसंद है, तो मैं धीरे-धीरे उस सिस्टम के माध्यम से पैकेजों को स्थापित करना चाहूंगा और धीरे-धीरे पुराने मैकपोर्ट-आधारित पैकेजों की स्थापना रद्द कर दूंगा। दुर्भाग्य से, यह मेरे लिए होमब्रे पर निर्णय लेने के लिए एक व्यवहार्य विकल्प नहीं है, एक में मेरे सभी विरासत मैकपोर्ट्स कोड को उड़ा देना, झपट्टा मारना, और फिर होमबॉव के माध्यम से सभी को एक और झपट्टा में बदलने के लिए संघर्ष करना।
हिप्पोमैन

जवाबों:


2

आप Homebrew को अपनी निर्देशिका का उपयोग करने के लिए कह सकते हैं, और फिर उस पथ में जोड़ सकते हैं। हालांकि एक ही उद्देश्य के लिए नहीं, इंस्टॉलेशन गाइड का यह अंश इसे बताता है:

कई प्रतिष्ठानों

जहाँ भी आप टारबॉल निकालते हैं, एक Homebrew इंस्टॉलेशन बनाएं। जिसे भी ब्रूअन कमांड कहा जाता है, जहां पैकेज स्थापित किए जाएंगे। आप इसका उपयोग कर सकते हैं जैसा कि आप फिट देखते हैं, उदाहरण के लिए ~ us / homebrew में विकास के लिए / usr / स्थानीय और tweaked सूत्रों में लिबास का एक सेट

स्रोत: https://github.com/mxcl/homebrew/wiki/installation


थैंक यू करोलोस। मैं उसी विकी पृष्ठ पर निम्नलिखित क़ानून द्वारा प्रोत्साहित नहीं किया गया हूं: "हालांकि अपने आप को एक एहसान करो और / usr / स्थानीय पर स्थापित करें ... अपने जोखिम पर एक और उपसर्ग चुनें! " लेकिन मैं इसे आज़माऊंगा और वापस रिपोर्ट करूंगा ! बाद में।
हिप्पोमैन

मैं / usr / स्थानीय / homebrew में homebrew स्थापित करने की कोशिश की है। हालाँकि, मेरे द्वारा इंस्टॉल किए जाने वाले कई पैकेज विफल हो रहे हैं। जब मैं / usr / local / homebrew / bin / brew डॉक्टर चलाता हूं, मुझे शाब्दिक रूप से दर्जनों अनपेक्षित डाइलीब, स्टैटिक लाइब्रेरी, .pc फाइलें और .la फाइलें मिलती हैं, साथ ही कुछ पैकेजों के बारे में चेतावनी / usr / लोकल इंस्टॉलेशन की आवश्यकता होती है। चूँकि अगर मैं अपनी विरासत सॉफ़्टवेयर इंस्टॉलेशन (जो कि उन "अनपेक्षित" फ़ाइलों से आ रही है) को उड़ा देने पर मेरा सिस्टम बिल्कुल नहीं चलेगा, तो ऐसा लगता है कि मेरे लिए अपने सिस्टम पर होमब्रे का इस्तेमाल करने का कोई तरीका नहीं है। ओह वेल ... (आह) ...
हिप्पोमैन

@HippoMan: क्षमा करें कि यह काम नहीं करता है। एक प्रश्न हालांकि: / usr / स्थानीय / homebrew सही ढंग से अपने रास्तों में स्थापित है? यानी PATH और (DY) LD_LIBRARY_PATH
करोलोस

@HippoMan: कौन से पैकेज फेल हो रहे हैं? मैंने बस उनमें से एक जोड़े को स्थापित करने की कोशिश की और कोई समस्या नहीं देखी (संपादन / आदि / पथ को जोड़ने के लिए / usr / स्थानीय / homebrew / बिन)।
करोलोस

हां, मेरे पास / usr / लोकल / होमब्रेव ट्री के तहत बिन और काम के लिए इंगित करने के लिए PATH और LD_LIBRARY_PATH की स्थापना सही है। विफल रहे पैकेजों में से एक gawk है, जो एविडेमक्स के लिए एक शर्त है। लेकिन मैं खरोंच से पुनः आरंभ करूंगा और एक बार और प्रयास करूंगा, यदि मैंने किसी प्रकार की त्रुटि की है।
हिप्पोमैन

1

उन्हें सह-अस्तित्व के लिए मजबूर करने का मेरा तरीका है कि मैं मैकपोर्ट्स को डिफ़ॉल्ट रूप से दिखाई न दे, लेकिन किसी भी मैकपोर्ट्स प्रोग्राम को लागू करते समय दिखाई दे। अर्थात्, MacPorts प्रोग्राम को कुछ स्क्रिप्ट के साथ लपेटें:

if [ "$#" -le 0 ]; then
  echo "Usage: $0 command [arg1, arg2, ...]" >&2
  exit 1
fi
if [[ -z $MACPORTS_PREFIX ]]; then
  MACPORTS_PREFIX='/opt/local'
fi
export PATH="$MACPORTS_PREFIX/bin:$MACPORTS_PREFIX/sbin:$PATH"
export DYLD_LIBRARY_PATH="$MACPORTS_PREFIX/lib:$DYLD_LIBRARY_PATH"
export CPATH="$MACPORTS_PREFIX/include:$CPATH"
command=$1
shift
exec $command $* 

यदि आप इस स्क्रिप्ट का नाम रखते हैं macports.sh, तो आप रैपिंग कर सकते हैं macports.sh macports_bin, जैसे कि रैप लपेटा macports.sh portजाएगा port

सुविधा के लिए आप रख सकते हैं macports.sh somethingखुद को आज्ञा देता है के रूप में एक ही नाम के साथ कुछ स्क्रिप्ट में और इस तरह के रूप में, अपने घर निर्देशिका में डाल ~/bin, ~/.local/binआदि

मैंने इस बारे में एक महीने पहले एक ब्लॉग पोस्ट लिखा है । यदि आप विवरण में एक नज़र की जरूरत है तो आप इसे पढ़ सकते हैं।

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