ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MAC에서 패키지를 관리하려면 homebrew를 쓰자.
    Tech/Computer 2013. 5. 22. 01:59




     Linux를 쓸 때 항상 불편했던 것이 패키지 간의 의존성을 해결하는 일이었다. 그러던 중, Ubuntu를 쓰면서부터는 apt-get만 쓰면 모든게 다 해결되는 놀라운 광경에 한동안 의존성 문제를 잊고 있었는데, OS X를 쓰면서부터는 다시 고민이 시작되었다. 배포되는 오픈 소스들을 설치하다보면 아무래도 필요한 패키지가 존재하게 되는데 이걸 하나하나 해결해가며 설치하기가 쉽지 않다.


     그러던 중, ubuntu에서의 apt-get과 같은 종류의 OS X 패키징 관리 매니저인 homebrew에 대해 알게되었다. (http://mxcl.github.io/homebrew/) 같은 목적으로는 MacPorts가 유명하지만, 이래저래 문제가 많은 듯 하고 이러한 문제점을 해결하고자 Homebrew가 나온 것 처럼 보인다. 웹페이지를 방문해보면, MacPorts 때문에 술땡기는 사람들을 위해 친절히 homebrew를 사용해보라고 권하고 있다. 업데이트도 빠르기 때문에 최근에는 대부분 homebrew로 옮겨가고 있는 추세로 보인다.


     homebrew의 장점

     - 관리자 권한이 필요없다.

     - 패키지 버젼 관리가 용이하다. (업그레이드가 문제 없음. MacPorts는 써핑해본 결과 상당히 문제가 많은 듯)

     - 여러 버젼의 패키지도 사용가능.


     homebrew가 가져오는 장점들은 대부분 /usr/local 을 기본으로 설치되기 때문인 것 같은데, 아무래도 root 권한을 건드리지 않으면서 툴이 관리되기 때문에 확실히 안전하고 삭제할 때도 치명적인 에러가 발생할 여지가 없긴 하다.


    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"


     ruby와 curl을 이용해서 설치되며, 설치하고나면 "brew doctor"를 입력하여 문제가 없는지 확인할 수 있다. 이 때, homebrew의 패키지 설치는 대부분 setup.py 등 파이썬 스크립트를 이용해서 설치되는데, 아래와 같이 MAC OS X에서 기본적으로 설치된 Python과 충돌나서 link하지 못하는 오류가 날 수도 있다.




     homebrew를 이용해서 패키지 관리를 하기로 마음먹었다면 python도 homebrew를 통해 설치하는 게 편리한데, "brew install python python3"로 설치해서, 2.7 버젼과 3.3버젼을 동시에 이용하면 된다. 다만 이 때, brew를 이용해서 python을 설치하더라도 terminal에서 기본적으로 /usr/bin에 있는 시스템 python을 먼저 읽을 수가 있다. python 말고도 다른 여러 system binaries와 중복되는 경우 system binaries가 우선적으로 호출되는데, 이것은 homebrew가 다루는 /usr/local/bin 보다 시스템의 바이너리가 위치하는 /usr/bin 이 PATH에 먼저 선언되어 있기 때문이다. (echo $PATH로 확인)


     이 순서를 바꾸고자 한다면, /etc/paths 에 있는 순서를 바꾸면 된다.


     


    댓글

Copyright 2022 JY