لقد قمت بتنزيل تطبيق يمثل تطبيق سطر أوامر ، وأريد وضعه في مكان ما حيث يمكنني تشغيله من سطر الأوامر دون الحاجة إلى كتابة المسار بشكل صريح.
ما هي المسارات التقليدية المستخدمة لشيء من هذا القبيل؟ /usr/bin
؟ هل هناك خيارات مختلفة ، واحد إذا أردت ذلك لجميع المستخدمين ، وخيار إذا كنت أريده لمستخدم معين فقط ، مثل حساب المسؤول الخاص بي؟
أو يجب أن أضعه في الدليل الخاص به ضمن دليل التطبيقات ، وأضفه إلى المسار؟ إذا كان الأمر كذلك ، فما الملف الذي يتحكم في المكان الذي تم تعيين المسار فيه؟
الإجابة الأساسية: ربما تريد /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
، ولكنه يقوم بذلك بطريقة تجعل من السهل جدًا إزالة الأشياء والعودة إلى حالة الفانيليا لاحقًا.
تستحق /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
بدلاً من ذلك ، والتي تحتوي على بناء جملة مختلف.
أتمنى أن يساعد ذلك...
أميل إلى الذهاب مع /usr/local
. إليك توضيحًا لطيفًا لسبب ، والذي يشير إلى التسلسل الهرمي لنظام الملفات (FHS) . ، والذي بدوره يقول عن /usr/local
:
التسلسل الهرمي العالي للبيانات المحلية الخاصة بهذا المضيف. عادةً ما تحتوي على أدلة فرعية أخرى ، مثل bin ، lib ، share.