在OS X中修改環境變量(如PATH)的正確方法是什麼? html
我稍微看了一下Google,發現須要編輯三個不一樣的文件: 安全
我什至沒有這些文件,並且我很肯定.tcshrc是錯誤的,由於OS X如今使用bash。 這些變量(尤爲是PATH)在哪裏定義? bash
我正在運行OS X v10.5 (Leopard)。 app
雖然這裏的答案不是「錯誤的」,但我要補充一點:對於給定用戶交互運行的全部進程,請不要在OS X中進行會影響「全部進程」甚至是外殼程序以外的環境變量更改。 工具
以個人經驗,在OS X上比在Windows上對全部進程的環境變量(例如PATH)進行全局更改的可能性更大。 緣由是,許多OS X應用程序和其餘軟件(尤爲可能包括OS自己的組件)都依賴於內部的UNIX命令行工具,並假定系統隨附的這些工具版本的行爲,而且這樣作時沒必要使用絕對路徑(相似的註釋適用於動態加載的庫和DYLD_ *環境變量)。 例如,考慮一下關於替換有關由OS X提供的諸如Python和Ruby之類的解釋器版本的各類Stack Overflow問題的最高評價的回答一般是「不要這樣作」。 ui
在這方面,OS X實際上與其餘相似UNIX的操做系統(例如Linux,FreeBSD和Solaris)沒有什麼不一樣。 蘋果沒有提供一種簡單的方法來解決這個問題的最可能緣由是由於它破壞了事情 。 在某種程度上,Windows不太容易出現這些問題,這是因爲兩件事:(1)Windows軟件不像UNIX軟件那樣傾向於依賴命令行工具,以及(2)Microsoft已經擁有因爲存在「 DLL地獄」和由影響全部進程的更改引發的安全問題的普遍歷史,所以它們已更改了Windows新版本中的動態加載行爲,從而限制了諸如PATH之類的「全局」配置選項的影響。 spa
不論是否「 Lame」,若是將此類更改限制在較小的範圍內,您將擁有一個更加穩定的系統。 操作系統
最高包括OS X v10.7 (Lion),您能夠在如下位置進行設置: 命令行
~/.MacOSX/environment.plist
看到: code
對於終端中的PATH,您應該能夠在.bash_profile
或.profile
進行設置(儘管您可能必須建立它)
對於OS X v10.8 (Mountain Lion)及更高版本, 您須要使用launchd
和launchctl
。
任何Bash啓動文件~/.bashrc
, ~/.bash_profile
, ~/.profile
。 對於GUI應用程序中的環境變量,還有一個名爲~/.MacOSX/environment.plist
的怪異文件。
對於單個用戶修改,請使用列出的~/.profile
。 如下連接說明了Bash什麼時候讀取其餘文件。
http://telin.ugent.be/~slippens/drupal/bashrc_and_others
若是要爲gui應用程序設置環境變量,則須要〜/ .MacOSX / environment.plist文件
好吧,我不肯定/etc/paths
和~/.MacOSX/environment.plist
文件。 那些是新的。
可是,使用Bash,您應該知道.bashrc
在每次新的Shell調用時都會執行,而.bash_profile
在啓動時僅執行一次。
我不知道Mac OS X多久使用一次。我認爲這種區別已經隨着窗口系統啓動全部內容而中斷。
就我的而言,我經過使用所需的全部內容建立一個.bashrc
文件,而後執行如下操做來消除混亂:
ln -s .bashrc .bash_profile