عندما يتوقف brew link بسبب وجود مسار مسبقًا، حدد أولاً من يملك ذلك المسار. إذا كان رابطًا رمزيًا (symlink) من صيغة Homebrew أخرى، فقم بإلغاء ربط تلك الصيغة؛ وإذا كان ملفًا غير ذي صلة، فتحقق من التشغيل التجريبي (dry run) لـ Homebrew قبل التفكير في الاستبدال. وجود تعارض لا يعني أن تثبيت الصيغة الجديدة قد فشل: فقد تكون موجودة بالفعل في الـ keg الخاص بها، بانتظار ربط آمن بالبادئة المشتركة لـ Homebrew. دليل brew الخاص بـ Homebrew
ما تخبرك به رسالة التعارض
يتم تثبيت صيغة Homebrew في keg يحمل رقم الإصدار، ويقوم brew link بإنشاء روابط رمزية (symlinks) داخل المجلدات المشتركة مثل bin وlib وinclude. يحدد الخطأ عادةً مسارًا مستهدفًا وقد يذكر أنه يخص صيغة أخرى أو أنه موجود بالفعل. توضح وثائق Homebrew أن brew link يربط الملفات المثبتة بالبادئة (prefix) الخاصة به، بينما يزيل brew unlink روابط الصيغة من تلك البادئة. دليل brew الخاص بـ Homebrew
تعتمد الخطوة الآمنة التالية على الملكية. يمكن أن يؤدي استبدال رابط رمزي خاص بـ Homebrew إلى تغيير الصيغة التي توفر أمرًا أو مكتبة معينة. كما يمكن أن يؤثر استبدال ملف غير ذي صلة على البرامج خارج Homebrew. اقرأ الخطأ بالكامل ولا تتعامل مع --overwrite كخيار إصلاح عام.
فحص الصيغة والمسار المتعارض
استخدم اسم الصيغة الموضح في أمر الربط الفاشل بدلاً من FORMULA. يمكن أن يعرض brew info تفاصيل الصيغة، بما في ذلك ما إذا كانت مخصصة للـ keg فقط (keg-only)؛ ويلخص brew list الملفات الموجودة في الـ keg الحالي. يمكنك أيضًا الاستعلام عن البادئة النشطة الخاصة بها دون تحديد مسار Homebrew لمعالجات Intel أو Apple silicon بشكل ثابت:
brew info FORMULA
brew list FORMULA
brew --prefix FORMULA
إذا أشار الخطأ إلى أن الهدف الحالي هو رابط رمزي يخص صيغة أخرى، فدون اسم تلك الصيغة أيضًا. قد توفر رسالة التعارض اقتراحًا مباشرًا باستخدام brew unlink OTHER_FORMULA. إذا كان الهدف ملفًا عاديًا، أو رابطًا من cask، أو عنصرًا غير واضح المالك، فتوقف وتحقق منه قبل تغييره. لا تحذفه لمجرد أن Homebrew أبلغ عن وجود تضارب.
حل تعارض مملوك لصيغة أخرى
عندما يخص المسار المستهدف صيغة أخرى وتريد أن توفر الصيغة الجديدة هذا المسار المتعارض، قم بإلغاء ربط الصيغة القديمة، ثم اربط الصيغة المطلوبة:
brew unlink OTHER_FORMULA
brew link FORMULA
يؤدي إلغاء الربط إلى إزالة الروابط الرمزية لتلك الصيغة من البادئة؛ ولا يؤدي ذلك إلى إلغاء تثبيت الـ keg الخاص بها. يمكن ربط الصيغة القديمة مرة أخرى لاحقًا إذا لزم الأمر. توضح وثائق Homebrew أيضًا إلغاء الربط وإعادة الربط كطريقة لتعطيل الصيغة مؤقتًا. دليل brew الخاص بـ Homebrew
إذا كانت الصيغة الأخرى لا تزال مطلوبة، فتذكر أن إلغاء ربطها يمكن أن يجعل أوامرها أو ملفاتها غير متاحة عبر البادئة المشتركة. تجنب إلغاء ربط عدة حزم بناءً على التخمين. بالنسبة للتعارض الذي لا يتبين بوضوح أنه رابط رمزي لصيغة أخرى، تابع بإجراء تشغيل تجريبي وافحص كل مسار مدرج.
المعاينة قبل استخدام --overwrite
يحذف خيار --overwrite في Homebrew الملفات الموجودة بالفعل في البادئة الخاصة به أثناء عملية الربط. ويعرض خيار --dry-run قائمة بالملفات التي سيتم ربطها أو حذفها دون إجراء أي تعديل عليها. قم بمعاينة العملية المطلوبة أولاً:
brew link --overwrite --dry-run FORMULA
راجع المسارات بعناية. إذا كانت القائمة تتضمن ملفات تعرف أنها مطلوبة بواسطة أداة أخرى، أو أي شيء خارج بادئة Homebrew المتوقعة، فلا تتابع حتى تفهم مالكها والغرض منها. إذا كانت المعاينة تحتوي فقط على ملفات تنوي استبدالها، فقم بتشغيل الأمر الفعلي:
brew link --overwrite FORMULA
يؤدي هذا إلى تغيير المسارات في البادئة المشتركة. المعاينة هي نقطة اتخاذ القرار؛ وهي بحد ذاتها لا تحل التعارض. دليل brew الخاص بـ Homebrew
إذا كانت الصيغة keg-only
قد تظهر رسالة منفصلة تفيد بأن الصيغة keg-only ويجب ربطها باستخدام --force. يعني Keg-only أن Homebrew يحتفظ بالصيغة في الـ keg الخاص بها بدلاً من ربطها بالبادئة المشتركة. يستخدم Homebrew هذا الترتيب لتجنب حجب برامج macOS أو التعارض مع صيغة أخرى. تحقق من brew info FORMULA لمعرفة السبب وأي إرشادات للاستخدام. الأسئلة الشائعة حول Homebrew
لا تضف --force لمجرد أن الربط العادي يبلّغ عن تعارض في المسار: يسمح --force بربط صيغة keg-only؛ ولا يعني أن المسارات المتعارضة آمنة للكتابة فوقها. ينصح Homebrew بعدم فرض ربط تبعيات keg-only بشكل عام، لأن عمليات البناء غير ذات الصلة وأوامر النظام قد ترتبط عندئذٍ بتبعية مختلفة. بالنسبة لعمليات البناء التي تحتاج إلى أداة أو مكتبة keg-only، يوصي Homebrew باستخدام بادئة الصيغة الخاصة بها لعملية البناء تلك بدلاً من جعلها متاحة بشكل عام للنظام. دليل Homebrew لتبعيات keg-only
تأكيد النتيجة ومعرفة متى تتوقف
بعد حل التعارض المحدد، تحقق من حالة ربط الصيغة وأعد المحاولة فقط إذا لزم الأمر:
brew list --versions FORMULA
brew link FORMULA
إذا كانت مربوطة بالفعل، فقد يبلّغ Homebrew بذلك بدلاً من إنشاء الروابط مرة أخرى. وإذا استمر فشل الربط، فاستخدم الخطأ الجديد لتحديد المسار المتبقي؛ ولا تكرر خيار الاستبدال (overwrite) بشكل أعمى. عندما لا يكون الهدف مدارًا بوضوح بواسطة Homebrew، أو يُظهر التشغيل التجريبي ملفات لا يمكنك استبدالها بأمان، فاترك الرابط دون حل وابحث أولاً عن البرنامج المالك له. يظل الـ keg تثبيتًا منفصلاً ومستقلاً عن روابطه في البادئة، لذا يمكن أن تظل الصيغة المثبتة متاحة للتشخيص حتى وإن لم يكتمل الربط.