วิธีใช้ /etc/paths.d เพื่อเพิ่มไฟล์ที่เรียกใช้งานได้ไปยังพา ธ


15

ฉันพยายามใช้ /etc/paths.d เพื่อเพิ่มความสามารถในการเรียกใช้งานกับตัวแปรพา ธ ของฉัน แต่ฉันยังไม่ประสบความสำเร็จ

เส้นทางแบบเต็มของไฟล์เรียกทำงานคือ: /opt/ImageMagick/bin/convert

/etc/paths.d มีสองไฟล์: 40-XQuartz และ ImageMagick

40-XQuartz มีหนึ่งบรรทัด: /opt/X11/bin
ImageMagick มีหนึ่งบรรทัด:/opt/ImageMagick/bin

ของฉันecho $PATHให้:

/Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

ดังนั้นดูเหมือนว่าเฉพาะไฟล์แรก (40-XQuartz) เท่านั้นที่ทำงานได้ การอนุญาตของทั้งสองไฟล์ (40-XQuartz และ ImageMagick) เหมือนกันดังนั้นคำถามของฉันคือทำไมไฟล์แรกใช้งานได้และไฟล์ที่สองไม่ได้

ฉันใช้ OS X Mavericks


คุณใช้เปลือกอะไร เกี่ยวกับ / etc / path คืออะไร
Max Ried

การเพิ่มความแข็งแกร่งให้/etc/paths.dกับฉัน แต่ฉันรีสตาร์ทแอปพลิเคชันเทอร์มินัลใดก็ตามที่ฉันกำลังใช้ (ITerm2 ในกรณีของฉัน) เพื่อให้เส้นทางใหม่มีผล
user1256923

คำตอบ:


17

คุณเริ่มต้นเปลือกเข้าสู่ระบบใหม่ตั้งแต่การเพิ่มไฟล์ใหม่สำหรับ ImageMagick? การตั้งค่าของเส้นทางจากpaths.dรายการที่จะทำใน/etc/profileและ/etc/csh.loginดังนั้นคุณจะต้องเริ่มต้นเปลือกใหม่สำหรับรายการใหม่ที่จะมีผลบังคับใช้

OS X ใช้path_helperเพื่อตั้งค่าพา ธ ตามไฟล์ใน/etc/paths.d- คุณสามารถเรียกมันได้ด้วยตนเอง (สมมติว่าเป็นเชลล์ที่มีลักษณะคล้ายบอร์นที่นี่):

$ eval `/usr/libexec/path_helper -s`

แน่นอนฉันได้เริ่มเปลือกใหม่ฉันยังรีสตาร์ท mac ของฉัน
skiabox

เชลล์ล็อกอินใหม่ใช้งานได้สำหรับฉัน
incandescentman

3

วิ่ง

echo /opt/ImageMagick/bin|sudo tee /etc/paths.d/ImageMagick;bash -l;echo $PATH

เพิ่ม/opt/ImageMagick/binการPATHติดตั้งของฉัน

คุณเอาชนะที่PATHอื่นได้~/.bash_profileไหม

เส้นทางใน/etc/paths.d/จะมีการเพิ่มเส้นทางโดย/usr/libexec/path_helperที่มีการเรียกใช้จาก/etc/profile, และ/etc/zsh.env ไม่ได้ถูกเรียกใช้โดยแอปพลิเคชันแบบกราฟิกหรือเมื่อ bash ถูกเรียกใช้เป็นเชลล์ที่ไม่ใช่การเข้าสู่ระบบ/etc/csh.loginpath_helper

คุณยังสามารถตั้งค่าเริ่มต้นPATHใน/etc/launchd.conf:

  1. setenv PATH /Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/opt/ImageMagick/bin|sudo tee -a /etc/launchd.confเรียกใช้ตัวอย่างเช่น
  2. รีสตาร์ทหรือรันlaunchctl</etc/launchd.conf;sudo launchctl</etc/launchd.confและเปิดกระบวนการใหม่

ฉันชอบเปลี่ยนพา ธ/etc/launchd.confเพราะมันมีผลกับโปรแกรมที่ไม่ได้เริ่มจากเชลล์เช่นโปรแกรมแก้ไขข้อความและโปรแกรมที่เริ่มโดยงาน launchd


0

เยี่ยมมากฉันเพิ่งได้เล่นกับการเพิ่ม ImageMagic ใน Mac ของฉัน ไม่เพียง แต่คุณต้องImageMagick/binในของคุณPATHคุณยังต้องตั้งค่าตัวแปรสภาพแวดล้อมหรือเพิ่ม:

ในการทดสอบคุณสามารถสร้างมันด้วยตนเองด้วย:

export DYLD_LIBRARY=".:/opt/ImageMagic/lib"

ข้อมูลสำหรับการตั้งค่าตัวแปรสภาพแวดล้อมสำหรับ Mac OS สามารถพบได้ที่นี่การตั้งค่าตัวแปรสภาพแวดล้อมใน OS X

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.