요즘 소프트웨어는 새로운 버전이 나왔을 때 자동으로 업데이트를 하거나 사용자에게 알려준다. 특히 스토어를 통해 앱을 설치한 경우 업데이트가 더 쉽다. 그런데 개발자들의 경우 CUI(Command User Interface) 환경에서 많은 개발툴과 라이브러리들을 설치하는 경우가 있는데 이런 소프트웨어들은 자동 업데이트나 사용자 알림을 제공하기 힘들다. 각각 홈페이지를 누비며 업데이트가 되었나 확인해야할까? 요즘은 패키지 관리자로 한다. macOS에서 유명한 패키지 관리자는 Homebrew이다.
![[Summary] Homebrew](https://yujaewook.files.wordpress.com/2017/02/2017-02-10-00-29-40.png?w=300&h=300)
AOSP(Android Open-Source Project) 개발환경을 설정하며 Homebrew를 접하게 되었다. Homebrew는 Ruby 기반으로 간단한 명령어를 통해서 소프트웨어를 설치하고, 삭제하고, 업데이트를 한다. Homebrew를 통해 설치된 모든 소프트웨어를 한 번에 업데이트가 가능하다! 단, CUI로 동작하므로 명령어를 숙지해야하고, 쉘(shell)을 다룰 수 있어야한다.
Homebrew의 원리는 간단하다. /usr/local/Cellar 폴더에 소프트웨어를 설치하고, /usr/local/bin에 심볼릭 링크(symbolic link)를 생성한다. 그리고 PATH 설정에 /usr/local/bin의 우선순위가 가장 높으면 쉘(shell)에서 명령을 내릴때 Homebrew로 설치된 심볼릭 링크가 실행되는 원리이다.
macOS에서 개발을 하다보면 쉘(shell)과 Homebrew를 피해갈 수 없다. 그리고 써보면 정말 편함을 느낄 수 있다. 얼마나 많이 쓰이는지는 구글에 면접을 다녀온 Homebrew 개발자의 트윗에서 알 수 있다.
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
구글 : 우리 엔지니어들의 90%가 네가 만든 소프트웨어(Homebrew)를 사용하고 있지만, 넌 화이트보드에 이진트리를 뒤집는 것을 설명하지 못하니까 꺼져.
비록 구글에 떨어졌지만 구글 엔지니어의 90%가 사용한단다. (이런 것을 만든 개발자도 떨어지는 회사다.) 아래 홈페이지와 구글링을 통해서 잘 익혀두자!
- Homebrew : http://brew.sh/
- GitHub : https://github.com/Homebrew/brew