การตั้งค่าตัวแปรสภาพแวดล้อม PATH ใน OSX อย่างถาวร


148

ฉันได้อ่านคำตอบหลายข้อเกี่ยวกับวิธีตั้งค่าตัวแปรสภาพแวดล้อมบน OSX เป็นแบบถาวร

ก่อนอื่นฉันลองสิ่งนี้วิธีตั้งค่า $ PATH บน Linux / Unix อย่างถาวร แต่ฉันได้รับข้อความแสดงข้อผิดพลาดno such file and directoryดังนั้นฉันคิดว่าฉันสามารถลอง ~/.bash_profileแทนได้~/.profileแต่มันไม่ได้ผล

ประการที่สองฉันพบวิธีนี้วิธีตั้งค่า $ PATH ตามที่แอปพลิเคชันใช้ใน os xซึ่งคำแนะนำในการเปลี่ยนแปลง

~ / .MacOSX / environment.plist

แต่อีกครั้งฉันมีno such file and directoryข้อผิดพลาด

ฉันต้องการวิธีตั้งค่าตัวแปรเหล่านี้เพื่อที่จะไม่ต้องตั้งค่าซ้ำแล้วซ้ำอีกทุกครั้งที่เปิดเซสชันเทอร์มินัลใหม่


คุณสามารถสร้าง ~ / .profile ระบบส่วนใหญ่ * nix จดจำไฟล์และใช้งานได้หากมีอยู่ คุณอาจต้องรีบูต
trve.fa7ad

~ / .MacOSX / environment.plist เลิกใช้งานแล้ว
Pierre ALBARÈDE

คำตอบ:


272

/etc/pathsคุณต้องเพิ่มเข้าไป

ข้อมูลอ้างอิง (ซึ่งเหมาะกับฉัน): ที่นี่


6
นี่เป็นโซลูชันเดียวที่ใช้ได้กับ El Capitan ดีกว่าการปรับเปลี่ยน.bash_profileและ.profile.
IgorGanapolsky

1
เพิ่มคะแนนคำตอบสำหรับการอ้างอิงที่เพิ่มซึ่งอธิบายวิธีลบองค์ประกอบออกจากเส้นทาง (ในความคิดเห็น) ด้วย
Amudhan

สิ่งนี้ใช้ได้ผลใน EL Capitan ปิดเทอร์มินัลทั้งหมดแล้วเปิดเทอร์มินัลใหม่เพื่อตรวจสอบ echo $ PATH
Prem Ananth C

3
อย่าลืม 'รีสตาร์ท' เทอร์มินัลของคุณ
Neeraj Singh

1
ทำงานได้ดีบน macOS Catalina เช่นกัน รีสตาร์ทเทอร์มินัลเมื่อทำการเปลี่ยนแปลง
Amal Augustine Jose

29

ฉันพบว่ามีไฟล์บางไฟล์ที่อาจส่งผลต่อ$PATHตัวแปรใน macOS (ใช้ได้กับฉัน 10.11 El Capitan) ตามรายการด้านล่าง:

  1. ดังที่คำตอบที่ได้รับการโหวตสูงสุดกล่าวไว้vi /etc/pathsซึ่งแนะนำจากมุมมองของฉัน

  2. อย่าลืม/etc/paths.dไดเรกทอรีซึ่งมีไฟล์อาจส่งผลต่อ$PATHตัวแปรตั้งค่าgitและmono-commandเส้นทางในกรณีของฉัน คุณสามารถls -l /etc/paths.dแสดงรายการและrm /etc/paths.d/path_you_dislikeลบรายการได้

  3. หากคุณกำลังใช้ "ทุบตี" สิ่งแวดล้อม (เริ่มต้นTerminal.appตัวอย่างเช่น), คุณควรตรวจสอบหรือ~/.bash_profile ~/.bashrcอาจยังไม่มีไฟล์นั้น แต่ไฟล์ทั้งสองนี้มีผลกับไฟล์$PATH.

  4. หากคุณกำลังใช้ "zsh" สิ่งแวดล้อม ( Oh-My-zshตัวอย่างเช่น), คุณควรตรวจสอบ~./zshrcแทน~/.bash*สิ่งที่

และไม่ลืมที่จะเริ่มต้นใหม่ทั้งหมด Windows Terminal echo $PATHแล้ว สตริงจะเป็น$PATHPATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2

สังเกตว่าสองวิธีแรก ( /etc/pathsและ/etc/path.d) อยู่ใน/ไดเรกทอรีซึ่งจะส่งผลต่อบัญชีทั้งหมดในคอมพิวเตอร์ของคุณในขณะที่สองวิธีสุดท้าย ( ~/.bash*หรือ~/.zsh*) อยู่ใน~/ไดเรกทอรี (aka /Users/yourusername/) ซึ่งจะส่งผลต่อการตั้งค่าบัญชีของคุณเท่านั้น

อ่านเพิ่มเติม: Mac OS X: ตั้งค่า / เปลี่ยน $ PATH Variable - nixCraft


2
ฉันค่อนข้างชอบการแก้ไข. bash_profile ในบางกรณีเพราะถ้าคุณมีบัญชีผู้ใช้สองบัญชีในเครื่องของคุณคุณสามารถเพิ่มสคริปต์สำหรับหนึ่งในนั้นได้เช่น ~ / dev / scripts
PeteW

สิ่งที่ฉันไม่รู้ก็คือฉันใช้ zsh แทน bash ขอบคุณ!
Lioness

11

คุณยังสามารถเพิ่มสิ่งนี้ได้

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

ไป~/.bash_profileแล้วสร้าง~/.bashrcที่คุณก็สามารถเพิ่มเส้นทางไปยังเส้นทางอื่น ๆ ตัวอย่างกับ.

export PATH=$PATH:.

ขอบคุณ. ฉันใช้โซลูชันก่อนหน้านี้ แต่ถ้าฉันใช้วิธีนี้หมายความว่าฉันสามารถตั้งค่าตัวแปร DYLD_LIBRARY_PATH เป็นแบบถาวรได้หรือไม่
patti_jane

ใช่คุณควรจะทำได้ หากคุณต้องการเห็นการเปลี่ยนแปลงให้ปิดเทอร์มินัลของคุณและเปิดใหม่หรือพิมพ์. ~/.bashrc
omoman

ฉันเพิ่มรหัสด้านบน. ~/.bash_profileจากนั้นเปิดเทอร์มินัลใหม่แล้วพิมพ์. ~/.bashrcแต่มันบอกว่าไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว?
patti_jane

คุณต้องสร้างมันขึ้นมา บรรทัดด้านบนบอกให้คุณ .bash_profileโหลด.bashrcหากมีอยู่ จากนั้นในช่องว่าง.bashrcคุณสามารถเพิ่มอะไรก็ได้ที่คุณต้องการ
omoman

ขอบคุณมาก! ฉันรู้ว่าฉันถามมากเกินไป แต่คุณรู้ไหมว่ามีลิงค์ที่ระบุไว้อย่างถูกต้องว่าจะสร้าง.bashrcอย่างไร? ฉันไม่สามารถจัดการเพื่อหาสิ่งที่ดีได้
patti_jane

9

สำหรับเส้นทางใหม่ที่จะเพิ่มไปยังตัวแปรสภาพแวดล้อม PATH ใน MacOS ให้สร้างไฟล์ใหม่ภายใต้/etc/paths.dไดเร็กทอรีและเพิ่มเส้นทางการเขียนที่จะตั้งค่าในไฟล์ รีสตาร์ทเทอร์มินัล คุณสามารถตรวจสอบได้echo $PATHที่พร้อมต์เพื่อยืนยันว่ามีการเพิ่มเส้นทางไปยังตัวแปรสภาพแวดล้อมหรือไม่

ตัวอย่างเช่น: เพื่อเพิ่มเส้นทางใหม่/usr/local/sbinให้กับPATHตัวแปร:

cd /etc/paths.d
sudo vi newfile

เพิ่มเส้นทางไปยังnewfileและบันทึก

รีสตาร์ทเทอร์มินัลและพิมพ์echo $PATHเพื่อยืนยัน


ฉันไม่แน่ใจว่าทำไมคำตอบนี้จึงถูกลดลง ดูเหมือนเป็นวิธีที่สมเหตุสมผลและมีเหตุผลในการจัดระเบียบตัวแปรเส้นทาง ฉันใช้ paths.d เพื่อสร้างไฟล์แต่ละไฟล์สำหรับตัวแปรพา ธ ที่ไม่ได้มาตรฐานทุกตัว
p_q

8

คุณสามารถเปิดไฟล์ใด ๆ ต่อไปนี้:

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

และเพิ่ม:

export PATH="$PATH:your/new/path/here"

0

สำหรับการตั้งค่า path ใน Mac สามารถทำได้สองวิธี

  1. สร้างไฟล์สำหรับชื่อตัวแปรและวางพา ธ ที่นั่นใน /etc/paths.d และซอร์สไฟล์ไปที่ profile_bashrc
  2. ส่งออกตัวแปรเส้นทาง~/.profile_bashrcเป็น

    ส่งออก VARIABLE_NAME = $ (PATH_VALUE)

และระบุเส้นทาง เรียบง่ายและมั่นคง

คุณสามารถตั้งค่าใด ๆpath variableโดยMac terminalหรือในlinuxด้วยก็ได้

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