macOS पर Homebrew ने किसी डिपेंडेंसी को कहाँ इंस्टॉल किया है यह जानने के लिए, Homebrew से पैकेज का प्रीफ़िक्स पूछें, फिर उसके मौजूदा इंस्टॉलेशन में मौजूद फ़ाइलों को सूचीबद्ध करें। नीचे दिए गए कमांड में openssl@3 को अपनी ज़रूरत के फ़ॉर्मूला नाम से बदलें। Homebrew फ़ॉर्मूला वर्ज़न को अपने Cellar में संग्रहीत करता है और फ़ाइलों को एक साझा प्रीफ़िक्स में लिंक कर सकता है, इसलिए पैकेज का इंस्टॉल स्थान और आपके द्वारा चलाए जाने वाले कमांड का पाथ भिन्न हो सकते हैं। Homebrew का brew(1) संदर्भ
फ़ॉर्मूला का इंस्टॉलेशन पाथ ढूंढें
Terminal में, यह रन करें:
brew --prefix openssl@3
इंस्टॉल किए गए फ़ॉर्मूला के लिए, यह उस स्थान को प्रिंट करता है जहाँ वह फ़ॉर्मूला मौजूद है या लिंक किया गया है। यदि आप चाहते हैं कि फ़ॉर्मूला इंस्टॉल न होने पर Homebrew कोई गड़बड़ी (error) रिपोर्ट करे, तो --installed विकल्प का उपयोग करें:
brew --prefix --installed openssl@3
परिणाम आमतौर पर Homebrew के स्थिर opt पाथ का उपयोग करता है, जैसे कई Apple silicon सेटअप पर /opt/homebrew/opt/openssl@3 या Intel पर /usr/local/opt/openssl@3। ये सामान्य डिफ़ॉल्ट हैं, कोई गारंटी नहीं: किसी Mac में कस्टम प्रीफ़िक्स या एकाधिक Homebrew इंस्टॉलेशन हो सकते हैं। किसी अन्य Mac से पाथ का अनुमान लगाने के बजाय अपनी मशीन पर आउटपुट की जांच करें। Homebrew /opt/homebrew को अपने डिफ़ॉल्ट Apple silicon प्रीफ़िक्स के रूप में और /usr/local को अपने डिफ़ॉल्ट Intel प्रीफ़िक्स के रूप में दस्तावेज़ित करता है। Homebrew FAQ
वर्ज़न की गई फ़ाइलें और वास्तविक निष्पादन योग्य (एक्ज़ीक्यूटेबल) फ़ाइल देखें
फ़ॉर्मूला के वर्तमान keg—इसके इंस्टॉल किए गए वर्ज़न की डायरेक्टरी—के अंदर के पाथ सूचीबद्ध करने के लिए, यह रन करें:
brew list --formula openssl@3
Homebrew फ़ॉर्मूला तर्क के साथ brew list को उस फ़ॉर्मूला के वर्तमान keg के भीतर पाथ के सारांश के रूप में परिभाषित करता है। वर्ज़न किए गए Cellar पाथ को स्वयं देखने के लिए, फ़ॉर्मूला के प्रीफ़िक्स को readlink के साथ जोड़ें:
readlink "$(brew --prefix openssl@3)"
आउटपुट आमतौर पर ../Cellar/openssl@3/3.x.y जैसी वर्ज़न की गई डायरेक्टरी की ओर संकेत करता है। सटीक वर्ज़न इस बात पर निर्भर करता है कि क्या इंस्टॉल किया गया है। Homebrew फ़ॉर्मूला इंस्टॉलेशन को Cellar में kegs के रूप में वर्णित करता है, जिसमें कुछ फ़ाइलें व्यापक Homebrew प्रीफ़िक्स में सिम्लिंक (symlinked) होती हैं। Formula Cookbook
यदि प्रश्न विशेष रूप से यह है कि "मेरा शेल कौन सा एक्ज़ीक्यूटेबल रन करेगा?", तो कमांड समाधान की अलग से जाँच करें:
command -v openssl
यह आपके वर्तमान शेल के PATH के माध्यम से मिलने वाले पहले मेल खाने वाले कमांड की रिपोर्ट करता है। यह फ़ॉर्मूला के प्रीफ़िक्स से भिन्न हो सकता है यदि कोई अन्य इंस्टॉलेशन PATH में पहले दिखाई देता है, या यदि फ़ॉर्मूला उस नाम से कोई कमांड प्रदान नहीं करता है। बाइनरी का सीधे निरीक्षण करने के लिए, command -v द्वारा प्रिंट किए गए पाथ का उपयोग ls -l के साथ करें ताकि यह देखा जा सके कि यह एक सिम्बॉलिक लिंक है या नहीं। एक पैकेज में एक्ज़ीक्यूटेबल के साथ-साथ लाइब्रेरी, हेडर और सहायक फ़ाइलें भी शामिल हो सकती हैं; केवल एक कमांड की जाँच करने से पैकेज की प्रत्येक फ़ाइल का पता नहीं चलता है।
यदि फ़ॉर्मूला का नाम अस्पष्ट है या यह अनुपलब्ध है
वर्ज़न के साथ इंस्टॉल किए गए फ़ॉर्मूला को सूचीबद्ध करें, फिर प्रासंगिक नाम की पहचान करें:
brew list --formula --versions
Homebrew उन फ़ॉर्मूलों के बीच भी अंतर करता है जिन्हें वह उपयोगकर्ता द्वारा अनुरोधित मानता है और जिन्हें डिपेंडेंसी के रूप में इंस्टॉल किया गया है। ये कमांड सूची को सीमित करने में मदद कर सकते हैं:
brew list --formula --installed-on-request
brew list --formula --no-installed-on-request
यदि brew --prefix --installed NAME यह रिपोर्ट करता है कि फ़ॉर्मूला इंस्टॉल नहीं है, तो brew list --formula --versions में इसके सटीक नाम की पुष्टि करें। क्लीनअप के दौरान किसी डिपेंडेंसी को हटा दिया गया हो सकता है, वह किसी अन्य Homebrew इंस्टॉलेशन से संबंधित हो सकती है, या किसी भिन्न पैकेज मैनेजर के साथ इंस्टॉल की गई हो सकती है। यदि brew की कई प्रतियां उपलब्ध हैं, तो command -v brew दिखाता है कि आपका वर्तमान शेल किसका उपयोग करता है; उसी brew कमांड के माध्यम से पैकेज क्वेरी रन करें।
जब पैकेज किसी macOS इंस्टॉलर से आया हो
Apple के Installer ऐप द्वारा किसी .pkg से इंस्टॉल किए गए सॉफ़्टवेयर के लिए, Homebrew कमांड लागू नहीं होते हैं। macOS का pkgutil पैकेज आईडी और रसीद (receipt) के लिए दर्ज फ़ाइलों को सूचीबद्ध कर सकता है:
pkgutil --pkgs
pkgutil --files com.example.package
com.example.package को पहले कमांड से प्राप्त वास्तविक आईडी से बदलें। --files आउटपुट Installer के रसीद डेटाबेस से आता है; यह प्रत्येक पैकेज मैनेजर के इंस्टॉलेशन की सार्वभौमिक सूची नहीं है। पैकेज आईडी किसी ऐप के दिखाई देने वाले नाम से मेल नहीं भी खा सकती हैं। Apple pkgutil मैनुअल
पाथ आपको क्या बताते हैं और क्या नहीं
Homebrew फ़ॉर्मूला के लिए, brew --prefix NAME इसके Homebrew-प्रबंधित स्थान को खोजने का त्वरित तरीका है, और brew list NAME इसके वर्तमान keg में पाथ दिखाता है। जब आपको यह जानने की आवश्यकता हो कि आपका शेल किस एक्ज़ीक्यूटेबल का चयन करता है, तो command -v का उपयोग करें। ये अलग-अलग सवालों के जवाब देते हैं: पैकेज की फ़ाइलें तब भी मौजूद हो सकती हैं जब उसका एक्ज़ीक्यूटेबल PATH से अनुपस्थित हो, और PATH पर पाया गया एक एक्ज़ीक्यूटेबल उस फ़ॉर्मूला के अलावा किसी अन्य स्थान से आ सकता है जिसका आप निरीक्षण कर रहे हैं।
यदि आपको किसी अन्य तरीके से इंस्टॉल किए गए पैकेज के लिए संपूर्ण फ़ाइल सूची की आवश्यकता है, तो उस पैकेज मैनेजर की अपनी रसीद या लिस्टिंग टूल का उपयोग करें। केवल पैकेज के नाम से किसी इंस्टॉल स्थान का अनुमान न लगाएं।
स्रोत
brew(1) – The Package Manager for Everywhere — Homebrew
Formula Cookbook — Homebrew
Frequently Asked Questions — Homebrew
man pkgutil(1) — manpagez