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


52

ฉันมักจะลำบากในการตั้งค่าตัวแปรสภาพแวดล้อมใน OS X เช่น JAVA_HOME, M2_HOME หรือ PATH. วิธีการตั้งค่าเหล่านี้ใน OS X Mavericks

ฉันได้ทำการวิจัยแล้ว แต่คำตอบที่ฉันพบยังไม่ได้ช่วยฉัน:

  1. export JAVA_HOME=/... (แต่ดูเหมือนว่าการเปลี่ยนแปลงจะเกิดขึ้นชั่วคราวเพียงแค่หนึ่งเซสชันเทอร์มินัล)
  2. setenv JAVA_HOME=/... (แต่ไม่พบคำสั่ง)
  3. เปิด .profile และเขียนตัวแปรภายในเพื่อทำการเปลี่ยนแปลงอย่างถาวร - ( .profile ไม่ได้อยู่).
  4. เปิด .bash_profile และเขียนตัวแปรภายในเพื่อทำการเปลี่ยนแปลงอย่างถาวร - ( .bash_profile ไม่ได้อยู่).
  5. vi ~/.bash_profile ค่อนข้างท้าทายสำหรับคนที่ไม่รู้ vi.)
  6. สร้างของคุณเอง enrivonment.plist ไฟล์.

ใครบางคนช่วยพาฉันผ่านขั้นตอนต่าง ๆ เพื่อให้ใช้งานได้บน OS X Mavericks โดยสมมติว่า ไม่ ยูนิกซ์โนว์ฮาว?


1
Unix (และระบบปฏิบัติการอื่น ๆ ) อาจเป็นเรื่องยากสำหรับผู้ใช้ใหม่ดังนั้นฉันสามารถเข้าใจความคับข้องใจของคุณ อย่างไรก็ตามคำถามที่เขียนค่อนข้างกว้างและจะไม่นำคำตอบที่คุณต้องการ คุณช่วยเขียนมันใหม่อีกครั้งเพื่อมุ่งเน้นไปที่ปัญหาที่คุณมีอยู่จริง (เช่น "ฉันจะตั้ง JAVA_HOME และ PATH บน Mavericks") ได้อย่างไรซึ่งจะช่วยให้แน่ใจว่าคุณจะได้รับคำตอบที่ดี
nohillside

อย่างที่ฉันเห็น Stuffe ได้แก้ไขคำถามของฉันแล้ว Thanx คำถามของฉันเป็นเหมือนชื่อว่าจะตั้ง JAVA_HOME และ PATH บน Mavericks ได้อย่างไร
akcasoy

@patrix: ครั้งต่อไปฉันจะอธิบายปัญหาของฉันหรือสิ่งที่ฉันต้องการถามและคุณจะเขียนคำถามของฉันกับคำพูด ตกลง? ดูเหมือนว่าคุณผู้ดำเนินรายการจะพึงพอใจอย่างมาก
akcasoy

คำตอบ:


30

ฉันมี. profile ในโฮมไดเร็กตอรี่ของฉัน; มันมีมากมาย export … คำสั่งสำหรับตัวแปรสภาพแวดล้อม

คุณสามารถสร้างไฟล์ดังกล่าวได้โดยการเปิด Terminal และออกคำสั่ง touch .profile ปิดเทอร์มินัล

จากนั้นคุณควรเปิดไฟล์นั้นในโปรแกรมแก้ไขข้อความธรรมดา (เช่น TextWrangler คุณยังสามารถใช้ nano .profile ในหน้าต่าง Terminal (ไดเรกทอรีปัจจุบันควรเป็นบ้านของคุณ) ซึ่งง่ายกว่ามาก vi. แทรกบรรทัดเช่น export JAVA_HOME=… . บันทึกออก nano ถ้าคุณใช้สิ่งนั้นและออกจากเทอร์มินัลที่กำลังทำงานอยู่

เปิด Terminal และออกคำสั่ง env เพื่อดูตัวแปรสภาพแวดล้อมทั้งหมด ตรวจสอบว่าสิ่งที่คุณกำหนดมีค่าที่คุณกำหนดให้พวกเขา คุณน่าจะดีตอนนี้ แต่อย่าลืมว่าตัวแปรสภาพแวดล้อมที่กำหนดไว้ .profile จะไม่ถูกส่งผ่านไปยังแอปพลิเคชัน GUI


ขอบคุณมาก. นี่คือสิ่งที่ฉันกำลังมองหา ตอนนี้ฉันได้ตั้งค่าตัวแปรทั้งหมดของฉันแล้ว คุณหมายถึงอะไรโดยแอปพลิเคชัน GUI? ฉันต้องการตัวแปรบางอย่างสำหรับ java และ maven เพื่อทำงานกับ eclipse, เครื่องมือสปริงเป็นต้น Eclipse เป็นแอปพลิเคชันที่ใช้ GUI (Graphical User Interface) คุณหมายถึงสิ่งนี้โดย GUI หรือไม่
akcasoy

ตกลง. ฉันได้อ่านมาบ้างแล้วและฉันคิดว่าคุณหมายถึง GUI จริงๆกับ GUI .. มีวิธีที่จะทำให้ตัวแปรเหล่านี้มีอยู่ทุกที่หรือไม่ อะไรคือวิธีที่พบได้บ่อยที่สุดหรือตำแหน่งที่พบได้บ่อยที่สุดในการกำหนดมันคืออะไร?
akcasoy

1. ใช่นั่นคือสิ่งที่ฉันหมายถึงโดยแอพ GUI 2. การตั้งค่าตัวแปรสภาพแวดล้อมสำหรับแอป GUI ใน OS X 10.8 ดูเหมือนว่าจะเลิกยาก แอพบางตัวให้คุณกำหนดตัวแปรสภาพแวดล้อมซึ่งจะถูกส่งผ่านไปยังแอพพลิเคชั่นอื่น ๆ ในการตั้งค่า คุณยังสามารถใช้ open -a Appname วิธีการในเซสชันเทอร์มินัล
Bhas

4
ฉันไม่รู้ว่าทำไม แต่สำหรับฉัน (OS X Yosemite 10.10.1) .profile ไม่ได้ช่วย ฉันต้องใส่ export คำสั่งใน .bash_profile เพื่อให้มันทำงาน หวังว่านี่จะช่วยคนอื่นถ้าเขาเจอปัญหาเดียวกัน ...
chuky

18

ในโยเซมิตีคุณควรจะใส่ export VARIABLE='something' ภายใน .bash_profile.

ฉันพยายามเขียน export VARIABLE='something' ภายใน .profile ปราศจากความสำเร็จ.


จริง . โปรไฟล์ทำงานได้ก็ต่อเมื่อคุณดำเนินการด้วยตนเองผ่านทาง source .profile แต่หลังจากรีสตาร์ทจะไม่โหลดโหลด .bash_profile คือ
K.C.

ไม่ถูกต้องจริงๆ
Koray Tugay

1
@KorayTugay คุณช่วยชี้ให้เห็นว่ามีอะไรผิดปกติและอาจเป็นวิธีการแก้ไขหรือไม่
Rafael Eyng

7

สำหรับผู้ที่ไม่ต้องการมีความยุ่งยากกับไฟล์ข้อความและบรรณาธิการมี เครื่องมือ GUI เช่นเดียวกับ GitHub .


เยี่ยมมาก! ฉันใช้เวลาทั้งวันในการหาวิธีแก้ไขปัญหาตัวแปรสภาพแวดล้อมและฉันก็ไม่มีที่ไหนเลยแอปที่คุณโพสต์แก้ไขความยุ่งยากของสภาพแวดล้อม
Shajo


5

สำหรับการเพิ่มไดเรกทอรีลงในพา ธ มีตัวเลือกที่ดีกว่าใน OS X: รายการทั้งหมดในไฟล์ / etc / path จะถูกเพิ่มลงในพา ธ ก่อนที่จะเริ่มเชลล์ใด ๆ

แก้ไขไฟล์นี้ด้วย:

sudo pico /etc/paths

สำหรับข้อมูลเพิ่มเติมดู: https://gist.github.com/Overbryd/1669348


ขอบคุณ! สำหรับฉันนี่เป็นวิธีที่ดีที่สุดในการรวมเส้นทางใหม่
Asimov

4

OSX มีตัวแปรสภาพแวดล้อมการเปลี่ยนแปลงเพียงครั้งเดียวและอยู่ใน Lion โดยที่ ~ / .MacOSX / environment.plist แม้ว่าจะมีการเปลี่ยนแปลงในเชลล์เริ่มต้นใน 10.2 หรือ 10.3 จาก tsch เป็น bash

คุณต้องกำหนดสิ่งที่คุณต้องการตั้งค่าตัวแปรสภาพแวดล้อมและสภาพแวดล้อมที่คุณมี

คุณต้องเข้าใจ shells และ Unix ด้วยซึ่งความเห็นของคุณยังไม่เสร็จ มีแบบฝึกหัด nbash หลายรอบ

เช่นเดียวกับคะแนนของคุณ

  1. คุณเข้าใจอย่างถูกต้องสมมติว่าคุณอยู่ในเชลล์ประเภท sh (เช่น bash หรือ zsh)
  2. นี่สำหรับ C เชลล์เช่น tcsh ดังนั้นจะไม่ทำงานกับค่าเริ่มต้นล่าสุด
  3. คุณต้องสร้าง. profile แล้วจึงใช้งานได้
  4. มันคือ. bash_profile หรือดีกว่า. bashrc และคุณต้องสร้างไฟล์ก่อน
  5. ถูกต้องทั้งหมด :) ใช้ TextEdit หรือ nano (หรือ emacs)
  6. แก้ไขสูงสุด OS X 10.7 และวิธีการนี้สำหรับโปรแกรมที่เรียกใช้จากพื้นที่ทำงานเช่น จาก Dock หรือ Finder (หรือเปิด)

ดังนั้น 3 หรือ 4 ทำงานถ้าคุณกำลังเรียกโปรแกรมจากบรรทัดคำสั่ง (หรือจากโปรแกรมที่เริ่มในบรรทัดคำสั่ง แต่ไม่ใช่โดยเปิด)

สำหรับโปรแกรมจาก GUI เห็นสิ่งนี้ คำถาม

สำหรับอินเทอร์เน็ตนั้นเต็มไปด้วยขยะ - คุณต้องมีพื้นฐานเพียงพอที่จะเข้าใจบทความเพราะเมื่อคุณค้นพบว่ามีหลายสิ่งที่คิดหรือไม่ถูกต้อง เว็บไซต์ StackExhnage น่าจะดีกว่าที่คุณเห็นว่าคำตอบนั้นได้รับการยอมรับจากจำนวนคะแนนโหวตหรือไม่


ฉันยังไม่มีผลลัพธ์ใด ๆ คำถามที่เชื่อมโยงไม่ได้ทำให้ฉันแก้ปัญหา ฉันมี mac เป็นเวลา 4 ปี แต่ก็ยังไม่เคยมี (ไม่ต้อง) ประสบการณ์เกี่ยวกับ UNIX ฉันคิดว่าเมื่อคำตอบของ "ทำไมมันถึงยากเหลือเกิน" คือ "Plist ถูกลบ, เปลี่ยนใน 10.2 หรือ 10.3, sh ชนิดเชลล์, สูงสุด 10.7 ฯลฯ .. " คำตอบที่ขัดแย้งกับตัวเอง
akcasoy

มันสามารถทำได้ง่ายเหมือนใน windows อย่างไรก็ตาม .. สิ่งที่ฉันคาดหวังคือ sth แบบนี้: 1- เปิดบ้าน dir 2- เปิดเทอร์มินัล 3 - เขียน "xxx" 4 คลิกบันทึก ฯลฯ ต้องมีพื้นหลังไม่เพียงพอที่จะตั้งค่าตัวแปรง่ายๆ อินเตอร์เนต.
akcasoy

หากคุณต้องการตัวแปรสภาพแวดล้อมที่คุณต้องเข้าใจสิ่งที่พวกเขากำลังทำและที่ต้องมีพื้นหลัง นอกจากนี้ในขณะที่คุณไม่ได้ระบุสิ่งที่คุณใช้ตัวแปรสำหรับฉันต้องให้ความแตกต่างที่เป็นไปได้ทั้งหมด หมายเหตุสำหรับการตั้งค่า Java JAVA_HOME ไม่จำเป็นต้องเป็นวิธีที่ดีที่สุด (ดูคำถามเกี่ยวกับ Java)
Mark

คำถามของฉันเกี่ยวกับการตั้งค่าตัวแปร ไม่เกี่ยวกับสิ่งที่พวกเขาทำหรือสิ่งอื่นใดที่ต้องการข้อมูลเพิ่มเติม คุณสามารถตั้งค่าได้อย่างชัดเจนแม้ไม่มีพื้นหลัง ขอบคุณสำหรับคำตอบของคุณ แต่อย่างที่ฉันเขียนข้อเสนอง่ายๆสำหรับการแก้ปัญหาก็เพียงพอแล้วซึ่งฉันได้ขอบคุณ Bhas แล้ว
akcasoy

คุณไม่ควรตั้งค่าตัวแปรโดยไม่มีพื้นหลังคุณต้องรู้ว่าพวกเขาทำอะไร
Mark

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