brew error

LunaMac:~ lunatine$ brew
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

Mac OS X 10.10 Yoseimite가 Public Beta로 공개되어서 업데이트를 진행하였는데 brew가 제대로 동작하지 않았다. 오류메시지가 No such file or directory 인 것으로 보아 인터프리터 경로가 바뀐걸로 보인다.

그래서 Mac OS X의 Ruby 프레임워크 경로를 찾아보니 역시나 바뀌었다.

원인

  • 기존 10.9 (Mavericks)에서는 Ruby 1.8 기준으로 인터프리터 경로가 설정되었으나 10.10으로 넘어오면서 Ruby는 2.0으로 업그레이드 되었고 해당 경로에 대해서 Current로 심볼릭 링크가 되어있기 때문에 기존 brew.rb가 제대로 실행되지 않은 것이다.

해결방법

  • 먼저 인터프리터의 경로를 수정한다

    $ vi /usr/local/Library/brew.rb
    
    
    [File: brew.rb]
    #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0
    
    첫 번째 줄의 1.8 버전 경로를 아래와 같이 수정해 주고 저장한다.
    
    #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
    
  • 기존 brew 환경에 인터프리터를 수정한 내용을 반영하기 위해 아래의 명령을 수행한 후에 brew update를 하면 된다.

    $ cd $(brew --repository)
    $ git commit -a -m 'yosemite update'
    $ brew update