2013-03-31 2 views
2

Mac OS X 10.8.3에서 Homebrew를 사용하고 있습니다. 자작 (homebrew)은 /usr/local/bin 디렉토리가 /usr/bin보다 PATH에서 더 일찍 요구됩니다. 그렇지 않으면 홈 브루 관리 대체 대신 시스템 제공 프로그램이 사용됩니다.zsh PATH에서 원하는 순서를 생성하지 않음

과 같이, 내가 zsh을 사용하고, 내 .zshenv에서 나는 PATH를 재설정 한 다음 초기화 path_helper를 사용

if [ -x /usr/libexec/path_helper ]; then 
    PATH='' 
    eval `/usr/libexec/path_helper -s` 
fi 

즉시 .zshenv 또한,이 다음, 나는에 /usr/local/bin 앞에 추가 통로.

export PATH="/usr/local/bin:$PATH" 

$ PATH에는 여러 가지 추가 기능이 있습니다. RVM, /usr/local/sbin 내 개인 bin 디렉토리 :

export PATH=$HOME/.rvm/bin :$PATH 
... 
export PATH=$PATH:/usr/local/sbin:$HOME/bin 

마지막으로, 나는 (그들이 어디에서 오는지 것은 나에게 신비가 있지만) 패스에서 모든 중복을 제거하기 위해 typeset -u를 사용합니다.

/usr/bin 
/bin 
/usr/sbin 
/sbin 
/usr/local/bin 

그래서 그 파일을 편집하고 /usr/local/bin' option so that the only place it is being set is in을 제거 : 나는 /etc/paths 다음 경로를 설정하는 것을 알고

/Users/mark/.rvm/gems/ruby-1.9.3-p374/bin 
/Users/mark/.rvm/gems/[email protected]/bin 
/Users/mark/.rvm/rubies/ruby-1.9.3-p374/bin 
/Users/mark/.rvm/bin 
/usr/bin 
/bin 
/usr/sbin 
/sbin 
/usr/local/bin 
/usr/local/sbin 
/Users/mark/bin 

: 여기이 모든 후

typeset -U PATH 

처럼 내 PATH는 모습입니다 .zshenv`.

이 모든 것은 GitHub (https://github.com/zan5hin/dotfiles)의 내 dotfile 저장소에 포함되어 있으며 두 대의 랩톱에서 사용되고 있습니다. 첫 번째 랩톱에서 경로는 정확하며 /usr/local/bin은 RVM 항목 바로 다음에옵니다. 두 번째 노트북에서는 위에서 설명한대로 나타납니다.

zsh 구성이 동일한 사본 일 때 두 번째 시스템에서 경로가 올바르지 않은 이유를 설명하기가 쉽지 않습니다.

경로가 고장난 이유는 누구나 제안 할 수 있습니까?

감사합니다.

+0

이 질문에 대한 지침 (http://stackoverflow.com/questions/10343834/homebrew-wants-me-to-amend-my-path-no-clue-how) 및/etc/경로 편집하기 파일을 사용하여'/ usr/local/bin'을 목록의 맨 앞으로 옮기면 두 컴퓨터 모두가 일치하고 올바른 경로를 가질 수있게되었습니다. 여전히'.zshenv'에서 경로를 내보내는 것이 예상대로 작동하지 않는 이유를 이해할 수 없습니다. –

답변

0

이 줄은 잘못된 것입니다 :

export PATH=$HOME/.rvm/bin :$PATH 

그것은해야한다 : :$PATH 전에

export PATH=$HOME/.rvm/bin:$PATH 

공간은 당신이 $PATH의 이전 내용을 잃게하는 원인이된다.

+0

예, 잘못되었습니다. 캐치를 가져 주셔서 감사합니다. 그러나이를 정정해도 원래의 문제에는 아무런 영향을 미치지 않습니다. 두 랩톱 모두 동일한 zsh 구성 (Git을 통해)을 사용하고 있고 다른 하나는 올바른 경로를 사용하고 있습니다. –

+0

.zshenv의 맨 위에'set -x'를 두어보세요.그런 다음 명령을 실행하면 명령이 표시되며 PATH가 어떻게 전개되는지 확인할 수 있습니다. 이것은 엉망이되고있는 곳을 볼 수 있도록 도와줍니다. – Barmar

관련 문제