Textmate通過launchd啓動,而不是從shell啓動。
如果您直接從shell運行某些內容(打開-a Textmate不起作用,打開將不會將您的環境傳遞給Textmate),則$ PATH將遍歷。
來解決這個問題的辦法是environment.plist,launchctl,或launchd.conf的:
Setting environment variables in OS X?
更新
如果編輯/etc/launchd.conf
並重新啓動,更改將生效。每行可以是一個launchctl命令,如setenv VAR_NAME "VAR_VALUE"
。然後你可以用launchctl your_file
運行這個文件。這是一個不得不重啓的痛苦。如果你想要每個用戶的環境設置,這是不好的。 Apple建議~/.launchd.conf
可用於用戶特定的設置,但尚未實現此功能。
您可以設置腳本以使用LoginHook和LogoffHook在登錄時運行(請參閱Apple's documentation)。或者,使用LaunchAgents。有關如何設置LaunchAgent的詳細說明,請參閱this Macworld post上nicksay的帖子。
launchctl setenv
命令在登錄時似乎不起作用。我目前正在對此進行抨擊。
我遇到了與今天基本相同的問題(Makefile包不會將LIBRARY_PATH傳遞給gcc),現在我正在編寫一個python腳本,它將在登錄時讀取變量賦值文件,存儲將當前環境和該文件與作業複製,然後卸載註銷時的所有變量。這也提醒我,我應該有一個更新選項。當我完成後,我會在這裏發佈一條評論,指向這裏的github回購鏈接。如果它有效,那就是。
林不知道,但我不知道,如果你有一個變量,你想總是overrided你可以通過首選項添加它。 – prodigitalson 2011-04-06 19:19:05