~/etc/path
หน้าตาของฉันเป็นดังนี้:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
ปัญหา:
เมื่อฉันพิมพ์echo $PATH
เทอร์มินัลฉันจะกลับมา:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
และสิ่งนี้ยังคงมีอยู่สำหรับทุกแอปพลิเคชันที่เริ่มต้นในเทอร์มินัล ตัวอย่างเช่นถ้าฉันพิมพ์emacs
แล้วทำ:
M-x getenv PATH
ผลลัพธ์ของฉันคือ:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
แต่ถ้าฉันเริ่มต้นขึ้น emacs ใช้ Launchpad แทนขั้วและอีกครั้งที่ใส่เอาท์พุทของฉันคือแทนM-x getenv PATH
/usr/bin:/bin:/usr/sbin:/sbin
ในขณะที่คุณสามารถเห็นการเปลี่ยนแปลงของฉัน~/etc/path
ซึ่งเป็นส่วนที่เพิ่มของ/usr/local/bin
หายไป
ตัวอย่างอื่น:
ฉันใช้ปลั๊กอิน Firefox ที่เรียกว่าvimperatorซึ่งเลียนแบบฟังก์ชั่น vim ใน Firefox มันมีคุณสมบัติที่ช่วยให้ผู้ใช้สามารถแก้ไขการป้อนข้อมูลหน้าเว็บในกลุ่ม แต่นี้ไม่ได้ดูเหมือนจะทำงานบน OS X ได้ในลางสังหรณ์ผมพิมพ์คำสั่ง!echo $PATH
ลงใน vimperator /usr/bin:/bin:/usr/sbin:/sbin
และดูต่อไปนี้: แน่นอนตั้งแต่ symlink ที่เรียกว่าgvim
ซึ่งชี้ไปที่macvim
ถูกสร้างขึ้นและวางไว้/usr/local/bin
โดยชงพฤติกรรมนี้ทำให้รู้สึก สิ่งที่ฉันไม่เข้าใจคือเหตุผลที่PATH
อ่านในแบบที่มันเป็น
วิธีแก้ปัญหาที่ฉันได้ลอง:
- เห็นได้ชัดว่าฉันได้รีสตาร์ทเครื่อง
แก้ไข (ตามที่ร้องขอโดยความคิดเห็นที่ถูกลบตอนนี้):
การใช้งานsysctl user.cs_path
ในเครื่องปลายทาง:
user.cs_path: /usr/bin:/bin:/usr/sbin:/sbin