سؤال هل من الآمن تثبيت كل من Homebrew و Macports على نفس الجهاز؟


لدي MacPorts مثبتة على جهاز iMac مع عدد صحيح من المنافذ المثبتة.

أنا مهتم بمحاولة الخروج من البيرة ، على الرغم من ذلك ، كما سمعت العديد من الأشياء الجيدة عن ذلك ، ولأنني لاحظت أنه يحتوي على إصدارات حديثة أكثر من العديد من الأدوات التي أستخدمها.

ولكن هل يمكن أن يتواجد الاثنان على نفس الجهاز ، أم أحتاج إلى إلغاء تثبيت MacPorts كليًا أولاً؟

أيضا ، إذا كان الاثنان يستطيع في نفس الوقت ، هل ستكون مستقلة تمامًا عن بعضها البعض؟ واحدة من ميزات Homebrew هي أنه لا يعيد تثبيت إصدارات جديدة من الأشياء التي تم تضمينها بالفعل في النظام (على سبيل المثال python). هل يمتد ذلك أيضًا إلى عدم تثبيت إصدارات الأشياء التي تم حفظها بالفعل بواسطة MacPorts؟

ماذا يحدث إذا قمت بعد ذلك بإلغاء تثبيت MacPorts؟


68
2017-08-27 11:24


الأصل




الأجوبة:


لن تتعايش معا بشكل جيد. يبدو Apple gcc في / usr / local لبعض الأشياء. وهذا يعني أن تجميع macports يمكن العثور على شيء لا يتوقعه العتال. انظر قوائم بريد macports وأخطاء للحصول على أمثلة من الأشياء الموجودة في / usr / local.


22
2017-08-27 11:45



لقد تلقيت نظرة خاطفة فقط على الموقع ، ولكن إذا قمت بتغيير موقع التثبيت الافتراضي للبن البار من / usr / local إلى شيء مثل / opt / homebrew / usr / local ، فهل سيتم تجنب هذه المشكلة؟ - Babu
Babu - وفقا لهذا الشراب ، يجب عليك التقدم بحذر - Peter Ajtai
babu - ربما ولكن سيكون هناك مشاكل مع أي من البيرة أو macports forst pn المسار والآخر التقاط هذه الملفات التنفيذية أيضا أظن لم يتم اختبارها بشكل كامل منافذ أي من النظامين باستخدام مسار آخر - Mark


أعطيت إجابة أخرى على سؤال مماثل:

سوف يسبب البيرة مشاكل عند بناء البرنامج من المصدر إذا كان   مثبت في / usr / local. هذا هو الافتراضي ، وهو اختيار سيء   لأن هذا المسار موجود في مسار البحث الافتراضي للمترجمات وغيرها   أدوات. لذلك قد تبني بنى من برامج التغليف الأخرى   التبعية الخاطئة ، وذلك باستخدام نسخة Homebrew بدلا من الخاصة بهم.

قبل سنوات ، في بداية المشروع ، كان حتى MacPorts   باستخدام / usr / محلي. ولكن تبين عدم التعاون مع الأدوات الأخرى   كما هو موثق في الأسئلة الشائعة الخاصة بهم. لسوء الحظ مطوري Homebrew   لم أكن أريد أن أسمع عن تجارب سابقة وتجاهل هذه الحقائق ...

بشكل عام ، من الأفضل عادة التمسك بأداة واحدة فقط لتجنبها   كل المشاكل. تبذل MacPorts قصارى جهدها لإصلاح أي رموز مشفرة   المسارات ، على سبيل المثال ل / sw التي يتم استخدامها من قبل فينك. لذلك عادة سوف تعمل ، ولكن   وجود أي شيء مثبت في / usr / local سيسبب بالتأكيد مشاكل   لذلك.

[...]


17
2017-09-12 19:04



يبدو أنه من الممكن أيضًا تثبيت البيرة في ~/.homebrew. هل لا يزال يتداخل مع MacPorts إذا تم تثبيته هناك بدلا من ذلك؟ - Behrang
أي مكان آخر غير / usr / local يجب أن يكون على ما يرام. - raimue
هل يتعايش MacPort و Homebrew جيدًا إذا كان أحدهما سيقوم بتثبيت Homebrew على / opt / local ، حيث تم تثبيت برنامج MacPort؟ - Adam L. S.
يجب عدم تثبيت البرامج الأخرى يدويًا في / opt / local عند تثبيت MacPorts بالفعل هناك. سيتداخل بالتأكيد مع وضع الملفات هناك غير المعروفة لـ MacPorts ، مما يؤدي إلى حدوث تعارضات عند تثبيت المنافذ. - raimue


اعتدت على الاعتقاد بأن المخاوف بشأن ما ستصنعه أدوات بناء Gnu /usr/local كانوا يشترون على بجنون العظمة. أدوات البناء توقع هناك الكثير من الأشياء هناك: في الأيام الخوالي قبل مديري الحزم (I نكتة) ، قمنا بتجميع كل شيء /usr/local. ولكن في حين أن Autoconf عادةً ما يكتشف المشكلات ، فإن مجرد تعقيد العديد من المشاريع المفتوحة المصدر يسبب مشاكل ، وقد يصعب التراجع عن هذه المشكلات عندما تواجه صعوبة.

لكن خطر حدوث مشكلة مع Autoconf العثور على شيء لا ينبغي أن يقل عن /usr/local يجب أن تكون متوازنة حول إزعاج صيانة وجود اثنين أو ثلاثة أو أربعة نسخ مختلفة مختلفة من Perl و Tcl و Ruby ، ​​كل مع تغطية مختلفة من مكتبات الحزم المختلفة. غير سارة.

نظرًا لأن تجربتي مع MacPorts و Fink عادةً ما كانت السخط الناتج عن هذا بالضبط ، وفي مرحلة ما تحولت إلى تجميع الطريقة القديمة /usr/local، لقد كان من دواعي سروري أن أرى أن البيرة لم تعبث بهذا الأمر. حاولت تكوين MacPorts لتركيب /usr/local، ولكن MacPorts يخرج من طريقه لجعل ذلك صعبًا. أتفهم أن الدافع هو جعل الحياة أسهل بالنسبة لهم عند التعامل مع الصرخات طلبًا للمساعدة في قائمتهم البريدية ومدقق الأخطاء: على الرغم من ذلك ، يجب أن تكون مدركًا أنه في حين أننا يجب أن نحترم جهود المتطوعين وأن نتعامل مع وقتهم كنوع ثمين ، تصحيح الأخطاء ليس هو النوع الوحيد من البساطة التي تؤثر عليك ، كمستخدم.

في هذا الصدد ، على الأقل ، يقوم الناس ، على الأقل ، بالأمور بالطريقة التي اعتادوا القيام بها ، ولا يحاول MacPorts التدخل. إذا كنت على استعداد لتوثيق الحزم التي تحتاجها مع Homebrew ، والمسح / usr / local clean وإعادة تثبيته في حالة وجود صعوبات ، فيمكنك دائمًا التراجع في الحالة التي تسوء فيها الأمور. وبمجرد أن تدرك أن المشاكل في / usr / local لا تحمل في الغالب خطر حدوث ضرر دائم على أجهزتك ، قد تشعر بحرية أكبر لتحمل المخاطر.

سألاحظ فقط مدى سوء التغليف في OSX مقارنة بـ FreeBSD: لا يبدو أن Apple تهتم فعلاً بقابلية استخدام النظام الفرعي BSD الخاص بها ، لأن هذه مشكلة يمكن أن تساعدها.


8
2017-11-26 12:43



حسنا ، يتم طرح سؤالي من منظور مستخدم غبي يستخدم فقط مدير الحزم "الحصول على الأشياء". ليس من المؤكد أنني سأكون كذلك قادر "لمعرفة الأشياء قليلا ذاتي إذا سارت الأمور بشكل خاطئ". لا يزال ، upvote على أي حال للحصول على توضيح إضافي. شكر! - Rich
MacPorts كأسباب وجيهة لعدم استخدام / usr / local ، راجع trac.macports.org/wiki/FAQ#defaultprefix - raimue
Raim: أسباب جيدة بالنسبة لهم - إنها إلى حد كبير مقايضة بين الراحة في تتبع الأخطاء وبساطة التثبيت على جهاز المستخدم. أنا أهتم بهذا الأخير. - Charles Stewart
عدد الأشياء التي يمكن أن تسوء بسبب قيام شخص ما (أو شيء ما) بتثبيت نسخة من $ lib /usr/local لا نهاية لها. البنية ، والإصدارات ، والميزات التي تمت تهيئتها ، والأعلام ، والمنشآت الجزئية ، والتجهيزات القديمة مع مشكلات الأمان ، وستسبب مشاكل. من المؤكد أن تمضي قدما إذا كنت تعرف ما تفعله ، ولكن لا تقم بإعداد الأخطاء المتعلقة به. تظهر التجربة أن الأشخاص يقومون بإعداد الأخطاء على أي حال ، وهذا هو بالضبط السبب وراء وضع التتبع (-t، انظر أدناه) موجود ولماذا تجنب /usr/local هي التوصية الافتراضية. - neverpanic
neverpanic - لقد تغير رأيي في مخاطر تجميع كل شيء إلى / usr / local منذ أن كتبت هذه الإجابة ، ومعظمها يرجع إلى تعقيد بناء المشاريع المفتوحة المصدر التي ترتفع وتزداد ، ولا تصبح مشكلات Autoconf أسهل فرز: على الأقل ، "الشجار على بجنون العظمة" غير عادل. ما زلت لا أحب نهج Macports "بناء الكون الخاص" ، ويستحق التأكيد على أن بساطة تفاعلات القائمة البريدية ليست هي النوع الوحيد من البساطة الذي يجب على المستخدم النهائي القلق عليه. سأضيف التحذيرات إلى جوابي. - Charles Stewart


وفقا ل MacPorts أسئلة وأجوبة:

لاحظ أنه بدءًا من 2.3.0 ، يمكن لـ MacPorts الإخفاء تلقائيًا   / usr / local (وجميع الملفات الأخرى التي لا يعتمد عليها المنفذ) من المنافذ   بناء النظم. تسمى هذه الميزة وضع التتبع ويتم تنشيطها بواسطة   توفير العلامة -t إلى المنفذ ، على سبيل المثال ،

sudo port -t install <portname>

هذا أمر ملائم لأنه وفقًا لصفحة تثبيت Homebrew:

واحدة من الأسباب التي تجعل البيرة تعمل فقط بالنسبة إلى المنافسة   لأننا نوصي بالتركيب إلى / usr / local. اختر بادئة أخرى على   خطر الخاص بك!

لذلك ، ونظراً إلى القليل من الخبرة الشخصية ، أفترض أن استخدام علامة - t لتثبيتات MacPort دومًا يجب أن يمنع معظم مشكلات وجود MacPorts و Homebrew على نفس النظام. لمعالجة السؤال الأخير: لا أرى أي سبب لسبب إلغاء تثبيت MacPorts أن يسبب أي مشاكل.


5
2017-10-23 20:00



كن على علم أنك ستعاني من ركلة جزاء ذات أداء كبير. ولكن بشكل عام ، يجب أن يعمل هذا في جميع الحالات تقريبًا. - neverpanic
شكرا للإشارة إلى أن التحذيرneverpanic. أفترض أن جزاء الأداء يؤثر فقط على وقت تثبيت المنفذ وليس له أي تأثير على أي خصائص وقت التشغيل للمنفذ المثبت. صحيح؟ - webappzero
صيح. يمنع فقط مشاكل وقت الإنشاء ، وليس مشاكل وقت التشغيل (ولكن تلك نادرة جداً). - neverpanic
في الواقع ، فشلت في تذكر هذا المطلب من استخدام علامة التتبع دائمًا. لذلك ، لا أوصي بهذه الممارسة للآخرين إلا إذا كنت واثقًا من أنك ستستخدمها باستمرار. - webappzero
إذا كنت لا تريد أن تتذكرها ، يمكنك كتابة البرنامج النصي المجمع أو الاسم المستعار شل (ولكن تكون على بينة من التفاعل بين الأسماء المستعارة sudo و shell) لتمريرها لك دائما. لاحظ أن El Capitan تقوم حاليًا باختراق وضع التتبع. أنا أعمل على حل. - neverpanic


أثناء تثبيت خدمة homebrew على جهاز كمبيوتر كنت أستخدم فيه المنافذ لسنوات ، إليك ما يمكنني قراءته:

Warning: You have MacPorts or Fink installed:
  /opt/local/bin/port

This can cause trouble. You don't have to uninstall them, but you may want to
temporarily move them out of the way, e.g.

  sudo mv /opt/local ~/macports

كن حذرا!


4
2018-03-18 15:07





وwebappzero sudo port -t ... الحل يجب أن يساعد. لأكون صريحًا ، أجري مع Fink و MacPorts و Homebrew دفعة واحدة ، مع مراعاة MacPorts (الآن على أي حال) ، وفقط باستخدام أي من الأمرين الآخرين لتثبيت أشياء لا أستطيع الحصول عليها من MacPorts. لقد واجهت صعوبات قليلة جدا بهذه الطريقة ، حتى قبل أن تعلم port -t الخدعة. إذا كنت تحاول استخدام العديد من مديري الحزم للحفاظ على بيئات التطوير والخادم المعقدة ، فربما تكون في حالة من عدم الراحة على الأقل. اختيار واحد ، وتجنب الآخرين ولكن لشيء ما كنت بحاجة ماسة منهم ، ووضع الرئيسي في وقت سابق في الطريق.

إذا كان ما سمعته صحيحًا بشأن شركة Apple ، فستمنع أشياءًا من تثبيتها في / usr / بخلاف Apple الخاص بها (أو ربما تفعل ذلك بالفعل في El Crapitan ، والتي أقوم بتجنب التدريج إلى ما بعد تم حل مشاكلها) ، أعتقد أن ذلك سيخفف من المشكلة بعد أن يعيد شركة Homebrew استخدام شيء آخر - سواء كنا نتفق مع نهج أبل الثقيل أم لا.

في النهاية ، أنا أحب فكرة حصر منافذ Apple الخاصة بشجرتها الخاصة ، وأتمنى فقط أنها لم تكن / usr /. أنا أفضل استخدامهم / نظام / بن / ، إلخ ، إلخ. ، لعزل الأشياء الخاصة بهم ، حتى أتمكن من تجاوزه مع أحدث البرامج ، والمحافظة على المجتمع بسهولة أكبر.


1
2017-12-06 06:41