catsridingCATSRIDING|OCEANWAVES
Developer Tools

Homebrew를 통한 macOS 개발 환경 개선하기

jynn@catsriding.com
Dec 12, 2023
Published byJynn
999
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는 사용 가능한 패키지(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