Homebrew를 통한 macOS 개발 환경 개선하기
Enhance macOS Experience with Homebrew
Homebrew는 패키지의 설치, 업데이트, 관리를 일련의 명령어로 처리해주는 강력한 macOS & Linux 패키지 관리 도구입니다.
Installing Homebrew on macOS
Homebrew 공식 홈페이지 메인에 있는 설치 명령어를 복사하여 macOS 터미널에서 실행합니다.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew를 설치한 직후에는 특정 환경 변수를 설정해야 합니다. 이는 Homebrew가 시스템 전체에서 쉽게 접근하고 사용할 수 있도록 하는 역할을 합니다. 설치가 완료된 후 터미널에 출력되는 명령어를 복사해서 실행합니다. 주로 다음의 두 가지 명령어가 사용됩니다.
# Append `Homebrew shell environment setup` to macOS shell environment configuration file.
$ echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/<macOS_username>/.zprofile
# Applies the newly added 'Homebrew shell environment setup' to the current shell session immediately.
$ eval "$(/opt/homebrew/bin/brew shellenv)"
- Homebrew의 shell 환경을 macOS 터미널 shell 환경 설정 파일인
.zprofile
에 추가합니다. - 새로 추가된 환경 설정을 현재 터미널 세션에 즉시 적용시킵니다.
참고로, macOS에 설치된 칩셋 유형에 따라 Homebrew의 설치 경로가 다를 수 있습니다. 이는 Homebrew 프로젝트가 애플 실리콘이 출시된 이후에 M1 칩셋과 인텔 칩셋 사이에서 컴파일된 소프트웨어 패키지 간의 충돌을 피하기 위한 조치로 짐작됩니다.
# Apple Silicon 칩셋 기반 macOS
/opt/homebrew/bin/brew
# Intel 칩셋 기반 macOS
/usr/local/bin/brew
Homebrew Essentials
Homebrew에서 쓰이는 용어들과 자주 사용하는 명령어에 대해 살펴봅니다.
- Formulae: Homebrew의 가장 중심적인 개념은 formulae입니다. Formula는 설치하고자 하는 각 소프트웨어에 대한 설명입니다. Formula는 Ruby 스크립트로 작성되며, 해당 소프트웨어를 설치하는 방법을 알려주는 역할을 합니다.
- Kegs: 설치된 소프트웨어 자체를 말합니다. Homebrew는 각 소프트웨어를 별도의 디렉토리에 설치합니다. 이 디렉토리를 keg라고 부릅니다.
- Cellar: 모든 kegs가 저장되는 디렉토리를 말합니다. 일반적으로 이는
/opt/homebrew/Cellar
디렉토리입니다. - Taps: Homebrew core는 수천 개의 패키지에 대한 formula를 포함하고 있지만, 사용자가 필요로 하는 모든 소프트웨어를 포함하고 있지는 않습니다. 이런 경우, 사용자는 별도의 Repository를 등록할 수 있는데, 이를 tap이라고 합니다. 이런 방식으로 수많은 직 · 간접적인 소프트웨어 설치를 지원하게 되어있습니다.
- Bottles: 소스 코드를 컴파일해서 설치하는 것은 시간이 걸립니다. 따라서 Homebrew는 사전에 컴파일된 바이너리 version인 bottle을 제공합니다. 이를 사용하면 소프트웨어의 설치 시간을 대폭 줄일 수 있습니다.
- Cask: GUI 어플리케이션, 폰트, 플러그인과 같이 Homebrew가 기본적으로 설치해 주지 않는 소프트웨어를 설치하는 기능입니다.
brew install
brew install
은 특정 소프트웨어 패키지를 설치하는 데 사용됩니다. formula
위치에 설치하려는 소프트웨어의 이름을 넣습니다. 예를 들어, node를 설치하려면 다음과 같이 입력하면 됩니다.
$ brew install node
기본적으로, brew install
명령은 소프트웨어를 다운로드한 후, 해당 소프트웨어를 빌드 하며 이 과정에서 필요한 모든 종속성도 함께 설치합니다. 이러한 방식으로, Homebrew는 macOS에서 다양한 오픈 소스 소프트웨어의 설치 및 관리를 간편하게 해줍니다.
brew install --cask
brew install --cask
는 macOS GUI 애플리케이션을 설치하는 데 사용됩니다. Homebrew cask는 macOS에서 GUI 기반의 애플리케이션을 쉽게 설치하고 관리할 수 있게 해주며, 커맨드 라인을 통해 설치, 업데이트, 삭제 작업을 수행할 수 있습니다.
$ brew install --cask warp
이전에는 brew cask install
형식이었으나 최근 Homebrew 3.0.0 이후부터 brew install --cask
로 구문이 변경되었습니다.
애플리케이션의 정확한 cask
이름은 brew search
명령을 통해 찾을 수 있습니다.
brew search
brew search
는 사용 가능한 패키지(formulae) 및 casks 중에서 특정 텍스트를 포함하는 것을 찾는 데 사용됩니다. 특정 패키지의 이름을 정확히 알지 못할 때나, 어떤 패키지가 사용 가능한지 보려고 할 때 유용합니다.
$ brew search python
brew uninstall
brew uninstall
은 지정한 패키지를 제거합니다.
$ brew uninstall wget
brew update
brew update
는 Homebrew 자체와 패키지 설명(formulae)을 최신 상태로 업데이트합니다. 다시 말해, Homebrew 패키지 매니저(그 자체의 코드와 라이브러리), 그리고 Homebrew에서 사용 가능한 패키지의 리스트를 업데이트합니다. 하지만 이 명령은 이미 설치된 패키지의 버전을 업데이트하지는 않습니다.
$ brew update
brew upgrade
brew upgrade
는 설치된 패키지를 최신 버전으로 업데이트합니다. 먼저 brew update
명령을 수행하여 설치 가능한 최신 패키지 목록을 얻은 다음, brew upgrade
명령을 사용하여 설치된 패키지를 그 최신 버전으로 업그레이드합니다.
$ brew upgrade
brew list
brew list
는 이미 설치된 패키지의 목록을 출력합니다. 아무런 인자 없이 사용됩니다.
$ brew list
brew tap
brew tap
은 추가적인 패키지 저장소를 허용합니다. 이것은 커뮤니티에서 유지되는 추가 패키지(formulae)에 액세스할 수 있게 합니다.
$ brew tap homebrew/cask-fonts
brew cleanup
brew cleanup
은 설치 후 잔류하는 오래된 버전의 패키지와 캐시를 정리합니다.
$ brew cleanup
- macOS
- Linux
- Toolbox