macOS-এ Homebrew কোনো ডিপেন্ডেন্সি কোথায় ইনস্টল করেছে তা খুঁজে পেতে, Homebrew-এর কাছে প্যাকেজের প্রিফিক্স জানতে চান, তারপর এর বর্তমান ইনস্টলেশনে থাকা ফাইলগুলোর তালিকা দেখুন। নিচের কমান্ডগুলোতে openssl@3-এর জায়গায় আপনার প্রয়োজনীয় ফর্মুলার নাম দিয়ে প্রতিস্থাপন করুন। Homebrew ফর্মুলার সংস্করণগুলো তার Cellar-এ সংরক্ষণ করে এবং একটি শেয়ার্ড প্রিফিক্সে ফাইলগুলো লিংক করতে পারে, তাই প্যাকেজের ইনস্টলেশন লোকেশন এবং আপনার চালানো কোনো কমান্ডের পাথ ভিন্ন হতে পারে। Homebrew-এর brew(1) রেফারেন্স
ফর্মুলার ইনস্টলেশন পাথ খুঁজুন
টার্মিনালে চালান:
brew --prefix openssl@3
ইনস্টল করা কোনো ফর্মুলার জন্য, এটি সেই ফর্মুলাটি যেখানে রয়েছে বা লিংক করা আছে সেই লোকেশনটি প্রিন্ট করে। ফর্মুলাটি ইনস্টল করা না থাকলে Homebrew যদি কোনো এরর দেখাক তা চান, তবে --installed অপশনটি ব্যবহার করুন:
brew --prefix --installed openssl@3
ফলাফলে সাধারণত Homebrew-এর স্থিতিশীল opt পাথ ব্যবহার করা হয়, যেমন অনেক Apple সিলিকন সেটআপে /opt/homebrew/opt/openssl@3 অথবা Intel-এ /usr/local/opt/openssl@3। এগুলো সাধারণ ডিফল্ট পাথ, কোনো নিশ্চয়তা নয়: একটি ম্যাকে কাস্টম প্রিফিক্স বা একাধিক Homebrew ইনস্টলেশন থাকতে পারে। অন্য কোনো ম্যাকের পাথ অনুমান না করে নিজের মেশিনের আউটপুটটি যাচাই করুন। Homebrew তার ডকুমেন্টেশনে Apple সিলিকনের জন্য ডিফল্ট প্রিফিক্স হিসেবে /opt/homebrew এবং Intel-এর জন্য ডিফল্ট প্রিফিক্স হিসেবে /usr/local উল্লেখ করেছে। 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-এর মধ্যে keg হিসেবে বর্ণনা করে, যেখান থেকে কিছু ফাইল মূল Homebrew প্রিফিক্সে সিমলিংক করা থাকে। 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-এর ইনস্টলার অ্যাপের মাধ্যমে কোনো .pkg থেকে ইনস্টল করা সফটওয়্যারের ক্ষেত্রে, Homebrew কমান্ডগুলো প্রযোজ্য নয়। macOS-এর pkgutil প্যাকেজ আইডি এবং কোনো রসিদ (receipt)-এর জন্য রেকর্ড করা ফাইলগুলোর তালিকা দেখাতে পারে:
pkgutil --pkgs
pkgutil --files com.example.package
প্রথম কমান্ড থেকে পাওয়া আসল আইডি দিয়ে com.example.package প্রতিস্থাপন করুন। --files-এর আউটপুট ইনস্টলারের রসিদ ডেটাবেস থেকে আসে; এটি প্রতিটি প্যাকেজ ম্যানেজারের ইনস্টলেশনের কোনো সার্বজনীন ইনভেন্টরি নয়। প্যাকেজ আইডিগুলো কোনো অ্যাপের দৃশ্যমান নামের সাথে নাও মিলতে পারে। Apple pkgutil ম্যানুয়াল
পাথগুলো কী জানায় এবং কী জানায় না
Homebrew ফর্মুলার ক্ষেত্রে, Homebrew-পরিচালিত লোকেশন খুঁজে পাওয়ার দ্রুত উপায় হলো brew --prefix NAME, এবং 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