it-swarm.asia

Mac OS X: الأماكن التقليدية التي يجب أن تكون فيها الملفات الثنائية

لقد قمت بتنزيل تطبيق يمثل تطبيق سطر أوامر ، وأريد وضعه في مكان ما حيث يمكنني تشغيله من سطر الأوامر دون الحاجة إلى كتابة المسار بشكل صريح.

  1. ما هي المسارات التقليدية المستخدمة لشيء من هذا القبيل؟ /usr/bin؟ هل هناك خيارات مختلفة ، واحد إذا أردت ذلك لجميع المستخدمين ، وخيار إذا كنت أريده لمستخدم معين فقط ، مثل حساب المسؤول الخاص بي؟

  2. أو يجب أن أضعه في الدليل الخاص به ضمن دليل التطبيقات ، وأضفه إلى المسار؟ إذا كان الأمر كذلك ، فما الملف الذي يتحكم في المكان الذي تم تعيين المسار فيه؟

55
Jason S

الإجابة الأساسية: ربما تريد /usr/local/bin. بناءً على مدى حداثة نظام macOS الخاص بك ، قد تحتاج إلى تحديث رمزك الافتراضي $PATH. انظر أدناه للحصول على مزيد من التفاصيل.

UPDATE 12-01-2018 في مرحلة ما منذ أن كتبت إجابتي الأصلية ، غيرت Apple $PATH الافتراضي. ونتيجة لذلك ، فإن الكثير مما أقوله أدناه غير ذي صلة بأجهزة Mac الأخيرة. إذا قمت بكتابة echo $PATH في محطة طرفية ، وكان /usr/local/bin هو الأول ، فيمكنك تجاهل كل شيء أدناه حول تغيير $PATH.

الإجابة الأصلية

أجهزة ماكينتوش غير عادية في هذا الصدد. يبدو متغير $PATH الافتراضي للمستخدم العادي كما يلي:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

من خلال وضع /usr/local/bin بعد /usr/bin و /bin ، يعمل Mac على رفع النظام المعتاد. عادةً ، يمكنك وضع شيء ما في /usr/local/bin (قل مترجم بيرل الثاني ، تم تجميعه بطريقة غير قياسية) ، ثم يقوم مستخدم عادي بضرب المستخدم المخصص بدلاً من المستخدم على مستوى النظام أولاً. هذا جيد. يمكن للمستخدمين الحصول على المتغيرات ، لكن النظام يبقى نقيا. بالنظر إلى $PATH الافتراضي من Apple ، ومع ذلك ، سيتم العثور على العناصر الموجودة في /usr/bin أو /bin قبل أي شيء في /usr/local/bin. (هذا يهزم أساسًا الغرض من التثبيت ، على سبيل المثال ، Perl المخصص في /usr/local/bin.)

لإصلاح ذلك ، يمكنك تغيير $PATH الخاص بالمستخدم العادي عن طريق تحرير ملف .profile في الدليل الرئيسي للمستخدم. (قد لا يكون هذا الملف موجودًا ، إذا كان لديك تثبيت جديد تمامًا. في هذه الحالة ، قم بإنشائه.)

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

47
Telemachus

تستحق /usr/local/bin و /usr/local/sbin الإضافة إلى المسار الخاص بك ، حيث يتم تثبيت الكثير من ملفات التعريف للبنيات المصدرية للتثبيت هناك.

إذا كنت تستخدم MacPorts ، فمن المفيد إضافة /opt/local/bin و /opt/local/sbin أيضًا.

أفضل طريقة للقيام بذلك هي الإضافة

export PATH=/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:$PATH

إلى ملف .bashrc في الدليل الرئيسي (المخفي ، وبالتالي فإن CLI هي أفضل طريقة للقيام بذلك) ، أو إذا كنت ترغب في تغيير المسار الواسع للنظام ، أضف السطر نفسه إلى /etc/bashrc (غير مخفي) ، ولكن ستحتاج إلى Sudo للقيام بذلك.

إذا لم يكن لديك .bashrc في منزل أي مستخدم ، فيمكنك إنشاء واحد وإضافة هذا السطر إليه ، ولكن تذكر تغيير الأذونات على الملف الذي تنشئه لجعله قابلاً للقراءة من قبل المستخدم المعني (من الواضح أنه غير مناسب إذا كنت تفعل ذلك لملف التعريف الخاص بك).

يضيف $PATH في النهاية المسار الافتراضي للنظام إلى كل ما وضعته من قبل. لاحظ أن النظام يبحث عن الثنائيات بترتيب المسارات المعطاة ، لذلك إذا قمت بتثبيت ثنائي في /usr/local أو /opt/local الذي تم تثبيته أيضًا بشكل افتراضي على النظام ، فسيتم العثور على الإصدارات التي تقوم بتثبيتها أولاً ، والتي (على الرغم من نادرًا) قد تزعج الأشياء. الأمر يستحق الاهتمام بها.

المعلومات الجيدة هي هنا .

يجب أن أشير إلى أن ما ذكر أعلاه يفترض أنك تستخدم Bash لـ Shell ، وهو الافتراضي على Mac OS X v10.4 (Tiger) و Mac OS X v10.5 (Leopard) ، ولكن ليس على الأنظمة السابقة ، التي تستخدم tcsh بدلاً من ذلك ، والتي تحتوي على بناء جملة مختلف.

أتمنى أن يساعد ذلك...

9
avstrallen

أميل إلى الذهاب مع /usr/local. إليك توضيحًا لطيفًا لسبب ، والذي يشير إلى التسلسل الهرمي لنظام الملفات (FHS) . ، والذي بدوره يقول عن /usr/local:

التسلسل الهرمي العالي للبيانات المحلية الخاصة بهذا المضيف. عادةً ما تحتوي على أدلة فرعية أخرى ، مثل bin ، lib ، share.⁢

7
John Topley