홈브류(Homebrew)란?
홈브류(Homebrew)란?
홈브류Homebrew는 맥스 호웰Hax Howell이 만든 맥OSmacOS 용 패키지 관리 애플리케이션입니다. 홈브류는 루비로 개발되고 있으며, 2009년 처음 릴리스되었습니다. 2019년 2월에 2.0이 릴리즈 되었으며, 2021년 2월 5일 애플 실리콘을 공식 지원하는 3.0.0 버전이 릴리스되었습니다. 홈브류 이전에도 커맨드라인에서 사용가능한 맥OS 용 패키지 관리자들이 있었습니다만, 현재는 홈브류가 사실상 표준으로 자리잡았습니다. 맥OS에서 프로그래밍을 하는 프로그래머들에게는 거의 필수적인 도구입니다.* apt-get
등 리눅스의 패키지 관리자들과 사용법이 비슷해서 쉽게 사용할 수 있다는 장점이 있습니다. 홈브류는 주로 커맨드라인 도구나 시스템 패키지들을 설치하는 데 사용합니다만, 캐스크Cask 확장을 통해 GUI 애플리케이션 설치에도 사용할 수 있습니다. 기본적으로 맥OS용 패키지 관리자이지만, 리눅스나 윈도우의 WSL도 지원하고 있습니다.
* 44BITS에서도 맥OS 환경에서 패키지 설치가 필요한 경우 brew
를 사용하는 방식을 우선적으로 소개하고 있습니다.
홈브류는 편리하게 사용할 수 있다는 장점이 있습니다만, 커뮤니티 기반으로 운영되기 때문에 패키지의 안정성이 보장되지 않는다는 단점이 있습니다. 일부 리눅스 배포판의 경우 패키지 버전 정책이 매우 보수적이지만, 홈브류로 패키지를 설치하는 경우 거의 항상 최신 버전이 설치됩니다. 구버전의 패키지를 설치하는 것도 가능하지만 번거로운 편입니다.
홈브류에 대한 더 자세한 정보는 공식 문서를 참고해주세요.
홈브류(Homebrew) 시작하기
맥OS에서는 터미널이나 아이텀2iTerm2에서 바로 설치하고 사용할 수 있습니다. 여기서는 설치 방법과 기본적인 사용 방법에 대해서 소개합니다. 커맨드라인에 익숙하시지 않다면 커맨드라인 기초 문서를 참고해주세요.
커맨드라인 사용법: 따라하며 배우는 리눅스 명령어와 관습들
맥OS에서 홈브류(Homebrew) 설치하기
홈브류 설치에 앞서서 엑스코드Xcode 커맨드라인 툴을 미리 설치해두는 것을 추천합니다.*
* 커맨드라인 툴 설치 과정은 홈브류 설치 과정에도 포함되어있습니다. 설치되어있지 않으면 홈브류 설치 중에 커맨드라인 툴 설치가 추가로 진행됩니다. 엑스코드Xcode 커맨드라인 툴을 설치하는 명령어 이름에는 xcode
가 들어가지면 Xcode 설치와는 별개입니다.
$ xcode-select --install
홈브류는 다음 명령어를 실행해 설치할 수 있습니다.*
* 이 명령어는 2020년 1월 현재 공식 웹 사이트에서 안내하는 설치 명령어입니다. curl
을 사용해 최신 설치 스크립트를 다운로드 받아 시스템 루비(/usr/bin/ruby
)로 실행합니다. 파일을 따로 다운로드 받아서 열어보면 설치 스크립트 내용을 직접 확인할 수 있습니다.
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
Press RETURN to continue or any other key to abort
홈브류가 설치하는 파일 목록을 보여줍니다. brew
명령어를 비롯해 배시Bash와 ZSH의 자동완성을 위한 파일과 문서 등을 설치합니다. 리턴 키를 입력하면 설치가 진행됩니다.
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
https://github.com/Homebrew/brew#donations
==> Next steps:
- Run `brew help` to get started
- Further documentation:
https://docs.brew.sh
설치가 끝났습니다. 홈브류의 명령어는 brew
입니다. brew
명령어를 실행해 설치가 잘 되었는지 확인해봅니다.
$ brew --version
Homebrew 2.2.3
Homebrew/homebrew-core (git revision 9144; last commit 2020-01-31)
Homebrew/homebrew-cask (git revision 200ce; last commit 2020-01-31)
성공적으로 실처된 것을 확인할 수 있습니다. 이제 홈브류로 맥OS에 필요한 패키지를 설치하고 관리할 수 있습니다.
리눅스에서 홈브류 설치하기
리눅스에서는 다음 명령어르 홈브류(리눅스브류)를 설치할 수 있습니다.
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
자세한 내용은 공식 문서를 참고해주세요.
패키지 검색하고 상세 정보 확인하기
홈브류의 모든 패키지 목록은 공식 웹 사이트에서 확인할 수 있습니다. 커맨드라인에서는 search
명령어로 검색할 수 있습니다. 이름에 git
이 포함된 패키지들을 검색해보겠습니다.
$ brew search git
brew search git
==> Formulae
...
git ✔ git-fresh git-quick-stats
...
==> Casks
adobe-digital-editions gitblade gitfox
...
이름에 git
이 포함된 패키지들 목록을 확인할 수 있습니다. 검색 결과는 일반 패키지와 캐스크Cask 패키지가 나눠서 출력됩니다.
설치하고자 하는 패키지를 확인하고 info
명령어로 패키지의 상세 정보를 확인할 수 있습니다.
$ brew info git
git: stable 2.25.0 (bottled), HEAD
Distributed revision control system
https://git-scm.com
/usr/local/Cellar/git/2.24.0_2 (1,547 files, 45.1MB) *
Poured from bottle on 2019-11-24 at 16:23:21
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/git.rb
==> Dependencies
Required: gettext ✔, pcre2 ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions and functions have been installed to:
/usr/local/share/zsh/site-functions
Emacs Lisp files have been installed to:
/usr/local/share/emacs/site-lisp/git
==> Analytics
install: 212,700 (30 days), 650,920 (90 days), 1,899,186 (365 days)
install-on-request: 200,062 (30 days), 608,892 (90 days), 1,771,204 (365 days)
build-error: 0 (30 days)
패키지의 간단한 설명과, 버전 정보, 패키지 포뮬라 파일의 위치, 의종성, 통계 정보, 추가 설치 정보 등이 출력됩니다.
패키지 설치하기
$ brew install <PACKAGE_NAME>
<PACKAGE_NAME>
을 설치하고자 하는 패키지 이름을 입력합니다. 예를 들어 위에서 검색한 git
패키지는 다음 명령어로 설치할 수 있습니다.
$ brew install git
==> Downloading https://homebrew.bintray.com/bottles/git-2.25.0_1.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/54/54508f6ad675b1a3964d8576b9123d1459f6edf4f8847e229b56ec76cf49014b?__gda__=exp=1580658498~hma
######################################################################## 100.0%
==> Pouring git-2.25.0_1.mojave.bottle.tar.gz
==> Caveats
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions and functions have been installed to:
/usr/local/share/zsh/site-functions
Emacs Lisp files have been installed to:
/usr/local/share/emacs/site-lisp/git
==> Summary
🍺 /usr/local/Cellar/git/2.25.0_1: 1,443 files, 43.5MB
설치 과정이 출력됩니다. 최종적으로 /usr/local/Cellar/git/2.25.0_1
에 git
패키지가 설치된 것을 확인할 수 있습니다. list
서브 명령어로 패키지가 설치한 파일 목록을 확인할 수 있습니다.
$ brew list git
/usr/local/Cellar/git/2.25.0_1/.bottle/etc/gitconfig
/usr/local/Cellar/git/2.25.0_1/bin/git
/usr/local/Cellar/git/2.25.0_1/bin/git-cvsserver
/usr/local/Cellar/git/2.25.0_1/bin/git-receive-pack
/usr/local/Cellar/git/2.25.0_1/bin/git-shell
/usr/local/Cellar/git/2.25.0_1/bin/git-upload-archive
/usr/local/Cellar/git/2.25.0_1/bin/git-upload-pack
/usr/local/Cellar/git/2.25.0_1/etc/bash_completion.d/ (2 files)
...
/usr/local/Cellar/git/2.25.0_1/bin
아래에 실행가능한 명령어들이 설치된 것을 확인할 수 있습니다. 홈브류는 기본적으로 명령어를 실행가능한 PATH에 링크까지 해줍니다. git
이 잘 설치되었는지 버전을 확인해봅니다.
$ git --version
git version 2.25.0
패키지 업그레이드
패키지를 최신 버전으로 업그레이드할 때는 upgrade
서브 명령어를 사용합니다.
$ brew upgrade <PACKAGE_NAME>
예를 들어 git
패키지는 다음 명령어로 업그레이드할 수 있습니다.
$ brew upgrade git
홈브류는 update
명령어도 있습니다. 뒤에서 소개하겠지만, 이 명령어는 홈브류 자체를 업그레이드하는 명령어입니다.
패키지 삭제
패키지를 삭제할 때는 remove
서브 명령어를 사용합니다.
$ brew remove <PACKAGE_NAME>
git
패키지는 다음 명령어로 삭제할 수 있습니다.
$ brew remove git
Uninstalling /usr/local/Cellar/git/2.24.0_2... (1,547 files, 45.1MB)
홈브류 캐스크(cask)
홈브류에는 GUI 애플리케이션을 설치할 수 있는 캐스크 확장이 있습니다. 캐스크 패키지는 별도로 관리되며, 이 패키지를 설치하려면 brew
바로 뒤에 cask
를 붙여줍니다. 예를 들어 홈브류 캐스크로 동영상 재생기 VLC를 설치하려면 다음 명령어를 실행합니다.
$ brew cask install vlc
홈브류는 애플리케이션을 다운로드 받아 애플리케이션 디렉터리에 복사까지 해줍니다. 설치가 완료되면 애플리케이션 목록에서 VLC를 확인할 수 있습니다.
홈브류 업데이트
홈브류 명령어 자체를 업그레이드할 때는 update
서브 명령어를 사용합니다.
$brew update
홈브류 삭제
홈브류를 삭제하려면 설치할 때와 비슷하게 uninstall
스크립트를 실행합니다.
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
패키지 포뮬라(Homebrew Fomulae)
홈브류의 패키지 명세를 의미하는 포뮬라는 루비 코드로 작성합니다. 다음은 홈브류 공식 홈페이지에 실려있는 패키지 wget
패키지를 정의하는 포뮬라 예제입니다.
class Wget < Formula
"https://www.gnu.org/software/wget/"
homepage "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
url "52126be8cf1bddd7536886e74c053ad7d0ed2aa89b4b630f76785bac21695fcd"
sha256
def install
"./configure", "--prefix=#{prefix}"
system "make", "install"
system end
end
이 코드를 간단히 해설하면 다음과 같은 의미입니다.
-
class Wget < Formula
:Wget
패키지 포뮬라를 정의합니다. -
homepage
: 패키지의 홈페이지를 지정합니다. -
url
: 패키지를 다운로드 받을 경로를 지정합니다. -
sha256
: 다운로드 받을 파일의 sha256 해시값을 지정합니다. -
install
메서드: 다운로드 받은 파일의 압축을 풀고 실행할 명령어들을 작성합니다.system
은 루비에서 다른 실행파일을 실행하는 메서드입니다.
포뮬라 정의에 대한 더 자세한 정보는 공식 문서를 참고해주세요.
패키지 포뮬라 임시로 수정하기
포뮬러 파일은 로컬에 다운로드 받아져있기 때문에 brew edit
명령어로 바로 편집해서 사용할 수 있습니다. 예를 들어 다음 명령어로 git
패키지의 포뮬라를 편집할 수 있습니다.
$ brew edit git
패키지 포뮬라 복구하기
패키지 포뮬라를 수정하는 경우 변경 사항을 잘 관리하는 것을 추천합니다. 패키지를 사용할 수 없게 되었거나 삭제되는 등 문제가 생긴 경우 다음 명령어로 패키지 포뮬라 파일들을 복구할 수 있습니다.
$ brew update-reset
홈브류(Homebrew)로 패키지 특정 버전 설치하기
홈브류는 기본적으로 최신 버전 패키지 포뮬라를 제공하므로 과거 버전을 설치하는 것이 어렵습니다. 어렵지만, 불가능한 것은 아닙니다. 다음 글에서는 홈브류로 과거 버전의 패키지를 설치하는 방법을 소개합니다.
홈브류(Homebrew)를 사용해 맥OS(macOS)에서 특정 버전의 패키지 설치하기
홈브류에서 가장 많이 설치되는 패키지
다음 목록은 2020년 2월 1일 기준 홈브류에서 지난 1년간 가장 많이 설치된 패키지 15위까지 목록입니다. 프로그래밍 언어 노드Node.js, 파이썬Python, 고Go, 데이터베이스 PostgreSQL, MySQL 등이 순위에 올라있는 것을 확인할 수 있습니다.
순위 | 패키지명 | 다운로드 수 | % |
---|---|---|---|
#1 | node | 3,070,000 | 4.39% |
#2 | python | 2,813,380 | 4.02% |
#3 | git | 1,770,387 | 2.53% |
#4 | yarn | 1,507,582 | 2.15% |
#5 | wget | 1,376,347 | 1.97% |
#6 | go | 1,006,725 | 1.44% |
#7 | imagemagick | 914,294 | 1.31% |
#8 | cmake | 912,175 | 1.30% |
#9 | postgresql | 899,812 | 1.29% |
#10 | htop | 790,591 | 1.13% |
#11 | mysql | 784,771 | 1.12% |
#12 | ffmpeg | 756,150 | 1.08% |
#13 | awscli | 755,589 | 1.08% |
#14 | vim | 730,424 | 1.04% |
#15 | youtube-dl | 715,459 | 1.02% |
최신 정보는 다음 페이지에서 확인할 수 있습니다.