ฉันจะตั้งค่าตัวแปรสภาพแวดล้อมสำหรับแอป GUI ใน OS X Mavericks ได้อย่างไร


19

ฉันพยายามดิ้นรนเพื่อให้แอปทำงานใน OS X Mavericks ในที่สุดฉันก็สามารถทำให้มันรันได้โดยเจาะเข้าไปในชุด. app และรันเชลล์สคริปต์โดยตรง ดูเหมือนว่าจะต้องมีการตั้งค่า JAVA_HOME ดังนั้นฉันตั้งไว้ใน. โปรไฟล์ของฉันในเปลือกและทุกอย่างทำงานได้ดี

อย่างไรก็ตามหากฉันต้องการเพียงคลิกที่ไอคอนใน Dock ก็จะไม่ทำงาน ฉันเดาว่านี่เป็นเพราะ JAVA_HOME ไม่ได้ถูกตั้งค่าไว้ทั่วโลก เนื่องจากฉันไม่ได้เรียกใช้แอปโดยตรงจากเชลล์ OS X จึงไม่ทราบว่า JAVA_HOME คืออะไร มันแค่ทำให้ดู

ใน OS X เวอร์ชั่นก่อนหน้าดูเหมือนว่าตัวแปรสภาพแวดล้อมสามารถตั้งค่าสำหรับแอพ GUI ได้โดยเพียงแค่เพิ่มลงใน /etc/launchd.conf ไฟล์นี้ไม่มีอยู่ใน Mavericks ฉันจะตั้งค่าตัวแปรสภาพแวดล้อมส่วนกลางที่จะใช้กับแอพ GUI ใน Mavericks ได้อย่างไร

คำตอบ:


24

/etc/launchd.conf ไม่เคยมีอยู่โดยค่าเริ่มต้น แต่มันยังคงทำงานใน 10.9

  1. sudo nano /etc/launchd.confเรียกใช้ตัวอย่างเช่น
  2. setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Homeเพิ่มบรรทัดเช่น (ฉันไม่รู้ว่าJAVA_HOMEควรตั้งค่าอะไรจริง ๆ )
  3. รีสตาร์ทหรือรันlaunchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confและเรียกใช้กระบวนการอีกครั้ง

launchctl exportพิมพ์ตัวแปรที่เอ็กซ์พอร์ตโดยกระบวนการผู้ใช้ launchd และsudo launchctl exportพิมพ์ตัวแปรที่เอ็กซ์พอร์ตโดยกระบวนการ launchd รูท

วิธีนี้ยังสามารถใช้ในการตั้งค่าเส้นทางเริ่มต้น ตัวอย่างเช่นฉันได้เพิ่มบรรทัดนี้ไปที่/etc/launchd.conf:

setenv PATH /Users/lauri/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin

(ฉันใช้/Users/lauri/binแทน~/binเพราะ~/binจะเป็น/var/root/binโปรแกรมที่เรียกใช้ในฐานะรูท)


5
+1 สำหรับการอธิบายวิธีการเปลี่ยนแปลง/etc/launchd.confโดยไม่ต้องเริ่มระบบใหม่ สำหรับการกำหนดค่าไฟล์ตัวแปรสภาพแวดล้อม PATH /etc/paths.d/ควรใช้
Timo Meinen

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